From 169fd469609647f0d359da5601fafe9f8dd83868 Mon Sep 17 00:00:00 2001
From: Travis Watkins <amaranth@ubuntu.com>
Date: Tue, 3 Dec 2013 19:08:32 -0600
Subject: [PATCH] Finish kicking player before letting their clone in. Fixes
 BUKKIT-4960

---
 src/main/java/net/minecraft/server/PlayerConnection.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 53e70c421d..aa6d8d8055 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -167,6 +167,7 @@ public class PlayerConnection implements PacketPlayInListener {
         ChatComponentText chatcomponenttext = new ChatComponentText(s);
 
         this.networkManager.handle(new PacketPlayOutKickDisconnect(chatcomponenttext), new GenericFutureListener[] { new PlayerConnectionFuture(this, chatcomponenttext)});
+        this.a(chatcomponenttext); // CraftBukkit - Process quit immediately
         this.networkManager.g();
     }
 
@@ -677,6 +678,7 @@ public class PlayerConnection implements PacketPlayInListener {
     }
 
     public void a(IChatBaseComponent ichatbasecomponent) {
+        if (this.isDisconnected()) return; // CraftBukkit - Don't trigger twice on kicks
         c.info(this.player.getName() + " lost connection: " + ichatbasecomponent.c()); // CraftBukkit - Don't toString the component
         this.minecraftServer.au();
         // CraftBukkit start - Replace vanilla quit message handling with our own.