From 6ba479d5912c08a2838bf6fc39e393b5860175b4 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 1 Dec 2013 16:17:16 +1100
Subject: [PATCH] Stage two done

---
 ...Prevent-Ghost-Players-Caused-by-Plugins.patch | 10 ++++++----
 .../0052-Player-Collision-API.patch              | 16 ++++++++--------
 ...angeBlockEvent-for-Fire-Arrows-hitting-.patch |  6 +++---
 .../0062-Implement-respawn-API.patch             |  6 +++---
 CraftBukkit-Patches/0065-Watchdog-Thread.patch   | 14 ++++++++------
 5 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/CraftBukkit-Patches/0049-Prevent-Ghost-Players-Caused-by-Plugins.patch b/CraftBukkit-Patches/0049-Prevent-Ghost-Players-Caused-by-Plugins.patch
index 6fbc893cf0..ae57bdf8ff 100644
--- a/CraftBukkit-Patches/0049-Prevent-Ghost-Players-Caused-by-Plugins.patch
+++ b/CraftBukkit-Patches/0049-Prevent-Ghost-Players-Caused-by-Plugins.patch
@@ -1,4 +1,4 @@
-From 19204e7a95da55b334559e9abeaa24e8ef728c44 Mon Sep 17 00:00:00 2001
+From b0bb7a61bc7b6e5dbb344ace753e81bf010e0363 Mon Sep 17 00:00:00 2001
 From: Alex Ciuba <alexciuba@gmail.com>
 Date: Tue, 11 Jun 2013 15:23:03 -0400
 Subject: [PATCH] Prevent Ghost Players Caused by Plugins
@@ -6,16 +6,18 @@ Subject: [PATCH] Prevent Ghost Players Caused by Plugins
 Check if the player is still connected after firing event. Fixes BUKKIT-4327
 
 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index b10b9a7..c8186e6 100644
+index b10b9a7..6527db0 100644
 --- a/src/main/java/net/minecraft/server/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/PlayerList.java
-@@ -467,6 +467,9 @@ public abstract class PlayerList {
+@@ -467,6 +467,11 @@ public abstract class PlayerList {
              Player respawnPlayer = this.cserver.getPlayer(entityplayer1);
              PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn);
              this.cserver.getPluginManager().callEvent(respawnEvent);
-+            if (entityplayer.playerConnection.disconnected) {
++            // Spigot Start
++            if (entityplayer.playerConnection.isDisconnected()) {
 +                return entityplayer;
 +            }
++            // Spigot End
  
              location = respawnEvent.getRespawnLocation();
              entityplayer.reset();
diff --git a/CraftBukkit-Patches/0052-Player-Collision-API.patch b/CraftBukkit-Patches/0052-Player-Collision-API.patch
index 43b948b743..4eec39cb99 100644
--- a/CraftBukkit-Patches/0052-Player-Collision-API.patch
+++ b/CraftBukkit-Patches/0052-Player-Collision-API.patch
@@ -1,4 +1,4 @@
-From 7c62ad80df53048515179a7866b5918f8cd3f519 Mon Sep 17 00:00:00 2001
+From d91a8eb52fb822cea177f0ad19670574f2858c64 Mon Sep 17 00:00:00 2001
 From: md_5 <md_5@live.com.au>
 Date: Sat, 3 Aug 2013 19:27:07 +1000
 Subject: [PATCH] Player Collision API
@@ -31,7 +31,7 @@ index a61001d..35d30f1 100644
                  Entity entity = (Entity) list.get(i);
  
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index af08d2f..d6a384b 100644
+index af08d2f..12e90cc 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -64,6 +64,21 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -42,22 +42,22 @@ index af08d2f..d6a384b 100644
 +    public boolean collidesWithEntities = true;
 +
 +    @Override
-+    public boolean L()
++    public boolean S()
 +    {
-+        return this.collidesWithEntities && super.L();
++        return this.collidesWithEntities && super.S();
 +    }
 +
-+    @Override
++    /*@Override
 +    public boolean M()
 +    {
 +        return this.collidesWithEntities && super.M();
-+    }
++    }*/ // SPIGOT TODO
 +    // Spigot end
  
      public EntityPlayer(MinecraftServer minecraftserver, WorldServer worldserver, GameProfile gameprofile, PlayerInteractManager playerinteractmanager) {
          super(worldserver, gameprofile);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0b8b324..fb53781 100644
+index 0b8b324..67e7747 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1130,6 +1130,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -75,7 +75,7 @@ index 0b8b324..fb53781 100644
 +        public void setCollidesWithEntities(boolean collides)
 +        {
 +            getHandle().collidesWithEntities = collides;
-+            getHandle().m = collides; // First boolean of Entity
++            getHandle().l = collides; // First boolean of Entity
 +        }
      };
  
diff --git a/CraftBukkit-Patches/0058-Call-EntityChangeBlockEvent-for-Fire-Arrows-hitting-.patch b/CraftBukkit-Patches/0058-Call-EntityChangeBlockEvent-for-Fire-Arrows-hitting-.patch
index 22fba1ddcd..11b3f0fc64 100644
--- a/CraftBukkit-Patches/0058-Call-EntityChangeBlockEvent-for-Fire-Arrows-hitting-.patch
+++ b/CraftBukkit-Patches/0058-Call-EntityChangeBlockEvent-for-Fire-Arrows-hitting-.patch
@@ -1,4 +1,4 @@
-From d50e13b301a56c8cc19761f7265d571a37dceb19 Mon Sep 17 00:00:00 2001
+From bd4223f37b76956cc070d5d7183e6ada4c561571 Mon Sep 17 00:00:00 2001
 From: BlackHole <black-hole@live.com>
 Date: Tue, 16 Jul 2013 22:34:50 +0200
 Subject: [PATCH] Call EntityChangeBlockEvent for Fire Arrows hitting TNT
@@ -6,7 +6,7 @@ Subject: [PATCH] Call EntityChangeBlockEvent for Fire Arrows hitting TNT
 Adds BUKKIT-4355
 
 diff --git a/src/main/java/net/minecraft/server/BlockTNT.java b/src/main/java/net/minecraft/server/BlockTNT.java
-index 6d5090b..819bef9 100644
+index 6d5090b..50e2fa0 100644
 --- a/src/main/java/net/minecraft/server/BlockTNT.java
 +++ b/src/main/java/net/minecraft/server/BlockTNT.java
 @@ -54,7 +54,7 @@ public class BlockTNT extends Block {
@@ -23,7 +23,7 @@ index 6d5090b..819bef9 100644
  
              if (entityarrow.isBurning()) {
 +                // CraftBukkit start
-+                if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entityarrow, i, j, k, 0, 0).isCancelled()) {
++                if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entityarrow, i, j, k, Blocks.AIR, 0).isCancelled()) {
 +                    return;
 +                }
 +                // CraftBukkit end
diff --git a/CraftBukkit-Patches/0062-Implement-respawn-API.patch b/CraftBukkit-Patches/0062-Implement-respawn-API.patch
index 0b59b75410..4599049155 100644
--- a/CraftBukkit-Patches/0062-Implement-respawn-API.patch
+++ b/CraftBukkit-Patches/0062-Implement-respawn-API.patch
@@ -1,16 +1,16 @@
-From 9ec229ca5ae594d9aef1a8df8bb350c133a18f42 Mon Sep 17 00:00:00 2001
+From 5fc844c7ebaa9fd7debd05f70365c01ba3e8c976 Mon Sep 17 00:00:00 2001
 From: ninja- <xninja@openmailbox.org>
 Date: Tue, 8 Oct 2013 14:34:49 +0200
 Subject: [PATCH] Implement respawn API.
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index bcfda5b..7fecef9 100644
+index 07f7c2e..f870cc6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1143,6 +1143,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
              getHandle().collidesWithEntities = collides;
-             getHandle().m = collides; // First boolean of Entity
+             getHandle().l = collides; // First boolean of Entity
          }
 +
 +        @Override
