From 9b615893d94e873cc43d83f2259a84db60a790d5 Mon Sep 17 00:00:00 2001 From: Lex Manos Date: Tue, 11 Mar 2014 00:50:55 -0700 Subject: [PATCH] Fix hard link to DedicatedSerever when opening a LAN connection causing stalls on connecting. --- .../network/NetHandlerHandshakeTCP.java.patch | 15 +++++++-------- .../cpw/mods/fml/client/FMLClientHandler.java | 6 ++++++ .../cpw/mods/fml/common/FMLCommonHandler.java | 5 +++++ .../cpw/mods/fml/common/IFMLSidedHandler.java | 2 ++ .../cpw/mods/fml/server/FMLServerHandler.java | 6 ++++++ 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/fml/patches/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java.patch b/fml/patches/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java.patch index 959535cdd..d11069d0e 100644 --- a/fml/patches/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java.patch +++ b/fml/patches/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java.patch @@ -1,18 +1,17 @@ --- ../src-base/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java +++ ../src-work/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java -@@ -7,6 +7,7 @@ - import net.minecraft.network.handshake.client.C00Handshake; - import net.minecraft.network.login.server.S00PacketDisconnect; - import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.dedicated.DedicatedServer; - import net.minecraft.util.ChatComponentText; - import net.minecraft.util.IChatComponent; +@@ -1,5 +1,6 @@ + package net.minecraft.server.network; ++import cpw.mods.fml.common.FMLCommonHandler; + import io.netty.util.concurrent.GenericFutureListener; + import net.minecraft.network.EnumConnectionState; + import net.minecraft.network.NetworkManager; @@ -24,6 +25,14 @@ public void func_147383_a(C00Handshake p_147383_1_) { -+ if (!DedicatedServer.allowPlayerLogins) ++ if (!FMLCommonHandler.instance().shouldAllowPlayerLogins()) + { + ChatComponentText chatcomponenttext = new ChatComponentText("Server is still starting! Please wait before reconnecting."); + this.field_147386_b.func_150725_a(new S00PacketDisconnect(chatcomponenttext), new GenericFutureListener[0]); diff --git a/fml/src/main/java/cpw/mods/fml/client/FMLClientHandler.java b/fml/src/main/java/cpw/mods/fml/client/FMLClientHandler.java index 25fab9eb6..975be3c77 100644 --- a/fml/src/main/java/cpw/mods/fml/client/FMLClientHandler.java +++ b/fml/src/main/java/cpw/mods/fml/client/FMLClientHandler.java @@ -876,4 +876,10 @@ public class FMLClientHandler implements IFMLSidedHandler { return report.func_71505_b() instanceof GameRegistryException; } + + @Override + public boolean shouldAllowPlayerLogins() + { + return true; //Always true as the server has to be started before clicking 'Open to lan' + } } diff --git a/fml/src/main/java/cpw/mods/fml/common/FMLCommonHandler.java b/fml/src/main/java/cpw/mods/fml/common/FMLCommonHandler.java index 732752876..113b87fde 100644 --- a/fml/src/main/java/cpw/mods/fml/common/FMLCommonHandler.java +++ b/fml/src/main/java/cpw/mods/fml/common/FMLCommonHandler.java @@ -518,4 +518,9 @@ public class FMLCommonHandler { return sidedDelegate.getDefaultMissingAction(); } + + public boolean shouldAllowPlayerLogins() + { + return sidedDelegate.shouldAllowPlayerLogins(); + } } diff --git a/fml/src/main/java/cpw/mods/fml/common/IFMLSidedHandler.java b/fml/src/main/java/cpw/mods/fml/common/IFMLSidedHandler.java index a3bbdff91..4a3e86aef 100644 --- a/fml/src/main/java/cpw/mods/fml/common/IFMLSidedHandler.java +++ b/fml/src/main/java/cpw/mods/fml/common/IFMLSidedHandler.java @@ -61,4 +61,6 @@ public interface IFMLSidedHandler void serverLoadedSuccessfully(); void failedServerLoading(RuntimeException ex, WorldAccessContainer wac); + + boolean shouldAllowPlayerLogins(); } diff --git a/fml/src/main/java/cpw/mods/fml/server/FMLServerHandler.java b/fml/src/main/java/cpw/mods/fml/server/FMLServerHandler.java index 4ac7f18ea..92712eb23 100644 --- a/fml/src/main/java/cpw/mods/fml/server/FMLServerHandler.java +++ b/fml/src/main/java/cpw/mods/fml/server/FMLServerHandler.java @@ -18,6 +18,7 @@ import net.minecraft.network.INetHandler; import net.minecraft.network.NetHandlerPlayServer; import net.minecraft.network.NetworkManager; import net.minecraft.server.MinecraftServer; +import net.minecraft.server.dedicated.DedicatedServer; import com.google.common.collect.ImmutableList; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.IFMLSidedHandler; @@ -196,4 +197,9 @@ public class FMLServerHandler implements IFMLSidedHandler { } + @Override + public boolean shouldAllowPlayerLogins() + { + return DedicatedServer.allowPlayerLogins; + } }