From 277e55a2415cfd3d276bb979ab138c881380a878 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Thu, 22 Mar 2018 13:03:52 +0100 Subject: [PATCH] [1.7.10] Workaround for crash when loading replay with TCNodeTracker (fixes #118) --- .../com/replaymod/replay/ReplayHandler.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/com/replaymod/replay/ReplayHandler.java b/src/main/java/com/replaymod/replay/ReplayHandler.java index bd96b467..6052a8c7 100755 --- a/src/main/java/com/replaymod/replay/ReplayHandler.java +++ b/src/main/java/com/replaymod/replay/ReplayHandler.java @@ -36,6 +36,7 @@ import net.minecraftforge.fml.common.network.handshake.NetworkDispatcher; import static net.minecraft.client.renderer.GlStateManager.*; //#else +//$$ import cpw.mods.fml.common.Loader; //$$ import cpw.mods.fml.common.network.internal.FMLNetworkHandler; //$$ import com.replaymod.replay.gui.screen.GuiOpeningReplay; //$$ import io.netty.channel.ChannelOutboundHandlerAdapter; @@ -43,7 +44,11 @@ import static net.minecraft.client.renderer.GlStateManager.*; //$$ import net.minecraft.entity.EntityLivingBase; //$$ import net.minecraft.network.EnumConnectionState; //$$ +//$$ import java.net.InetSocketAddress; +//$$ import java.net.SocketAddress; +//$$ //$$ import static com.replaymod.core.versions.MCVer.GlStateManager.*; +//$$ import static com.replaymod.replay.ReplayModReplay.LOGGER; //#endif import static com.replaymod.core.versions.MCVer.*; @@ -196,6 +201,19 @@ public class ReplayHandler { //#else //$$ NetworkManager networkManager = new NetworkManager(true) { //$$ @Override + //$$ public SocketAddress getRemoteAddress() { + //$$ // See https://github.com/Dyonovan/TCNodeTracker/issues/37 + //$$ if (Loader.isModLoaded("tcnodetracker")) { + //$$ StackTraceElement elem = Thread.currentThread().getStackTrace()[2]; + //$$ if ("com.dyonovan.tcnodetracker.events.ClientConnectionEvent".equals(elem.getClassName())) { + //$$ LOGGER.debug("TCNodeTracker crash workaround applied"); + //$$ return new InetSocketAddress("replaymod.dummy", 0); + //$$ } + //$$ } + //$$ return super.getRemoteAddress(); + //$$ } + //$$ + //$$ @Override //$$ public void exceptionCaught(ChannelHandlerContext ctx, Throwable t) { //$$ t.printStackTrace(); //$$ }