From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Alfie Cleveland <alfeh@me.com>
Date: Tue, 27 Dec 2016 01:57:57 +0000
Subject: [PATCH] Properly fix item duplication bug

Credit to prplz for figuring out the real issue

diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 279b91d3de42bb7d3a1b99b836a2a6c2873a2077..2a4b05e78c1931ee0df36d55bf1accde6eacf623 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1913,7 +1913,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
 
     @Override
     protected boolean isFrozen() {
-        return super.isFrozen() || !getBukkitEntity().isOnline();
+        return super.isFrozen() || (this.playerConnection != null && this.playerConnection.isDisconnected()); // Paper
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 372b47e539b9d696f5e0dfe8255b503daaa480df..bb99e1ed16deba5b39323c5a65bf68986ff816fe 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2660,7 +2660,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
     }
 
     public final boolean isDisconnected() {
-        return !this.player.joining && !this.networkManager.isConnected();
+        return (!this.player.joining && !this.networkManager.isConnected()) || this.processedDisconnect; // Paper
     }
     // CraftBukkit end
 
