From df4a0dd5e4b40c2ad4b97ddfa31d3e177b7b11f4 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 28 Dec 2019 22:18:16 -0500 Subject: [PATCH] Added openServer method --- core/src/mindustry/core/NetServer.java | 21 +++++++++++++++++-- .../src/mindustry/server/ServerControl.java | 17 ++------------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index a355ecbd76..b37ab7a57a 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -1,14 +1,14 @@ package mindustry.core; import arc.*; -import mindustry.annotations.Annotations.*; -import arc.struct.*; import arc.graphics.*; import arc.math.*; import arc.math.geom.*; +import arc.struct.*; import arc.util.*; import arc.util.CommandHandler.*; import arc.util.io.*; +import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.core.GameState.*; import mindustry.entities.*; @@ -26,9 +26,11 @@ import mindustry.world.*; import mindustry.world.blocks.storage.CoreBlock.*; import java.io.*; +import java.net.*; import java.nio.*; import java.util.zip.*; +import static arc.util.Log.*; import static mindustry.Vars.*; public class NetServer implements ApplicationListener{ @@ -598,6 +600,7 @@ public class NetServer implements ApplicationListener{ return false; } + @Override public void update(){ if(!headless && !closing && net.server() && state.is(State.menu)){ @@ -615,6 +618,20 @@ public class NetServer implements ApplicationListener{ } } + /** Should only be used on the headless backend. */ + public void openServer(){ + try{ + net.host(Config.port.num()); + info("&lcOpened a server on port {0}.", Config.port.num()); + }catch(BindException e){ + Log.err("Unable to host: Port already in use! Make sure no other servers are running on the same port in your network."); + state.set(State.menu); + }catch(IOException e){ + err(e); + state.set(State.menu); + } + } + public void kickAll(KickReason reason){ for(NetConnection con : net.getConnections()){ con.kick(reason); diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index 094d020e78..352331f80c 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -251,7 +251,7 @@ public class ServerControl implements ApplicationListener{ info("Map loaded."); - host(); + netServer.openServer(); }catch(MapException e){ Log.err(e.map.name() + ": " + e.getMessage()); } @@ -711,8 +711,8 @@ public class ServerControl implements ApplicationListener{ SaveIO.load(file); state.rules.zone = null; info("Save loaded."); - host(); state.set(State.playing); + netServer.openServer(); }catch(Throwable t){ err("Failed to load save. Outdated or corrupt file."); } @@ -869,19 +869,6 @@ public class ServerControl implements ApplicationListener{ } } - private void host(){ - try{ - net.host(Config.port.num()); - info("&lcOpened a server on port {0}.", Config.port.num()); - }catch(BindException e){ - Log.err("Unable to host: Port already in use! Make sure no other servers are running on the same port in your network."); - state.set(State.menu); - }catch(IOException e){ - err(e); - state.set(State.menu); - } - } - private void logToFile(String text){ if(currentLogFile != null && currentLogFile.length() > maxLogLength){ String date = DateTimeFormatter.ofPattern("MM-dd-yyyy | HH:mm:ss").format(LocalDateTime.now());