From c8e41c08ea65eae0099c01c1a40d9ad89a8806eb Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 1 Jan 2018 18:01:24 -0500 Subject: [PATCH] Fixed Kryo crash --- .../io/anuke/mindustry/AndroidLauncher.java | 3 --- .../io/anuke/mindustry/core/NetServer.java | 2 ++ .../mindustry/desktop/DesktopLauncher.java | 3 --- kryonet/build/libs/kryonet-release.jar | Bin 7637 -> 7759 bytes kryonet/src/io/anuke/kryonet/KryoClient.java | 16 ++++++++++++-- kryonet/src/io/anuke/kryonet/KryoServer.java | 20 +++++++++++++++--- 6 files changed, 33 insertions(+), 11 deletions(-) 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 e2350720b9fe8d4f4152ac07bde317b9aecddff7..e60785629e468baa11f0c74559b1fbba6c3355fa 100644 GIT binary patch delta 6904 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 Ce)B5; delta 6777 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