From 61e22560a2dd3326416e9deaf9e760b847095ab1 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Mon, 13 Jan 2020 22:12:54 +0000
Subject: [PATCH] Updated Upstream (Bukkit/CraftBukkit/Spigot)

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
7dd1cfcd PortalEvent additions

CraftBukkit Changes:
e8cb2f51 SPIGOT-5252: Nether portal fixes and additions
fde78ef3 SPIGOT-5477: Server not shutting down

Spigot Changes:
037559e7 Rebuild patches
---
 ...dd-configurable-portal-search-radius.patch | 34 ++++++++++++++-----
 .../Cache-user-authenticator-threads.patch    |  2 +-
 .../Call-player-spectator-target-events.patch |  2 +-
 .../Duplicate-UUID-Resolve-Option.patch       |  2 +-
 ...-sneak-when-changing-worlds-MC-10657.patch |  2 +-
 .../Implement-PlayerLocaleChangeEvent.patch   |  4 +--
 .../InventoryCloseEvent-Reason-API.patch      | 16 ++++-----
 .../Optional-TNT-doesn-t-move-in-water.patch  |  2 +-
 .../Properly-fix-item-duplication-bug.patch   |  2 +-
 ...ers-that-dismount-from-other-players.patch |  6 ++--
 .../Reset-players-airTicks-on-respawn.patch   |  4 +--
 ...vehicle-tracking-issue-on-disconnect.patch |  2 +-
 ...entity-dismount-during-teleportation.patch |  4 +--
 ...ement-optional-per-player-mob-spawns.patch |  4 +--
 work/Bukkit                                   |  2 +-
 work/CraftBukkit                              |  2 +-
 work/Spigot                                   |  2 +-
 17 files changed, 55 insertions(+), 37 deletions(-)

diff --git a/Spigot-Server-Patches/Add-configurable-portal-search-radius.patch b/Spigot-Server-Patches/Add-configurable-portal-search-radius.patch
index 9c84ba29ff..c6d4b61af0 100644
--- a/Spigot-Server-Patches/Add-configurable-portal-search-radius.patch
+++ b/Spigot-Server-Patches/Add-configurable-portal-search-radius.patch
@@ -18,21 +18,39 @@ index 62e793b71..5de4ec052 100644
 +        portalSearchRadius = getInt("portal-search-radius", 128);
 +    }
  }
+diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
+index 2ed5ff412..909f446c6 100644
+--- a/src/main/java/net/minecraft/server/Entity.java
++++ b/src/main/java/net/minecraft/server/Entity.java
+@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+ 
+             // CraftBukkit start - EntityPortalEvent
+             // SPIGOT-5136 - don't fire event for CraftEntity.teleport
+-            int searchRadius = 128;
++            int searchRadius = world.paperConfig.portalSearchRadius; // Paper - use portal search radius as default
+             if (location == null) {
+                 Location enter = this.getBukkitEntity().getLocation();
+                 Location exit = new Location(worldserver1.getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ());
 diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java
-index 192ddb90a..25b694e7d 100644
+index 503e3016a..b5f224e3b 100644
 --- a/src/main/java/net/minecraft/server/PortalTravelAgent.java
 +++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java
 @@ -0,0 +0,0 @@ public class PortalTravelAgent {
-     public ShapeDetector.Shape a(BlockPosition blockposition, Vec3D vec3d, EnumDirection enumdirection, double d0, double d1, boolean flag) {
+     @Nullable
+     public ShapeDetector.Shape a(BlockPosition blockposition, Vec3D vec3d, EnumDirection enumdirection, double d0, double d1, boolean flag) { // PAIL: rename to findPortal, d0 = portal offset x, d1 = portal offset z, flag = instanceof EntityHuman
+         // CraftBukkit start
+-        return findPortal(blockposition, vec3d, enumdirection, d0, d1, flag, 128);
++        return findPortal(blockposition, vec3d, enumdirection, d0, d1, flag, world.paperConfig.portalSearchRadius); // Paper
+     }
+ 
+     @Nullable
+@@ -0,0 +0,0 @@ public class PortalTravelAgent {
+         // CraftBukkit end
          VillagePlace villageplace = this.world.B();
  
 -        villageplace.a(this.world, blockposition, 128);
-+        villageplace.a(this.world, blockposition, world.paperConfig.portalSearchRadius); // Paper - TODO: VALIDATE
++        villageplace.a(this.world, blockposition, searchRadius); // Paper - This impacts the # of chunks searched for entries
          List<VillagePlaceRecord> list = (List) villageplace.b((villageplacetype) -> {
              return villageplacetype == VillagePlaceType.u;
--        }, blockposition, 128, VillagePlace.Occupancy.ANY).collect(Collectors.toList());
-+        }, blockposition, world.paperConfig.portalSearchRadius, VillagePlace.Occupancy.ANY).collect(Collectors.toList()); // Paper - TODO: VALIDATE
-         Optional<VillagePlaceRecord> optional = list.stream().min(Comparator.<VillagePlaceRecord>comparingDouble((villageplacerecord) -> { // CraftBukkit - decompile error
-             return villageplacerecord.f().m(blockposition);
-         }).thenComparingInt((villageplacerecord) -> {
+         }, blockposition, searchRadius, VillagePlace.Occupancy.ANY).collect(Collectors.toList()); // CraftBukkit - searchRadius
 --
\ No newline at end of file
diff --git a/Spigot-Server-Patches/Cache-user-authenticator-threads.patch b/Spigot-Server-Patches/Cache-user-authenticator-threads.patch
index e26736a672..bf6c969e82 100644
--- a/Spigot-Server-Patches/Cache-user-authenticator-threads.patch
+++ b/Spigot-Server-Patches/Cache-user-authenticator-threads.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Cache user authenticator threads
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 903c07e2f..9a4560599 100644
+index 12156b6e5..47978174e 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ import com.google.common.collect.Lists;
diff --git a/Spigot-Server-Patches/Call-player-spectator-target-events.patch b/Spigot-Server-Patches/Call-player-spectator-target-events.patch
index 392fbb5343..8a1e884789 100644
--- a/Spigot-Server-Patches/Call-player-spectator-target-events.patch
+++ b/Spigot-Server-Patches/Call-player-spectator-target-events.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Call player spectator target events
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 9068aeeec..6a1ceaf69 100644
+index c3e9f9d90..70c9a41ee 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch
index d989861d97..ec71259109 100644
--- a/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch
+++ b/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch
@@ -93,7 +93,7 @@ index c7c600b80..64c327669 100644
  
          int k = MathHelper.floor(entity.locY() / 16.0D);
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 96b0917a3..f0d1a5b14 100644
+index 88d7808b2..579ad1c43 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
 @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
diff --git a/Spigot-Server-Patches/Fix-stuck-in-sneak-when-changing-worlds-MC-10657.patch b/Spigot-Server-Patches/Fix-stuck-in-sneak-when-changing-worlds-MC-10657.patch
index 4d321b2717..4d6803dbb8 100644
--- a/Spigot-Server-Patches/Fix-stuck-in-sneak-when-changing-worlds-MC-10657.patch
+++ b/Spigot-Server-Patches/Fix-stuck-in-sneak-when-changing-worlds-MC-10657.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in sneak when changing worlds (MC-10657)
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 98a1c633f..b2d53c57d 100644
+index cce209ed1..5bf13f8bf 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch b/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch
index dc7661291c..fc0cb286b9 100644
--- a/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch
+++ b/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerLocaleChangeEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index db89bdf90f..51fb7aeced 100644
+index ab2d8015a..12fa705b0 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ import org.bukkit.inventory.MainHand;
@@ -40,7 +40,7 @@ index db89bdf90f..51fb7aeced 100644
          this.ci = packetplayinsettings.e();
          this.getDataWatcher().set(EntityPlayer.bq, (byte) packetplayinsettings.f());
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 74a0ceba64..fe26ce3af8 100644
+index 74a0ceba6..fe26ce3af 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/Spigot-Server-Patches/InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/InventoryCloseEvent-Reason-API.patch
index 7a26d091fc..a35fda0a54 100644
--- a/Spigot-Server-Patches/InventoryCloseEvent-Reason-API.patch
+++ b/Spigot-Server-Patches/InventoryCloseEvent-Reason-API.patch
@@ -7,7 +7,7 @@ Allows you to determine why an inventory was closed, enabling plugin developers
 to "confirm" things based on if it was player triggered close or not.
 
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index ba3e6b8823..2265b01e69 100644
+index ba3e6b882..2265b01e6 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
 @@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving {
@@ -34,7 +34,7 @@ index ba3e6b8823..2265b01e69 100644
          this.activeContainer = this.defaultContainer;
      }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 39d10f8707..ee28106859 100644
+index 0a1f82c10..9fd94b884 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -88,7 +88,7 @@ index 39d10f8707..ee28106859 100644
          this.m();
      }
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 8757b6751e..4f04410f9b 100644
+index 8757b6751..4f04410f9 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
 @@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -101,7 +101,7 @@ index 8757b6751e..4f04410f9b 100644
          this.player.m();
      }
 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index 002f7e844a..fd0f5c6f29 100644
+index 002f7e844..fd0f5c6f2 100644
 --- a/src/main/java/net/minecraft/server/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/PlayerList.java
 @@ -0,0 +0,0 @@ public abstract class PlayerList {
@@ -114,7 +114,7 @@ index 002f7e844a..fd0f5c6f29 100644
          PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game");
          cserver.getPluginManager().callEvent(playerQuitEvent);
 diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index abf91bd8ce..fa7b38a5cc 100644
+index abf91bd8c..fa7b38a5c 100644
 --- a/src/main/java/net/minecraft/server/WorldServer.java
 +++ b/src/main/java/net/minecraft/server/WorldServer.java
 @@ -0,0 +0,0 @@ public class WorldServer extends World {
@@ -136,7 +136,7 @@ index abf91bd8ce..fa7b38a5cc 100644
                      }
                  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index cd8ad27047..e169679c88 100644
+index cd8ad2704..e169679c8 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 @@ -0,0 +0,0 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -155,7 +155,7 @@ index cd8ad27047..e169679c88 100644
      @Override
      public boolean isBlocking() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 78a3280995..b93bafb3ff 100644
+index 78a328099..b93bafb3f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -168,7 +168,7 @@ index 78a3280995..b93bafb3ff 100644
  
          // Check if the fromWorld and toWorld are the same.
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 13598e3bb4..bb48d44ffb 100644
+index 13598e3bb..bb48d44ff 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -0,0 +0,0 @@ public class CraftEventFactory {
diff --git a/Spigot-Server-Patches/Optional-TNT-doesn-t-move-in-water.patch b/Spigot-Server-Patches/Optional-TNT-doesn-t-move-in-water.patch
index 3572cee50a..d3f6b45bc5 100644
--- a/Spigot-Server-Patches/Optional-TNT-doesn-t-move-in-water.patch
+++ b/Spigot-Server-Patches/Optional-TNT-doesn-t-move-in-water.patch
@@ -32,7 +32,7 @@ index 277f7618e..1dbeb209e 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 2e56c7f57..e04b3f4e2 100644
+index 68e3c7dad..5ccdb389a 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
 @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
diff --git a/Spigot-Server-Patches/Properly-fix-item-duplication-bug.patch b/Spigot-Server-Patches/Properly-fix-item-duplication-bug.patch
index 823e30cc19..cb9953b39d 100644
--- a/Spigot-Server-Patches/Properly-fix-item-duplication-bug.patch
+++ b/Spigot-Server-Patches/Properly-fix-item-duplication-bug.patch
@@ -6,7 +6,7 @@ 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 9a4560599..39d10f870 100644
+index 47978174e..0a1f82c10 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/Re-track-players-that-dismount-from-other-players.patch b/Spigot-Server-Patches/Re-track-players-that-dismount-from-other-players.patch
index 55408602d0..6555d32b21 100644
--- a/Spigot-Server-Patches/Re-track-players-that-dismount-from-other-players.patch
+++ b/Spigot-Server-Patches/Re-track-players-that-dismount-from-other-players.patch
@@ -5,13 +5,13 @@ Subject: [PATCH] Re-track players that dismount from other players
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 51fb7aece..764572163 100644
+index 12fa705b0..5d6acca27 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+         if (entity1 != entity && this.playerConnection != null) {
              this.playerConnection.a(this.locX(), this.locY(), this.locZ(), this.yaw, this.pitch);
          }
- 
 +        // Paper start - "Fixes" an issue in which the vehicle player would not be notified that the passenger dismounted
 +        if (entity instanceof EntityPlayer) {
 +            // TODO verify this solution
@@ -20,9 +20,9 @@ index 51fb7aece..764572163 100644
 +            worldServer.getChunkProvider().playerChunkMap.addEntity(this);
 +        }
 +        // Paper end
+ 
      }
  
-     @Override
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
          if (!this.isSpectator()) {
              super.b(blockposition);
diff --git a/Spigot-Server-Patches/Reset-players-airTicks-on-respawn.patch b/Spigot-Server-Patches/Reset-players-airTicks-on-respawn.patch
index 79d968fbc3..32ff5d21b2 100644
--- a/Spigot-Server-Patches/Reset-players-airTicks-on-respawn.patch
+++ b/Spigot-Server-Patches/Reset-players-airTicks-on-respawn.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Reset players airTicks on respawn
 
 
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 5d31068d7..365984bb8 100644
+index 905d2be5e..95d73fd6e 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
 @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -17,7 +17,7 @@ index 5d31068d7..365984bb8 100644
          return 300;
      }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 6a1ceaf69..fe3cb5373 100644
+index 70c9a41ee..2301efa51 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/Workaround-for-vehicle-tracking-issue-on-disconnect.patch b/Spigot-Server-Patches/Workaround-for-vehicle-tracking-issue-on-disconnect.patch
index ca993631fa..a3bad09029 100644
--- a/Spigot-Server-Patches/Workaround-for-vehicle-tracking-issue-on-disconnect.patch
+++ b/Spigot-Server-Patches/Workaround-for-vehicle-tracking-issue-on-disconnect.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Workaround for vehicle tracking issue on disconnect
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 8276010a5..ebab423af 100644
+index 886669d6c..fd1a249a1 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/force-entity-dismount-during-teleportation.patch b/Spigot-Server-Patches/force-entity-dismount-during-teleportation.patch
index bc951e602b..6ce4144e09 100644
--- a/Spigot-Server-Patches/force-entity-dismount-during-teleportation.patch
+++ b/Spigot-Server-Patches/force-entity-dismount-during-teleportation.patch
@@ -20,7 +20,7 @@ this is going to be the best soultion all around.
 Improvements/suggestions welcome!
 
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 365984bb8..0f2480521 100644
+index 95d73fd6e..fef298f55 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
 @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -112,7 +112,7 @@ index b59b39d41..a63edeeb9 100644
              this.a(entity);
          }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index fe3cb5373..784e472fb 100644
+index e4622e117..5d21fdb71 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/implement-optional-per-player-mob-spawns.patch b/Spigot-Server-Patches/implement-optional-per-player-mob-spawns.patch
index 388d2daa81..d7626f0f3f 100644
--- a/Spigot-Server-Patches/implement-optional-per-player-mob-spawns.patch
+++ b/Spigot-Server-Patches/implement-optional-per-player-mob-spawns.patch
@@ -599,7 +599,7 @@ index 58654f453..8a35e2994 100644
                                  }
                              }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index f482bb6cb..98a1c633f 100644
+index ed5116bb2..cce209ed1 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -643,7 +643,7 @@ index d49ad0308..2fb04e3e9 100644
          return this.bb;
      }
 diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
-index d9faef8a6..b3ccb9a7b 100644
+index 0ad11ba68..f8a65b3df 100644
 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
 +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
 @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
diff --git a/work/Bukkit b/work/Bukkit
index 34f6e645a9..7dd1cfcdbc 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 34f6e645a9edd0cacc3bd5811da801ecae771403
+Subproject commit 7dd1cfcdbcb7b53f66533c85d469cde5646175b7
diff --git a/work/CraftBukkit b/work/CraftBukkit
index d208733e70..e8cb2f513b 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit d208733e7087bd3c85ac7bfde618b0cdc372f703
+Subproject commit e8cb2f513b316706aaf8dd47cfff39aad647dce2
diff --git a/work/Spigot b/work/Spigot
index 492a779218..037559e7b4 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit 492a779218933f1887f97c7fccf24e54b1d18e4e
+Subproject commit 037559e7b4721c8a0af0ead3788733886ce9f49d