diff --git a/patches/server/0069-Send-multiple-keep-alive-packets.patch b/patches/server/0069-Send-multiple-keep-alive-packets.patch new file mode 100644 index 0000000..527e488 --- /dev/null +++ b/patches/server/0069-Send-multiple-keep-alive-packets.patch @@ -0,0 +1,106 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MartijnMuijsers +Date: Wed, 30 Nov 2022 00:43:42 +0100 +Subject: [PATCH] Send multiple keep-alive packets + +License: MIT (https://opensource.org/licenses/MIT) + +This patch is based on the following patch: +"Alternative Keepalive Handling" +By: William Blake Galbreath +As part of: Purpur (https://github.com/PurpurMC/Purpur) +Licensed under: MIT (https://opensource.org/licenses/MIT) + +diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b5e65ae2b57b7353ac0f26fda125e2d3661e9ed 100644 +--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java ++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +@@ -9,6 +9,8 @@ import com.mojang.datafixers.util.Pair; + import com.mojang.logging.LogUtils; + import it.unimi.dsi.fastutil.ints.Int2ObjectMap.Entry; + import it.unimi.dsi.fastutil.ints.Int2ObjectMaps; ++import it.unimi.dsi.fastutil.longs.LongOpenHashSet; ++import it.unimi.dsi.fastutil.longs.LongSet; + import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; + import it.unimi.dsi.fastutil.objects.ObjectIterator; + import java.time.Instant; +@@ -258,6 +260,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + private long keepAliveTime = Util.getMillis(); + private boolean keepAlivePending; + private long keepAliveChallenge; ++ private LongSet keepAlives = new LongOpenHashSet(); // Gale - Purpur - send multiple keep-alive packets + // CraftBukkit start - multithreaded fields + private final AtomicInteger chatSpamTickCount = new AtomicInteger(); + private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits +@@ -294,7 +297,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + private final SignedMessageChain.Decoder signedMessageDecoder; + private final LastSeenMessagesValidator lastSeenMessagesValidator; + private final FutureChain chatMessageChain; +- private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit ++ // Gale start - Purpur - send multiple keep-alive packets ++ private static final long KEEPALIVE_LIMIT_IN_SECONDS = Long.getLong("paper.playerconnection.keepalive", 30); // Paper - provide property to set keepalive limit ++ private static final long KEEPALIVE_LIMIT = KEEPALIVE_LIMIT_IN_SECONDS * 1000; ++ // Gale end - Purpur - send multiple keep-alive packets + private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); // Paper + + private String clientBrandName = null; // Paper - Brand name +@@ -405,6 +411,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + long currentTime = Util.getMillis(); + long elapsedTime = currentTime - this.keepAliveTime; + ++ // Gale start - Purpur - send multiple keep-alive packets ++ if (GaleGlobalConfiguration.get().misc.keepalive.sendMultiple) { ++ if (elapsedTime >= 1000L) { // 1 second ++ if (!this.processedDisconnect && this.keepAlives.size() > KEEPALIVE_LIMIT_IN_SECONDS) { ++ LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); ++ disconnect(Component.translatable("disconnect.timeout"), org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); ++ } else { ++ this.keepAliveTime = currentTime; // hijack this field for 1 second intervals ++ this.keepAlives.add(currentTime); // currentTime is ID ++ send(new ClientboundKeepAlivePacket(currentTime)); ++ } ++ } ++ } else ++ // Gale end - Purpur - send multiple keep-alive packets ++ + if (this.keepAlivePending) { + if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected + ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info +@@ -3598,6 +3619,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + + @Override + public void handleKeepAlive(ServerboundKeepAlivePacket packet) { ++ // Gale start - Purpur - send multiple keep-alive packets ++ if (GaleGlobalConfiguration.get().misc.keepalive.sendMultiple) { ++ long id = packet.getId(); ++ if (!this.keepAlives.isEmpty() && this.keepAlives.contains(id)) { ++ int ping = (int) (Util.getMillis() - id); ++ this.player.latency = (this.player.latency * 3 + ping) / 4; ++ this.keepAlives.clear(); // We got a valid response, let's roll with it and forget the rest ++ } ++ } else ++ // Gale end - Purpur - send multiple keep-alive packets + //PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); // CraftBukkit // Paper - This shouldn't be on the main thread + if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { + int i = (int) (Util.getMillis() - this.keepAliveTime); +diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +index 0965f43068d12a85090906568e2c1b731730f015..024cf924592999726458976b4d73df4b71843a2e 100644 +--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java ++++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +@@ -91,4 +91,16 @@ public class GaleGlobalConfiguration extends ConfigurationPart { + + } + ++ public Misc misc; ++ public class Misc extends ConfigurationPart { ++ ++ public Keepalive keepalive; ++ public class Keepalive extends ConfigurationPart { ++ ++ public boolean sendMultiple = true; // Gale end - Purpur - send multiple keep-alive packets ++ ++ } ++ ++ } ++ + } diff --git a/patches/server/0069-Measure-last-tick-time.patch b/patches/server/0070-Measure-last-tick-time.patch similarity index 100% rename from patches/server/0069-Measure-last-tick-time.patch rename to patches/server/0070-Measure-last-tick-time.patch diff --git a/patches/server/0070-Last-tick-time-API.patch b/patches/server/0071-Last-tick-time-API.patch similarity index 100% rename from patches/server/0070-Last-tick-time-API.patch rename to patches/server/0071-Last-tick-time-API.patch diff --git a/patches/server/0071-Show-last-tick-time-in-tps-command.patch b/patches/server/0072-Show-last-tick-time-in-tps-command.patch similarity index 95% rename from patches/server/0071-Show-last-tick-time-in-tps-command.patch rename to patches/server/0072-Show-last-tick-time-in-tps-command.patch index 678e15d..3a59e05 100644 --- a/patches/server/0071-Show-last-tick-time-in-tps-command.patch +++ b/patches/server/0072-Show-last-tick-time-in-tps-command.patch @@ -12,16 +12,13 @@ As part of: YAPFA (https://github.com/tr7zw/YAPFA) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 0965f43068d12a85090906568e2c1b731730f015..84b7325776b166553b9655e844ad6619d346432e 100644 +index 024cf924592999726458976b4d73df4b71843a2e..eb1a5b20810cbad9f47505a8534a42b20b8653d5 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -91,4 +91,17 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -101,6 +101,14 @@ public class GaleGlobalConfiguration extends ConfigurationPart { + + } - } - -+ public Misc misc; -+ public class Misc extends ConfigurationPart { -+ + // Gale start - YAPFA - last tick time - in TPS command + public LastTickTimeInTpsCommand lastTickTimeInTpsCommand; + public class LastTickTimeInTpsCommand extends ConfigurationPart { @@ -30,8 +27,8 @@ index 0965f43068d12a85090906568e2c1b731730f015..84b7325776b166553b9655e844ad6619 + } + // Gale end - YAPFA - last tick time - in TPS command + -+ } -+ + } + } diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java index 9bede6a26c08ede063c7a38f1149c811df14b258..da3b5e6653707220109b76e41b0bf0e88c365915 100644 diff --git a/patches/server/0072-Collision-physics-check-before-vehicle-check.patch b/patches/server/0073-Collision-physics-check-before-vehicle-check.patch similarity index 100% rename from patches/server/0072-Collision-physics-check-before-vehicle-check.patch rename to patches/server/0073-Collision-physics-check-before-vehicle-check.patch diff --git a/patches/server/0073-Variable-main-thread-task-delay.patch b/patches/server/0074-Variable-main-thread-task-delay.patch similarity index 98% rename from patches/server/0073-Variable-main-thread-task-delay.patch rename to patches/server/0074-Variable-main-thread-task-delay.patch index e184fc0..3a8ba09 100644 --- a/patches/server/0073-Variable-main-thread-task-delay.patch +++ b/patches/server/0074-Variable-main-thread-task-delay.patch @@ -258,10 +258,10 @@ index 9720e5360beabe7e15b0b964cb3b81d5af2b4bf8..a30024ab934b81cd76e282fab4bbf605 return io.papermc.paper.util.TickThread.isTickThread(); // Paper - rewrite chunk system } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124a9494526 100644 +index 4b5e65ae2b57b7353ac0f26fda125e2d3661e9ed..f2d88654ab7b67ac8265dca2ba4d743a8da7a616 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -184,6 +184,7 @@ import net.minecraft.world.phys.shapes.BooleanOp; +@@ -186,6 +186,7 @@ import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import org.apache.commons.lang3.StringUtils; @@ -269,7 +269,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 import org.galemc.gale.configuration.GaleGlobalConfiguration; import org.slf4j.Logger; -@@ -535,7 +536,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -556,7 +557,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Objects.requireNonNull(this.connection); // CraftBukkit - Don't wait @@ -278,7 +278,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 } private CompletableFuture filterTextPacket(T text, BiFunction> filterer) { -@@ -874,13 +875,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -895,13 +896,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); // Paper - run this async // CraftBukkit start if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable @@ -294,7 +294,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 return; } // Paper end -@@ -905,7 +906,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -926,7 +927,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!event.isHandled()) { if (!event.isCancelled()) { @@ -303,7 +303,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { -@@ -916,7 +917,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -937,7 +938,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestEvent.getSuggestions())); // Paper end - Brigadier API }); @@ -312,7 +312,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 } } else if (!completions.isEmpty()) { final com.mojang.brigadier.suggestion.SuggestionsBuilder builder0 = new com.mojang.brigadier.suggestion.SuggestionsBuilder(command, stringreader.getTotalLength()); -@@ -1225,7 +1226,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1246,7 +1247,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; if (byteLength > 256 * 4) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!"); @@ -321,7 +321,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 return; } byteTotal += byteLength; -@@ -1248,14 +1249,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1269,14 +1270,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); @@ -338,7 +338,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 return; } this.lastBookTick = MinecraftServer.currentTick; -@@ -2207,9 +2208,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2228,9 +2229,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // CraftBukkit end if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) { @@ -350,7 +350,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 } else { if (this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages())) { // this.server.submit(() -> { // CraftBukkit - async chat -@@ -2237,9 +2238,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2258,9 +2259,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -362,7 +362,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 } else { if (this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages())) { this.server.submit(() -> { -@@ -2336,9 +2337,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2357,9 +2358,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private boolean tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}': {} > {}", this.player.getName().getString(), message, this.lastChatTimeStamp.get().getEpochSecond(), timestamp.getEpochSecond()); // Paper @@ -374,7 +374,7 @@ index 9de597c11c3bd0f23e87c3a6187b2036987356e0..4b99b15c950d11451a70b8362aec5124 return false; } else if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false)); -@@ -3399,7 +3400,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3420,7 +3421,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { @@ -864,7 +864,7 @@ index 0000000000000000000000000000000000000000..4b82aea23b99180f13c71a1797c4d829 + +} diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 84b7325776b166553b9655e844ad6619d346432e..0abb81e5a68f75470a0a522fcf1a072a87880feb 100644 +index eb1a5b20810cbad9f47505a8534a42b20b8653d5..a3280d7e485289785ac0dec42561a2d357860264 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java @@ -2,11 +2,14 @@ diff --git a/patches/server/0074-Reduce-RandomSource-instances.patch b/patches/server/0075-Reduce-RandomSource-instances.patch similarity index 100% rename from patches/server/0074-Reduce-RandomSource-instances.patch rename to patches/server/0075-Reduce-RandomSource-instances.patch diff --git a/patches/server/0075-CPU-cores-estimation.patch b/patches/server/0076-CPU-cores-estimation.patch similarity index 98% rename from patches/server/0075-CPU-cores-estimation.patch rename to patches/server/0076-CPU-cores-estimation.patch index 21b51f9..6ace651 100644 --- a/patches/server/0075-CPU-cores-estimation.patch +++ b/patches/server/0076-CPU-cores-estimation.patch @@ -44,7 +44,7 @@ index 7220920bf87a78224c63c017cc4a623f547c7b80..bd77ede11311ebd156b3de5d7297b287 import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.error.MarkedYAMLException; diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 0abb81e5a68f75470a0a522fcf1a072a87880feb..da07854b99f7e0e097bd9f6cf18572253052bfdf 100644 +index a3280d7e485289785ac0dec42561a2d357860264..7cc0beb603776238fd58257384365791a002d7c1 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java @@ -286,6 +286,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { diff --git a/patches/server/0076-Add-centralized-AsyncExecutor.patch b/patches/server/0077-Add-centralized-AsyncExecutor.patch similarity index 100% rename from patches/server/0076-Add-centralized-AsyncExecutor.patch rename to patches/server/0077-Add-centralized-AsyncExecutor.patch diff --git a/patches/server/0077-Remove-Paper-async-executor.patch b/patches/server/0078-Remove-Paper-async-executor.patch similarity index 100% rename from patches/server/0077-Remove-Paper-async-executor.patch rename to patches/server/0078-Remove-Paper-async-executor.patch diff --git a/patches/server/0078-Remove-Paper-cleaner-executor.patch b/patches/server/0079-Remove-Paper-cleaner-executor.patch similarity index 100% rename from patches/server/0078-Remove-Paper-cleaner-executor.patch rename to patches/server/0079-Remove-Paper-cleaner-executor.patch diff --git a/patches/server/0079-Remove-background-executor.patch b/patches/server/0080-Remove-background-executor.patch similarity index 100% rename from patches/server/0079-Remove-background-executor.patch rename to patches/server/0080-Remove-background-executor.patch diff --git a/patches/server/0080-Remove-bootstrap-executor.patch b/patches/server/0081-Remove-bootstrap-executor.patch similarity index 100% rename from patches/server/0080-Remove-bootstrap-executor.patch rename to patches/server/0081-Remove-bootstrap-executor.patch diff --git a/patches/server/0081-Remove-world-upgrade-executors.patch b/patches/server/0082-Remove-world-upgrade-executors.patch similarity index 100% rename from patches/server/0081-Remove-world-upgrade-executors.patch rename to patches/server/0082-Remove-world-upgrade-executors.patch diff --git a/patches/server/0082-Remove-tab-complete-executor.patch b/patches/server/0083-Remove-tab-complete-executor.patch similarity index 88% rename from patches/server/0082-Remove-tab-complete-executor.patch rename to patches/server/0083-Remove-tab-complete-executor.patch index 1200d3b..c08eb96 100644 --- a/patches/server/0082-Remove-tab-complete-executor.patch +++ b/patches/server/0083-Remove-tab-complete-executor.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Remove tab complete executor License: AGPL-3.0 (https://www.gnu.org/licenses/agpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4b99b15c950d11451a70b8362aec5124a9494526..e450a4700da55e96dd3166e7ae966b2b8e43f6bb 100644 +index f2d88654ab7b67ac8265dca2ba4d743a8da7a616..3264a346fe58831b2e7ffa9f750f12bf99a44f47 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -184,6 +184,7 @@ import net.minecraft.world.phys.shapes.BooleanOp; +@@ -186,6 +186,7 @@ import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import org.apache.commons.lang3.StringUtils; @@ -17,7 +17,7 @@ index 4b99b15c950d11451a70b8362aec5124a9494526..e450a4700da55e96dd3166e7ae966b2b import org.galemc.gale.concurrent.MinecraftServerBlockableEventLoop; import org.galemc.gale.configuration.GaleGlobalConfiguration; import org.slf4j.Logger; -@@ -867,8 +868,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -888,8 +889,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper start diff --git a/patches/server/0083-Remove-text-filter-executor.patch b/patches/server/0084-Remove-text-filter-executor.patch similarity index 100% rename from patches/server/0083-Remove-text-filter-executor.patch rename to patches/server/0084-Remove-text-filter-executor.patch