Fixed server crashes, android client error, ping system rewrite

This commit is contained in:
Anuken
2018-03-08 18:59:11 -05:00
parent a7096720d6
commit b0086082d0
10 changed files with 153 additions and 130 deletions

View File

@ -9,6 +9,7 @@ import io.anuke.mindustry.game.Difficulty;
import io.anuke.mindustry.game.EventType.GameOverEvent;
import io.anuke.mindustry.game.GameMode;
import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.io.Version;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.NetEvents;
import io.anuke.mindustry.net.Packets.ChatPacket;
@ -74,27 +75,24 @@ public class ServerControl extends Module {
Events.on(GameOverEvent.class, () -> {
info("Game over!");
Timers.runTask(30f, () -> {
Timers.runTask(10f, () -> {
state.set(State.menu);
Net.closeServer();
Timers.runTask(30f, () -> {
if (mode != ShuffleMode.off) {
Array<Map> maps = mode == ShuffleMode.both ? world.maps().getAllMaps() :
mode == ShuffleMode.normal ? world.maps().getDefaultMaps() : world.maps().getCustomMaps();
if (mode != ShuffleMode.off) {
Array<Map> maps = mode == ShuffleMode.both ? world.maps().getAllMaps() :
mode == ShuffleMode.normal ? world.maps().getDefaultMaps() : world.maps().getCustomMaps();
Map previous = world.getMap();
Map map = previous;
while (map == previous || !map.visible) map = maps.random();
Map previous = world.getMap();
Map map = previous;
while (map == previous || !map.visible) map = maps.random();
info("Selected next map to be {0}.", map.name);
state.set(State.playing);
logic.reset();
world.loadMap(map);
host();
}
});
info("Selected next map to be {0}.", map.name);
state.set(State.playing);
logic.reset();
world.loadMap(map);
host();
}
});
});
@ -109,6 +107,10 @@ public class ServerControl extends Module {
}
});
handler.register("version", "Displays server version info.", arg -> {
info("&lmVersion: &lyMindustry {0} {1} / {2}", Version.code, Version.type, Version.buildName);
});
handler.register("exit", "Exit the server application.", arg -> {
info("Shutting down server.");
Net.dispose();
@ -496,6 +498,11 @@ public class ServerControl extends Module {
});
handler.register("gameover", "Force a game over.", arg -> {
if(state.is(State.menu)){
info("Not playing a map.");
return;
}
world.removeBlock(world.getCore());
info("Core destroyed.");
});