From 51f3a1e457f5854042f867078adcb80fd136a787 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 3 May 2020 02:20:56 -0400 Subject: [PATCH] Attempt to fix FastLogin maybe --- Spigot-Server-Patches/Anti-Xray.patch | 4 +-- ...-Signs-in-Chunks-creating-large-pack.patch | 36 ++++++++++--------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/Spigot-Server-Patches/Anti-Xray.patch b/Spigot-Server-Patches/Anti-Xray.patch index 167176405..aca3d5f9d 100644 --- a/Spigot-Server-Patches/Anti-Xray.patch +++ b/Spigot-Server-Patches/Anti-Xray.patch @@ -1377,7 +1377,7 @@ index 2c1d1b1a55..44aed67274 100644 if (this.h == this.b) { diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java -index ddc12364e7..0b6dce35e6 100644 +index e966b6edcc..682434ec07 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler> { @@ -1390,7 +1390,7 @@ index ddc12364e7..0b6dce35e6 100644 + return; + } // write the packets to the queue, then flush - antixray hooks there already - java.util.List extraPackets = buildExtraPackets(packet); + java.util.List extraPackets = InnerUtil.buildExtraPackets(packet); boolean hasExtraPackets = extraPackets != null && !extraPackets.isEmpty(); @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler> { diff --git a/Spigot-Server-Patches/Handle-Excessive-Signs-in-Chunks-creating-large-pack.patch b/Spigot-Server-Patches/Handle-Excessive-Signs-in-Chunks-creating-large-pack.patch index 6e5120b94..6b3a14cae 100644 --- a/Spigot-Server-Patches/Handle-Excessive-Signs-in-Chunks-creating-large-pack.patch +++ b/Spigot-Server-Patches/Handle-Excessive-Signs-in-Chunks-creating-large-pack.patch @@ -14,7 +14,7 @@ With further contributions from Co-Authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java -index b1dededc15..ddc12364e7 100644 +index b1dededc15..e966b6edcc 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler> { @@ -22,22 +22,24 @@ index b1dededc15..ddc12364e7 100644 this.packetListener = packetlistener; } + // Paper start -+ private static java.util.List buildExtraPackets(Packet packet) { -+ java.util.List extra = packet.getExtraPackets(); -+ if (extra == null || extra.isEmpty()) { -+ return null; ++ private static class InnerUtil { // Attempt to hide these methods from ProtocolLib so it doesn't accidently pick them up. ++ private static java.util.List buildExtraPackets(Packet packet) { ++ java.util.List extra = packet.getExtraPackets(); ++ if (extra == null || extra.isEmpty()) { ++ return null; ++ } ++ java.util.List ret = new java.util.ArrayList<>(1 + extra.size()); ++ buildExtraPackets0(extra, ret); ++ return ret; + } -+ java.util.List ret = new java.util.ArrayList<>(1 + extra.size()); -+ buildExtraPackets0(extra, ret); -+ return ret; -+ } + -+ private static void buildExtraPackets0(java.util.List extraPackets, java.util.List into) { -+ for (Packet extra : extraPackets) { -+ into.add(extra); -+ java.util.List extraExtra = extra.getExtraPackets(); -+ if (extraExtra != null && !extraExtra.isEmpty()) { -+ buildExtraPackets0(extraExtra, into); ++ private static void buildExtraPackets0(java.util.List extraPackets, java.util.List into) { ++ for (Packet extra : extraPackets) { ++ into.add(extra); ++ java.util.List extraExtra = extra.getExtraPackets(); ++ if (extraExtra != null && !extraExtra.isEmpty()) { ++ buildExtraPackets0(extraExtra, into); ++ } + } + } + } @@ -52,9 +54,9 @@ index b1dededc15..ddc12364e7 100644 - this.o(); - this.b(packet, genericfuturelistener); - } else { -+ // Paper start start - handle oversized packets better ++ // Paper start - handle oversized packets better + // write the packets to the queue, then flush - antixray hooks there already -+ java.util.List extraPackets = buildExtraPackets(packet); ++ java.util.List extraPackets = InnerUtil.buildExtraPackets(packet); + boolean hasExtraPackets = extraPackets != null && !extraPackets.isEmpty(); + if (!hasExtraPackets) { this.packetQueue.add(new NetworkManager.QueuedPacket(packet, genericfuturelistener));