diff --git a/android/src/io/anuke/mindustry/AndroidLauncher.java b/android/src/io/anuke/mindustry/AndroidLauncher.java index 660caabb4e..ebd5f40d5f 100644 --- a/android/src/io/anuke/mindustry/AndroidLauncher.java +++ b/android/src/io/anuke/mindustry/AndroidLauncher.java @@ -7,7 +7,6 @@ import android.os.Bundle; import android.telephony.TelephonyManager; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; -import com.esotericsoftware.minlog.Log; import io.anuke.kryonet.KryoClient; import io.anuke.kryonet.KryoServer; import io.anuke.mindustry.io.PlatformFunction; @@ -65,8 +64,6 @@ public class AndroidLauncher extends AndroidApplication{ config.hideStatusBar = true; - Log.set(Log.LEVEL_DEBUG); - Net.setClientProvider(new KryoClient()); Net.setServerProvider(new KryoServer()); diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java index a74777fff3..f8f8829272 100644 --- a/core/src/io/anuke/mindustry/core/NetServer.java +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -95,6 +95,8 @@ public class NetServer extends Module{ Gdx.app.postRunnable(() -> Vars.ui.showInfo(Bundles.format("text.server.disconnected", player.name))); + player.remove(); + DisconnectPacket dc = new DisconnectPacket(); dc.playerid = player.id; diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index 36e76539c3..40efec90c8 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -3,7 +3,6 @@ package io.anuke.mindustry.desktop; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; import com.badlogic.gdx.utils.Array; -import com.esotericsoftware.minlog.Log; import io.anuke.kryonet.KryoClient; import io.anuke.kryonet.KryoServer; import io.anuke.mindustry.Mindustry; @@ -59,8 +58,6 @@ public class DesktopLauncher { Mindustry.args = Array.with(arg); - Log.set(Log.LEVEL_DEBUG); - Net.setClientProvider(new KryoClient()); Net.setServerProvider(new KryoServer()); diff --git a/kryonet/build/libs/kryonet-release.jar b/kryonet/build/libs/kryonet-release.jar index e2350720b9..e60785629e 100644 Binary files a/kryonet/build/libs/kryonet-release.jar and b/kryonet/build/libs/kryonet-release.jar differ diff --git a/kryonet/src/io/anuke/kryonet/KryoClient.java b/kryonet/src/io/anuke/kryonet/KryoClient.java index 13182c7d94..1aaaf9f20e 100644 --- a/kryonet/src/io/anuke/kryonet/KryoClient.java +++ b/kryonet/src/io/anuke/kryonet/KryoClient.java @@ -26,13 +26,25 @@ public class KryoClient implements ClientProvider{ Connect c = new Connect(); c.id = connection.getID(); c.addressTCP = connection.getRemoteAddressTCP().toString(); - Net.handleClientReceived(c); + + try{ + Net.handleClientReceived(c); + }catch (Exception e){ + Gdx.app.exit(); + throw new RuntimeException(e); + } } @Override public void disconnected (Connection connection) { Disconnect c = new Disconnect(); - Net.handleClientReceived(c); + + try{ + Net.handleClientReceived(c); + }catch (Exception e){ + Gdx.app.exit(); + throw new RuntimeException(e); + } } @Override diff --git a/kryonet/src/io/anuke/kryonet/KryoServer.java b/kryonet/src/io/anuke/kryonet/KryoServer.java index 7b697997ac..4cc9fb95f7 100644 --- a/kryonet/src/io/anuke/kryonet/KryoServer.java +++ b/kryonet/src/io/anuke/kryonet/KryoServer.java @@ -31,20 +31,34 @@ public class KryoServer implements ServerProvider { thread.setDaemon(true); thread.start(); server.addListener(new Listener(){ + @Override public void connected (Connection connection) { Connect c = new Connect(); c.id = connection.getID(); c.addressTCP = connection.getRemoteAddressTCP().toString(); - Net.handleServerReceived(c, c.id); - connections.add(c.id); + + try { + Net.handleServerReceived(c, c.id); + connections.add(c.id); + }catch (Exception e){ + Gdx.app.exit(); + throw new RuntimeException(e); + } } @Override public void disconnected (Connection connection) { Disconnect c = new Disconnect(); c.id = connection.getID(); - Net.handleServerReceived(c, c.id); + + try{ + Net.handleServerReceived(c, c.id); + }catch (Exception e){ + Gdx.app.exit(); + throw new RuntimeException(e); + } + connections.removeValue(c.id); }