Files
CatServer/spigot-patches/CraftBukkit-Patches/0084-Clear-Packet-Queue-on-Disconnect.patch
T
2023-03-11 14:12:09 +08:00

35 lines
1.7 KiB
Diff

From ce2eaf355f0071400f7dde3e17081261f983fe3a Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Wed, 22 Jul 2015 19:04:37 +1000
Subject: [PATCH] Clear Packet Queue on Disconnect
diff --git a/src/main/java/net/minecraft/network/NetworkManager.java b/src/main/java/net/minecraft/network/NetworkManager.java
index 927b59532..a4269e547 100644
--- a/src/main/java/net/minecraft/network/NetworkManager.java
+++ b/src/main/java/net/minecraft/network/NetworkManager.java
@@ -415,6 +415,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
} else if (this.getPacketListener() != null) {
this.getPacketListener().onDisconnect(new ChatMessage("multiplayer.disconnect.generic"));
}
+ this.queue.clear(); // Free up packet queue.
}
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index 48a4a0eff..215e2132e 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -1709,7 +1709,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
public void send(Packet<?> packet, @Nullable GenericFutureListener<? extends Future<? super Void>> genericfuturelistener) {
// CraftBukkit start
- if (packet == null) {
+ if (packet == null || this.processedDisconnect) { // Spigot
return;
} else if (packet instanceof PacketPlayOutSpawnPosition) {
PacketPlayOutSpawnPosition packet6 = (PacketPlayOutSpawnPosition) packet;
--
2.25.1