diff --git a/server/src/io/anuke/mindustry/server/ServerControl.java b/server/src/io/anuke/mindustry/server/ServerControl.java index e674546239..f938ff8946 100644 --- a/server/src/io/anuke/mindustry/server/ServerControl.java +++ b/server/src/io/anuke/mindustry/server/ServerControl.java @@ -44,6 +44,7 @@ public class ServerControl implements ApplicationListener{ private FileHandle currentLogFile; private boolean inExtraRound; private Task lastTask; + private GameMode lastMode = GameMode.survival; private Thread socketThread; private PrintWriter socketOutput; @@ -235,6 +236,7 @@ public class ServerControl implements ApplicationListener{ info("Loading map..."); logic.reset(); + lastMode = preset: try{ world.loadMap(result); state.rules = preset.apply(result.rules()); @@ -698,12 +700,13 @@ public class ServerControl implements ApplicationListener{ players.add(p); p.setDead(true); } - Rules rules = state.rules; + logic.reset(); - state.rules = rules; + Call.onWorldDataBegin(); run.run(); logic.play(); + state.rules = lastMode.apply(world.getMap().rules()); for(Player p : players){ p.reset(); if(state.rules.pvp){