diff --git a/CraftBukkit-Patches/0065-Watchdog-Thread.patch b/CraftBukkit-Patches/0065-Watchdog-Thread.patch
index 8ac42badca..719a39d879 100644
--- a/CraftBukkit-Patches/0065-Watchdog-Thread.patch
+++ b/CraftBukkit-Patches/0065-Watchdog-Thread.patch
@@ -1,4 +1,4 @@
-From 1065d7a11aacc532a428121fc5002c730efc6f4d Mon Sep 17 00:00:00 2001
+From 5274d4541b5da2b6007256ad45181b01811bd1ff Mon Sep 17 00:00:00 2001
 From: md_5 <md_5@live.com.au>
 Date: Sat, 23 Feb 2013 12:33:20 +1100
 Subject: [PATCH] Watchdog Thread.
@@ -26,19 +26,21 @@ index 2ab8366..831707c 100644
              } catch (Throwable throwable1) {
 diff --git a/src/main/java/org/spigotmc/RestartCommand.java b/src/main/java/org/spigotmc/RestartCommand.java
 new file mode 100644
-index 0000000..3ca7a46
+index 0000000..a8840c9
 --- /dev/null
 +++ b/src/main/java/org/spigotmc/RestartCommand.java
-@@ -0,0 +1,111 @@
+@@ -0,0 +1,113 @@
 +package org.spigotmc;
 +
 +import java.io.File;
 +import java.util.List;
 +import net.minecraft.server.EntityPlayer;
++import net.minecraft.server.IChatBaseComponent;
 +import net.minecraft.server.MinecraftServer;
-+import net.minecraft.server.Packet255KickDisconnect;
++import net.minecraft.server.PacketPlayOutKickDisconnect;
 +import org.bukkit.command.Command;
 +import org.bukkit.command.CommandSender;
++import org.bukkit.craftbukkit.util.CraftChatMessage;
 +
 +public class RestartCommand extends Command
 +{
@@ -73,7 +75,7 @@ index 0000000..3ca7a46
 +                // Kick all players
 +                for ( EntityPlayer p : (List< EntityPlayer>) MinecraftServer.getServer().getPlayerList().players )
 +                {
-+                    p.playerConnection.networkManager.queue( new Packet255KickDisconnect( SpigotConfig.restartMessage ) );
++                    p.playerConnection.disconnect(SpigotConfig.restartMessage);
 +                    p.playerConnection.networkManager.d();
 +                }
 +                // Give the socket a chance to send the packets
@@ -84,7 +86,7 @@ index 0000000..3ca7a46
 +                {
 +                }
 +                // Close the socket so we can rebind with the new process
-+                MinecraftServer.getServer().ag().a();
++                MinecraftServer.getServer().ag().b();
 +
 +                // Give time for it to kick in
 +                try