diff --git a/fml/patches/minecraft/net/minecraft/client/Minecraft.java.patch b/fml/patches/minecraft/net/minecraft/client/Minecraft.java.patch index dd4c8406d..2d13c36f1 100644 --- a/fml/patches/minecraft/net/minecraft/client/Minecraft.java.patch +++ b/fml/patches/minecraft/net/minecraft/client/Minecraft.java.patch @@ -44,7 +44,7 @@ Display.setVSyncEnabled(this.field_71474_y.field_74352_v); } -@@ -916,9 +925,11 @@ +@@ -915,9 +924,11 @@ if (!this.field_71454_w) { @@ -56,7 +56,7 @@ } GL11.glFlush(); -@@ -1491,11 +1502,15 @@ +@@ -1490,11 +1501,15 @@ public void func_71407_l() { @@ -72,7 +72,7 @@ this.field_71424_I.func_76320_a("gui"); if (!this.field_71445_n) -@@ -1978,6 +1993,8 @@ +@@ -1977,6 +1992,8 @@ this.field_71453_ak.func_74428_b(); } diff --git a/fml/patches/minecraft/net/minecraft/client/gui/GuiIngame.java.patch b/fml/patches/minecraft/net/minecraft/client/gui/GuiIngame.java.patch new file mode 100644 index 000000000..f6b6c38a2 --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/client/gui/GuiIngame.java.patch @@ -0,0 +1,21 @@ +--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngame.java ++++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngame.java +@@ -1,5 +1,6 @@ + package net.minecraft.client.gui; + ++import cpw.mods.fml.common.FMLCommonHandler; + import cpw.mods.fml.relauncher.Side; + import cpw.mods.fml.relauncher.SideOnly; + import java.awt.Color; +@@ -312,6 +313,11 @@ + this.func_73731_b(fontrenderer, s2, k - fontrenderer.func_78256_a(s2) - 2, 2, 14737632); + s2 = "Allocated memory: " + i4 * 100L / l3 + "% (" + i4 / 1024L / 1024L + "MB)"; + this.func_73731_b(fontrenderer, s2, k - fontrenderer.func_78256_a(s2) - 2, 12, 14737632); ++ int offset = 22; ++ for (String brd : FMLCommonHandler.instance().getBrandings(false)) ++ { ++ this.func_73731_b(fontrenderer, brd, k - fontrenderer.func_78256_a(brd) - 2, offset+=10, 14737632); ++ } + k3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70165_t); + j3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70163_u); + int l4 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70161_v); diff --git a/fml/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch b/fml/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch index e9fe2da5d..342a5b85d 100644 --- a/fml/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch +++ b/fml/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch @@ -76,7 +76,7 @@ } - this.func_73731_b(this.field_146289_q, s, 2, this.field_146295_m - 10, -1); -+ List brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings()); ++ List brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true)); + for (int i = 0; i < brandings.size(); i++) + { + String brd = brandings.get(i); diff --git a/fml/patches/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java.patch b/fml/patches/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java.patch new file mode 100644 index 000000000..071f23c26 --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java.patch @@ -0,0 +1,28 @@ +--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java ++++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java +@@ -5,6 +5,8 @@ + import com.mojang.authlib.exceptions.InvalidCredentialsException; + import com.mojang.authlib.minecraft.MinecraftSessionService; + import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; ++ ++import cpw.mods.fml.common.network.FMLNetworkHandler; + import cpw.mods.fml.relauncher.Side; + import cpw.mods.fml.relauncher.SideOnly; + import io.netty.util.concurrent.Future; +@@ -23,6 +25,7 @@ + import net.minecraft.network.login.server.S00PacketDisconnect; + import net.minecraft.network.login.server.S01PacketEncryptionRequest; + import net.minecraft.network.login.server.S02PacketLoginSuccess; ++import net.minecraft.network.play.client.C17PacketCustomPayload; + import net.minecraft.util.ChatComponentTranslation; + import net.minecraft.util.CryptManager; + import net.minecraft.util.IChatComponent; +@@ -90,7 +93,7 @@ + + public void func_147390_a(S02PacketLoginSuccess p_147390_1_) + { +- this.field_147393_d.func_150723_a(EnumConnectionState.PLAY); ++ FMLNetworkHandler.fmlClientHandshake(this.field_147393_d); + } + + public void func_147231_a(IChatComponent p_147231_1_) diff --git a/fml/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch b/fml/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch new file mode 100644 index 000000000..54579b83e --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch @@ -0,0 +1,21 @@ +--- ../src-base/minecraft/net/minecraft/entity/player/EntityPlayerMP.java ++++ ../src-work/minecraft/net/minecraft/entity/player/EntityPlayerMP.java +@@ -11,6 +11,9 @@ + import java.util.Iterator; + import java.util.LinkedList; + import java.util.List; ++import java.util.Queue; ++import java.util.concurrent.ConcurrentLinkedQueue; ++ + import net.minecraft.crash.CrashReport; + import net.minecraft.crash.CrashReportCategory; + import net.minecraft.entity.Entity; +@@ -108,7 +111,7 @@ + public final ItemInWorldManager field_71134_c; + public double field_71131_d; + public double field_71132_e; +- public final List field_71129_f = new LinkedList(); ++ public final Queue field_71129_f = new ConcurrentLinkedQueue(); + public final List field_71130_g = new LinkedList(); + private final StatisticsFile field_147103_bO; + private float field_130068_bO = Float.MIN_VALUE; diff --git a/fml/patches/minecraft/net/minecraft/network/NetworkSystem.java.patch b/fml/patches/minecraft/net/minecraft/network/NetworkSystem.java.patch new file mode 100644 index 000000000..c2da21019 --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/network/NetworkSystem.java.patch @@ -0,0 +1,20 @@ +--- ../src-base/minecraft/net/minecraft/network/NetworkSystem.java ++++ ../src-work/minecraft/net/minecraft/network/NetworkSystem.java +@@ -1,6 +1,8 @@ + package net.minecraft.network; + + import com.google.common.util.concurrent.ThreadFactoryBuilder; ++ ++import cpw.mods.fml.common.network.FMLNetworkHandler; + import cpw.mods.fml.relauncher.Side; + import cpw.mods.fml.relauncher.SideOnly; + import io.netty.bootstrap.ServerBootstrap; +@@ -84,7 +86,7 @@ + ; + } + +- p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer()).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer()); ++ p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(FMLNetworkHandler.READ_TIMEOUT)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer()).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer()); + NetworkManager networkmanager = new NetworkManager(false); + NetworkSystem.this.field_151272_f.add(networkmanager); + p_initChannel_1_.pipeline().addLast("packet_handler", networkmanager); diff --git a/fml/patches/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java.patch b/fml/patches/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java.patch index 6f8dca32f..29175a0cd 100644 --- a/fml/patches/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java.patch +++ b/fml/patches/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java.patch @@ -9,12 +9,21 @@ import io.netty.util.concurrent.GenericFutureListener; import java.math.BigInteger; import java.security.PrivateKey; +@@ -58,7 +60,7 @@ + this.func_147326_c(); + } + +- if (this.field_147336_h++ == 600) ++ if (this.field_147336_h++ == FMLNetworkHandler.LOGIN_TIMEOUT) + { + this.func_147322_a("Took too long to log in"); + } @@ -97,7 +99,7 @@ { this.field_147328_g = NetHandlerLoginServer.LoginState.ACCEPTED; this.field_147333_a.func_150725_a(new S02PacketLoginSuccess(this.field_147337_i), new GenericFutureListener[0]); - this.field_147327_f.func_71203_ab().func_72355_a(this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i)); -+ FMLNetworkHandler.fmlHandshake(this.field_147327_f.func_71203_ab(), this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i)); ++ FMLNetworkHandler.fmlServerHandshake(this.field_147327_f.func_71203_ab(), this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i)); } } 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 7cfd6bef6..51848fa61 100644 --- a/fml/src/main/java/cpw/mods/fml/common/FMLCommonHandler.java +++ b/fml/src/main/java/cpw/mods/fml/common/FMLCommonHandler.java @@ -78,6 +78,7 @@ public class FMLCommonHandler private Class forge; private boolean noForge; private List brandings; + private List brandingsNoMC; private List crashCallables = Lists.newArrayList(Loader.instance().getCallableCrashInformation()); private Set handlerSet = Sets.newSetFromMap(new MapMaker().weakKeys().makeMap()); @@ -244,15 +245,16 @@ public class FMLCommonHandler int aModCount = Loader.instance().getActiveModList().size(); brd.add(String.format("%d mod%s loaded, %d mod%s active", tModCount, tModCount!=1 ? "s" :"", aModCount, aModCount!=1 ? "s" :"" )); brandings = brd.build(); + brandingsNoMC = brandings.subList(1, brandings.size()); } } - public List getBrandings() + public List getBrandings(boolean includeMC) { if (brandings == null) { computeBranding(); } - return ImmutableList.copyOf(brandings); + return includeMC ? ImmutableList.copyOf(brandings) : ImmutableList.copyOf(brandingsNoMC); } public IFMLSidedHandler getSidedDelegate() diff --git a/fml/src/main/java/cpw/mods/fml/common/network/FMLNetworkHandler.java b/fml/src/main/java/cpw/mods/fml/common/network/FMLNetworkHandler.java index 488f9dc9d..6c2e8f747 100644 --- a/fml/src/main/java/cpw/mods/fml/common/network/FMLNetworkHandler.java +++ b/fml/src/main/java/cpw/mods/fml/common/network/FMLNetworkHandler.java @@ -12,6 +12,8 @@ package cpw.mods.fml.common.network; +import org.apache.logging.log4j.core.helpers.Integers; + import cpw.mods.fml.common.network.handshake.NetworkDispatcher; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -25,7 +27,10 @@ import net.minecraft.world.World; public class FMLNetworkHandler { -/* private static final int FML_HASH = Hashing.murmur3_32().hashString("FML").asInt(); + public static final int READ_TIMEOUT = Integers.parseInt(System.getProperty("fml.readTimeout","30"),30); + public static final int LOGIN_TIMEOUT = Integers.parseInt(System.getProperty("fml.loginTimeout","600"),600); + + /* private static final int FML_HASH = Hashing.murmur3_32().hashString("FML").asInt(); private static final int PROTOCOL_VERSION = 0x2; private static final FMLNetworkHandler INSTANCE = new FMLNetworkHandler();