--- a/net/minecraft/server/PlayerConnectionUtils.java +++ b/net/minecraft/server/PlayerConnectionUtils.java @@ -14,6 +14,7 @@ public static <T extends PacketListener> void ensureMainThread(Packet<T> packet, T t0, IAsyncTaskHandler<?> iasynctaskhandler) throws CancelledPacketHandleException { if (!iasynctaskhandler.isMainThread()) { iasynctaskhandler.execute(() -> { + if (MinecraftServer.getServer().hasStopped() || (t0 instanceof PlayerConnection && ((PlayerConnection) t0).processedDisconnect)) return; // CraftBukkit, MC-142590 if (t0.a().isConnected()) { packet.a(t0); } else { @@ -23,5 +24,10 @@ }); throw CancelledPacketHandleException.INSTANCE; } + // CraftBukkit start - SPIGOT-5477, MC-142590 + else if (MinecraftServer.getServer().hasStopped() || (t0 instanceof PlayerConnection && ((PlayerConnection) t0).processedDisconnect)) { + throw CancelledPacketHandleException.INSTANCE; + } + // CraftBukkit end } }