--- a/net/minecraft/network/protocol/PlayerConnectionUtils.java +++ b/net/minecraft/network/protocol/PlayerConnectionUtils.java @@ -11,6 +11,11 @@ import net.minecraft.util.thread.IAsyncTaskHandler; import org.slf4j.Logger; +// CraftBukkit start +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.network.ServerCommonPacketListenerImpl; +// CraftBukkit end + public class PlayerConnectionUtils { private static final Logger LOGGER = LogUtils.getLogger(); @@ -24,6 +29,7 @@ public static void ensureRunningOnSameThread(Packet packet, T t0, IAsyncTaskHandler iasynctaskhandler) throws CancelledPacketHandleException { if (!iasynctaskhandler.isSameThread()) { iasynctaskhandler.executeIfPossible(() -> { + if (t0 instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players if (t0.shouldHandleMessage(packet)) { try { packet.handle(t0);