diff --git a/net/src/io/anuke/mindustry/net/MClient.java b/net/src/io/anuke/mindustry/net/MClient.java index ea961f1090..a7517f666f 100644 --- a/net/src/io/anuke/mindustry/net/MClient.java +++ b/net/src/io/anuke/mindustry/net/MClient.java @@ -7,8 +7,6 @@ import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.net.Net.*; import io.anuke.mindustry.net.Packets.*; import io.anuke.mnet.*; -import io.anuke.mnet.MSocket; -import io.anuke.mnet.MSocketImpl; import java.io.*; import java.net.*; @@ -21,13 +19,11 @@ public class MClient implements ClientProvider, ApplicationListener{ MSocket socket; public MClient(){ - Events.on(AppLoadEvent.class, e -> { - Core.app.addListener(this); - }); + Events.on(AppLoadEvent.class, event -> Core.app.addListener(this)); } public void connect(String ip, int port, Runnable success) throws IOException{ - socket = new MSocketImpl(InetAddress.getByName(ip), port, new PacketSerializer()); + socket = new MSocket(InetAddress.getByName(ip), port, new PacketSerializer()); socket.addDcListener((sock, reason) -> Core.app.post(() -> Net.handleClientReceived(new Disconnect()))); socket.connectAsync(null, 2000, response -> { if(response.getType() == ResponseType.ACCEPTED){ @@ -43,6 +39,20 @@ public class MClient implements ClientProvider, ApplicationListener{ }); } + @Override + public void update(){ + if(socket == null) return; + + socket.update((sock, object) -> Core.app.post(() -> { + try{ + Net.handleClientReceived(object); + }catch(Exception e){ + Net.showError(e); + netClient.disconnectQuietly(); + } + })); + } + @Override public void updatePing(){ @@ -61,19 +71,6 @@ public class MClient implements ClientProvider, ApplicationListener{ } } - public void update(){ - if(socket == null) return; - - socket.update((sock, object) -> Core.app.post(() -> { - try{ - Net.handleClientReceived(object); - }catch(Exception e){ - Net.showError(e); - netClient.disconnectQuietly(); - } - })); - } - public int getPing(){ return socket == null ? 0 : (int)socket.getPing(); } diff --git a/net/src/io/anuke/mindustry/net/MServer.java b/net/src/io/anuke/mindustry/net/MServer.java index 0e32f97ecb..ca7b4461ec 100644 --- a/net/src/io/anuke/mindustry/net/MServer.java +++ b/net/src/io/anuke/mindustry/net/MServer.java @@ -6,7 +6,6 @@ import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.net.Net.*; import io.anuke.mindustry.net.Packets.*; import io.anuke.mnet.*; -import io.anuke.mnet.MServerSocket; import java.io.*; import java.net.*; @@ -18,11 +17,27 @@ public class MServer implements ServerProvider, ApplicationListener{ MServerSocket socket; public MServer(){ - Events.on(AppLoadEvent.class, e -> { - Core.app.addListener(this); - }); + Events.on(AppLoadEvent.class, event -> Core.app.addListener(this)); } + @Override + public void update(){ + if(socket == null) return; + + socket.update(); + for(MSocket socket : socket.getSockets()){ + MConnectionImpl c = socket.getUserData(); + socket.update((s, msg) -> Core.app.post(() -> { + try{ + Net.handleServerReceived(c.id, msg); + }catch(Exception e){ + e.printStackTrace(); + } + })); + } + } + + @Override public void host(int port) throws IOException{ socket = new MServerSocket(port, con -> { MSocket sock = con.accept(null); @@ -61,30 +76,17 @@ public class MServer implements ServerProvider, ApplicationListener{ connections.clear(); } - public void update(){ - if(socket == null) return; - - socket.update(); - for(MSocket socket : socket.getSockets()){ - MConnectionImpl c = socket.getUserData(); - socket.update((s, msg) -> Core.app.post(() -> { - try{ - Net.handleServerReceived(c.id, msg); - }catch(Exception e){ - e.printStackTrace(); - } - })); - } - } - + @Override public void close(){ if(socket != null) socket.close(); } + @Override public Iterable getConnections(){ return connections; } + @Override public MConnectionImpl getByID(int id){ for(MConnectionImpl n : connections){ if(n.id == id){ diff --git a/server/src/io/anuke/mindustry/server/ServerControl.java b/server/src/io/anuke/mindustry/server/ServerControl.java index 42bc75d0ef..934ba7e1fe 100644 --- a/server/src/io/anuke/mindustry/server/ServerControl.java +++ b/server/src/io/anuke/mindustry/server/ServerControl.java @@ -643,6 +643,13 @@ public class ServerControl implements ApplicationListener{ info("Nobody with that name could be found."); } }); + + handler.register("gc", "Trigger a grabage collection. Testing onlu.", arg -> { + int pre = (int)(Core.app.getJavaHeap() / 1024 / 1024); + System.gc(); + int post = (int)(Core.app.getJavaHeap() / 1024 / 1024); + info("&ly{0}&lg MB collected. Memory usage now at &ly{1}&lg MB.", pre - post, post); + }); } private void readCommands(){