From 2fb83fb54e5b9c84088869399618c55019d16381 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/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 247973d..9d23c6c 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -313,6 +313,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet> {
                 } else if (this.getPacketListener() != null) {
                     this.getPacketListener().a(new ChatComponentText("Disconnected"));
                 }
+                this.i.clear(); // Free up packet queue.
             } else {
                 NetworkManager.g.warn("handleDisconnection() called twice");
             }
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 6f630b8..68358e9 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -895,7 +895,7 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList
         }
 
         // CraftBukkit start
-        if (packet == null) {
+        if (packet == null || this.processedDisconnect) { // Spigot
             return;
         } else if (packet instanceof PacketPlayOutSpawnPosition) {
             PacketPlayOutSpawnPosition packet6 = (PacketPlayOutSpawnPosition) packet;
-- 
2.1.4