From 0e0501c9df77ead27239ad4622580d69f15992ff Mon Sep 17 00:00:00 2001
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
Date: Sat, 8 Jun 2019 15:33:05 -0500
Subject: [PATCH] Update upstream B/CB/S

--- work/Bukkit
Submodule work/Bukkit 6eac6d70..1ef8b9d9:
  > Add Player#openBook(ItemStack) method

--- work/CraftBukkit
Submodule work/CraftBukkit 17543ecf..649921e5:
  > Add Player#openBook(ItemStack) method
  > SPIGOT-2000: Picking up items to shield slot working inconsistently when inventory is full
  > SPIGOT-5037: Player.openMerchant does not show merchant level
  > SPIGOT-5038: Inventory.getHolder returns null for wandering traders

--- work/Spigot
Submodule work/Spigot baafee91..df0eb250:
  > SPIGOT-5043: Desync if world is changed in PlayerSpawnLocationEvent
  > Rebuild patches

Implementation developer note:
This patch adds a "pre-source" patch system for fixing malformed patches
from upstream directly. This seems to keep happening so it's best we
have some way to deal with them. This system brings those issues into
our domain rather than needing to wait for upstream to fix their
malformed files.
---
 .vscode/settings.json                         |  3 +
 .../Ability-to-apply-mending-to-XP-API.patch  |  2 +-
 .../Add-Ban-Methods-to-Player-Objects.patch   |  4 +-
 .../Add-String-based-Action-Bar-API.patch     |  2 +-
 .../Add-player-view-distance-API.patch        | 14 ++--
 .../Complete-resource-pack-API.patch          |  6 +-
 ...e-attack-cooldown-methods-for-Player.patch |  2 +-
 ...nt-protocol-version-and-virtual-host.patch |  4 +-
 ...upstream-javadoc-warnings-and-errors.patch |  8 +--
 ...cord-chat-API-from-spigot-subclasses.patch |  6 +-
 .../Player-Tab-List-and-Title-APIs.patch      |  4 +-
 .../Player-affects-spawning-API.patch         |  2 +-
 .../Player.setPlayerProfile-API.patch         |  2 +-
 Spigot-API-Patches/Timings-v2.patch           | 70 +++++++++----------
 .../Ability-to-apply-mending-to-XP-API.patch  |  6 +-
 ...-replace-OfflinePlayer-getLastPlayed.patch |  8 +--
 ...d-method-to-open-already-placed-sign.patch |  2 +-
 ...-remove-from-being-called-on-Players.patch |  2 +-
 .../Complete-resource-pack-API.patch          | 16 ++---
 ...ble-inter-world-teleportation-safety.patch |  4 +-
 ...e-attack-cooldown-methods-for-Player.patch |  6 +-
 ...nt-protocol-version-and-virtual-host.patch | 10 +--
 .../Flag-to-disable-the-channel-limit.patch   |  2 +-
 .../Implement-PlayerLocaleChangeEvent.patch   |  4 +-
 .../Improve-death-events.patch                | 18 ++---
 .../InventoryCloseEvent-Reason-API.patch      | 16 ++---
 .../Only-refresh-abilities-if-needed.patch    |  2 +-
 ...layer-View-Distance-API-placeholders.patch |  6 +-
 .../Player-Tab-List-and-Title-APIs.patch      |  6 +-
 .../Player-affects-spawning-API.patch         |  8 +--
 .../Player.setPlayerProfile-API.patch         |  6 +-
 ...PlayerPickupItemEvent-setFlyAtPlayer.patch |  2 +-
 .../Shoulder-Entities-Release-API.patch       |  4 +-
 .../String-based-Action-Bar-API.patch         |  4 +-
 Spigot-Server-Patches/Timings-v2.patch        | 58 +++++++--------
 ...nd-for-setting-passengers-on-players.patch |  2 +-
 ...th-absorb-values-and-repair-bad-data.patch |  4 +-
 scripts/init.sh                               | 14 ++++
 work/Bukkit                                   |  2 +-
 work/CraftBukkit                              |  2 +-
 work/Spigot                                   |  2 +-
 .../Fix-EntityItem-hunks.patch                | 20 ++++++
 .../Fix-PlayerInventory-file.patch            | 29 ++++++++
 work/pre-source-patches/README.md             | 16 +++++
 44 files changed, 246 insertions(+), 164 deletions(-)
 create mode 100644 .vscode/settings.json
 create mode 100644 work/pre-source-patches/Fix-EntityItem-hunks.patch
 create mode 100644 work/pre-source-patches/Fix-PlayerInventory-file.patch
 create mode 100644 work/pre-source-patches/README.md

diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000000..0e14d8e27d
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "java.configuration.updateBuildConfiguration": "disabled"
+}
\ No newline at end of file
diff --git a/Spigot-API-Patches/Ability-to-apply-mending-to-XP-API.patch b/Spigot-API-Patches/Ability-to-apply-mending-to-XP-API.patch
index 6eecb2d157..4ec0189786 100644
--- a/Spigot-API-Patches/Ability-to-apply-mending-to-XP-API.patch
+++ b/Spigot-API-Patches/Ability-to-apply-mending-to-XP-API.patch
@@ -10,7 +10,7 @@ of giving the player experience points.
 Both an API To standalone mend, and apply mending logic to .giveExp has been added.
 
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index d8cc7d5db..7d6cfb05d 100644
+index f0aee351..1e7bbd0e 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/Spigot-API-Patches/Add-Ban-Methods-to-Player-Objects.patch b/Spigot-API-Patches/Add-Ban-Methods-to-Player-Objects.patch
index 668007a700..2080fd8f8e 100644
--- a/Spigot-API-Patches/Add-Ban-Methods-to-Player-Objects.patch
+++ b/Spigot-API-Patches/Add-Ban-Methods-to-Player-Objects.patch
@@ -8,7 +8,7 @@ Allows a more logical API for banning players.
 player.banPlayer("Breaking the rules");
 
 diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
-index ffc8ad373..222a9a7bf 100644
+index ffc8ad37..222a9a7b 100644
 --- a/src/main/java/org/bukkit/OfflinePlayer.java
 +++ b/src/main/java/org/bukkit/OfflinePlayer.java
 @@ -0,0 +0,0 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
@@ -74,7 +74,7 @@ index ffc8ad373..222a9a7bf 100644
      /**
       * Checks if this player is whitelisted or not
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index ff799ac78..32dc1f868 100644
+index 759d4210..203200ec 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@
diff --git a/Spigot-API-Patches/Add-String-based-Action-Bar-API.patch b/Spigot-API-Patches/Add-String-based-Action-Bar-API.patch
index c6cb3fa633..0ff8cb26e1 100644
--- a/Spigot-API-Patches/Add-String-based-Action-Bar-API.patch
+++ b/Spigot-API-Patches/Add-String-based-Action-Bar-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add String based Action Bar API
 
 
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 07ed02e8f..fe7827fda 100644
+index 495d43e7..62fe51ab 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/Spigot-API-Patches/Add-player-view-distance-API.patch b/Spigot-API-Patches/Add-player-view-distance-API.patch
index 2ac07447d7..d0fc6a26fa 100644
--- a/Spigot-API-Patches/Add-player-view-distance-API.patch
+++ b/Spigot-API-Patches/Add-player-view-distance-API.patch
@@ -5,13 +5,14 @@ Subject: [PATCH] Add player view distance API
 
 
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 6568b179d..338d47205 100644
+index f5d31648..a9b11322 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+      * @param affects Whether the player can affect mob spawning
       */
-     public void updateCommands();
- 
+     public void setAffectsSpawning(boolean affects);
++
 +    /**
 +     * Gets the view distance for this player
 +     *
@@ -25,8 +26,7 @@ index 6568b179d..338d47205 100644
 +     * @param viewDistance the player's view distance
 +     */
 +    public void setViewDistance(int viewDistance);
-+
-     // Spigot start
-     public class Spigot extends Entity.Spigot
-     {
+     // Paper end
+ 
+     /**
 --
\ No newline at end of file
diff --git a/Spigot-API-Patches/Complete-resource-pack-API.patch b/Spigot-API-Patches/Complete-resource-pack-API.patch
index fa543fd2ff..befe75528c 100644
--- a/Spigot-API-Patches/Complete-resource-pack-API.patch
+++ b/Spigot-API-Patches/Complete-resource-pack-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Complete resource pack API
 
 
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 0f7f25eb4..07ed02e8f 100644
+index 40246fb9..495d43e7 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -20,7 +20,7 @@ index 0f7f25eb4..07ed02e8f 100644
      /**
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
       */
-     public void setViewDistance(int viewDistance);
+     public void openBook(@NotNull ItemStack book);
  
 +    // Paper start
 +    /**
@@ -82,7 +82,7 @@ index 0f7f25eb4..07ed02e8f 100644
      public class Spigot extends Entity.Spigot
      {
 diff --git a/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java b/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java
-index b98195650..4c2102a11 100644
+index b9819565..4c2102a1 100644
 --- a/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java
 +++ b/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java
 @@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
diff --git a/Spigot-API-Patches/Expose-attack-cooldown-methods-for-Player.patch b/Spigot-API-Patches/Expose-attack-cooldown-methods-for-Player.patch
index ddf1149cae..2f2efe3ec2 100644
--- a/Spigot-API-Patches/Expose-attack-cooldown-methods-for-Player.patch
+++ b/Spigot-API-Patches/Expose-attack-cooldown-methods-for-Player.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expose attack cooldown methods for Player
 
 
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 32dc1f868..dea6130a6 100644
+index 203200ec..39a7440e 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/Spigot-API-Patches/Expose-client-protocol-version-and-virtual-host.patch b/Spigot-API-Patches/Expose-client-protocol-version-and-virtual-host.patch
index 3d3ea77102..1ea476691d 100644
--- a/Spigot-API-Patches/Expose-client-protocol-version-and-virtual-host.patch
+++ b/Spigot-API-Patches/Expose-client-protocol-version-and-virtual-host.patch
@@ -11,7 +11,7 @@ Add a NetworkClient interface that provides access to:
 
 diff --git a/src/main/java/com/destroystokyo/paper/network/NetworkClient.java b/src/main/java/com/destroystokyo/paper/network/NetworkClient.java
 new file mode 100644
-index 000000000..7b2af1bd7
+index 00000000..7b2af1bd
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/network/NetworkClient.java
 @@ -0,0 +0,0 @@
@@ -57,7 +57,7 @@ index 000000000..7b2af1bd7
 +
 +}
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 290b9d75d..d8cc7d5db 100644
+index f14bdd22..f0aee351 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
diff --git a/Spigot-API-Patches/Fix-upstream-javadoc-warnings-and-errors.patch b/Spigot-API-Patches/Fix-upstream-javadoc-warnings-and-errors.patch
index 2bff6f6316..d4220b2747 100644
--- a/Spigot-API-Patches/Fix-upstream-javadoc-warnings-and-errors.patch
+++ b/Spigot-API-Patches/Fix-upstream-javadoc-warnings-and-errors.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix upstream javadoc warnings and errors
 Upstream still refuses to use Java 8 with the API so they are likely unaware these are even issues.
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index d1d64fb60..2fe46faf0 100644
+index d1d64fb6..2fe46faf 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -74,7 +74,7 @@ index d1d64fb60..2fe46faf0 100644
      public <T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data, boolean force);
  
 diff --git a/src/main/java/org/bukkit/entity/AreaEffectCloud.java b/src/main/java/org/bukkit/entity/AreaEffectCloud.java
-index c2096b534..bca9d3659 100644
+index c2096b53..bca9d365 100644
 --- a/src/main/java/org/bukkit/entity/AreaEffectCloud.java
 +++ b/src/main/java/org/bukkit/entity/AreaEffectCloud.java
 @@ -0,0 +0,0 @@ public interface AreaEffectCloud extends Entity {
@@ -86,7 +86,7 @@ index c2096b534..bca9d3659 100644
      <T> void setParticle(@NotNull Particle particle, @Nullable T data);
  
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index fe7827fda..290b9d75d 100644
+index 62fe51ab..f14bdd22 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -179,7 +179,7 @@ index fe7827fda..290b9d75d 100644
      public <T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data);
  
 diff --git a/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java b/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java
-index 1b2267f4e..1a58734d9 100644
+index 1b2267f4..1a58734d 100644
 --- a/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java
 +++ b/src/main/java/org/bukkit/event/player/PlayerMoveEvent.java
 @@ -0,0 +0,0 @@ public class PlayerMoveEvent extends PlayerEvent implements Cancellable {
diff --git a/Spigot-API-Patches/Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/Spigot-API-Patches/Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
index af52609f4d..447a3aaef2 100644
--- a/Spigot-API-Patches/Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
+++ b/Spigot-API-Patches/Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses
 Change Javadoc to be accurate
 
 diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 63e48ef3f..b92304e9b 100644
+index 63e48ef3..b92304e9 100644
 --- a/src/main/java/org/bukkit/Bukkit.java
 +++ b/src/main/java/org/bukkit/Bukkit.java
 @@ -0,0 +0,0 @@ public final class Bukkit {
@@ -37,7 +37,7 @@ index 63e48ef3f..b92304e9b 100644
       * Gets the name of the update folder. The update folder is used to safely
       * update plugins at the right moment on a plugin load.
 diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 87300a5df..d35d2deff 100644
+index 87300a5d..d35d2def 100644
 --- a/src/main/java/org/bukkit/Server.java
 +++ b/src/main/java/org/bukkit/Server.java
 @@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
@@ -68,7 +68,7 @@ index 87300a5df..d35d2deff 100644
       * Gets the name of the update folder. The update folder is used to safely
       * update plugins at the right moment on a plugin load.
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 338d47205..8b5340a1f 100644
+index a9b11322..de1b1512 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/Spigot-API-Patches/Player-Tab-List-and-Title-APIs.patch b/Spigot-API-Patches/Player-Tab-List-and-Title-APIs.patch
index 8c8a302d50..fea697b037 100644
--- a/Spigot-API-Patches/Player-Tab-List-and-Title-APIs.patch
+++ b/Spigot-API-Patches/Player-Tab-List-and-Title-APIs.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Player Tab List and Title APIs
 
 diff --git a/src/main/java/com/destroystokyo/paper/Title.java b/src/main/java/com/destroystokyo/paper/Title.java
 new file mode 100644
-index 000000000..4fe18540f
+index 00000000..4fe18540
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/Title.java
 @@ -0,0 +0,0 @@
@@ -384,7 +384,7 @@ index 000000000..4fe18540f
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 8b5340a1f..0f7f25eb4 100644
+index de1b1512..40246fb9 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@
diff --git a/Spigot-API-Patches/Player-affects-spawning-API.patch b/Spigot-API-Patches/Player-affects-spawning-API.patch
index 80c4088d91..5b39115d01 100644
--- a/Spigot-API-Patches/Player-affects-spawning-API.patch
+++ b/Spigot-API-Patches/Player-affects-spawning-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player affects spawning API
 
 
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 8c3830cca..6568b179d 100644
+index 72b08e73..f5d31648 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/Spigot-API-Patches/Player.setPlayerProfile-API.patch b/Spigot-API-Patches/Player.setPlayerProfile-API.patch
index 0a675f9928..65b0f20906 100644
--- a/Spigot-API-Patches/Player.setPlayerProfile-API.patch
+++ b/Spigot-API-Patches/Player.setPlayerProfile-API.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Player.setPlayerProfile API
 This can be useful for changing name or skins after a player has logged in.
 
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 7d6cfb05d..ff799ac78 100644
+index 1e7bbd0e..759d4210 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ package org.bukkit.entity;
diff --git a/Spigot-API-Patches/Timings-v2.patch b/Spigot-API-Patches/Timings-v2.patch
index 963febc396..da4784bb6c 100644
--- a/Spigot-API-Patches/Timings-v2.patch
+++ b/Spigot-API-Patches/Timings-v2.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Timings v2
 
 diff --git a/src/main/java/co/aikar/timings/FullServerTickHandler.java b/src/main/java/co/aikar/timings/FullServerTickHandler.java
 new file mode 100644
-index 000000000..64531fcce
+index 00000000..64531fcc
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/FullServerTickHandler.java
 @@ -0,0 +0,0 @@
@@ -96,7 +96,7 @@ index 000000000..64531fcce
 +}
 diff --git a/src/main/java/co/aikar/timings/NullTimingHandler.java b/src/main/java/co/aikar/timings/NullTimingHandler.java
 new file mode 100644
-index 000000000..9b45ce887
+index 00000000..9b45ce88
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/NullTimingHandler.java
 @@ -0,0 +0,0 @@
@@ -170,7 +170,7 @@ index 000000000..9b45ce887
 +}
 diff --git a/src/main/java/co/aikar/timings/TimedEventExecutor.java b/src/main/java/co/aikar/timings/TimedEventExecutor.java
 new file mode 100644
-index 000000000..933ecf9bd
+index 00000000..933ecf9b
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimedEventExecutor.java
 @@ -0,0 +0,0 @@
@@ -259,7 +259,7 @@ index 000000000..933ecf9bd
 +}
 diff --git a/src/main/java/co/aikar/timings/Timing.java b/src/main/java/co/aikar/timings/Timing.java
 new file mode 100644
-index 000000000..a21e5ead5
+index 00000000..a21e5ead
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/Timing.java
 @@ -0,0 +0,0 @@
@@ -348,7 +348,7 @@ index 000000000..a21e5ead5
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingData.java b/src/main/java/co/aikar/timings/TimingData.java
 new file mode 100644
-index 000000000..a5d13a1e4
+index 00000000..a5d13a1e
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingData.java
 @@ -0,0 +0,0 @@
@@ -476,7 +476,7 @@ index 000000000..a5d13a1e4
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingHandler.java b/src/main/java/co/aikar/timings/TimingHandler.java
 new file mode 100644
-index 000000000..cc0390c06
+index 00000000..cc0390c0
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingHandler.java
 @@ -0,0 +0,0 @@
@@ -709,7 +709,7 @@ index 000000000..cc0390c06
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingHistory.java b/src/main/java/co/aikar/timings/TimingHistory.java
 new file mode 100644
-index 000000000..ddaed8127
+index 00000000..ddaed812
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingHistory.java
 @@ -0,0 +0,0 @@
@@ -1069,7 +1069,7 @@ index 000000000..ddaed8127
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingHistoryEntry.java b/src/main/java/co/aikar/timings/TimingHistoryEntry.java
 new file mode 100644
-index 000000000..86d5ac6bd
+index 00000000..86d5ac6b
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingHistoryEntry.java
 @@ -0,0 +0,0 @@
@@ -1133,7 +1133,7 @@ index 000000000..86d5ac6bd
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingIdentifier.java b/src/main/java/co/aikar/timings/TimingIdentifier.java
 new file mode 100644
-index 000000000..df142a89b
+index 00000000..df142a89
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingIdentifier.java
 @@ -0,0 +0,0 @@
@@ -1255,7 +1255,7 @@ index 000000000..df142a89b
 +}
 diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java
 new file mode 100644
-index 000000000..0b34e0d01
+index 00000000..0b34e0d0
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/Timings.java
 @@ -0,0 +0,0 @@
@@ -1554,7 +1554,7 @@ index 000000000..0b34e0d01
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java
 new file mode 100644
-index 000000000..c0d8f2016
+index 00000000..c0d8f201
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingsCommand.java
 @@ -0,0 +0,0 @@
@@ -1682,7 +1682,7 @@ index 000000000..c0d8f2016
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
 new file mode 100644
-index 000000000..5923adfe6
+index 00000000..5923adfe
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingsExport.java
 @@ -0,0 +0,0 @@
@@ -2043,7 +2043,7 @@ index 000000000..5923adfe6
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingsManager.java b/src/main/java/co/aikar/timings/TimingsManager.java
 new file mode 100644
-index 000000000..ef824d701
+index 00000000..ef824d70
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingsManager.java
 @@ -0,0 +0,0 @@
@@ -2237,7 +2237,7 @@ index 000000000..ef824d701
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java
 new file mode 100644
-index 000000000..bf3e059fe
+index 00000000..bf3e059f
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingsReportListener.java
 @@ -0,0 +0,0 @@
@@ -2318,7 +2318,7 @@ index 000000000..bf3e059fe
 +}
 diff --git a/src/main/java/co/aikar/timings/UnsafeTimingHandler.java b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java
 new file mode 100644
-index 000000000..632c49615
+index 00000000..632c4961
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java
 @@ -0,0 +0,0 @@
@@ -2377,7 +2377,7 @@ index 000000000..632c49615
 +}
 diff --git a/src/main/java/co/aikar/util/Counter.java b/src/main/java/co/aikar/util/Counter.java
 new file mode 100644
-index 000000000..80155072d
+index 00000000..80155072
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/Counter.java
 @@ -0,0 +0,0 @@
@@ -2421,7 +2421,7 @@ index 000000000..80155072d
 +}
 diff --git a/src/main/java/co/aikar/util/JSONUtil.java b/src/main/java/co/aikar/util/JSONUtil.java
 new file mode 100644
-index 000000000..190bf0598
+index 00000000..190bf059
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/JSONUtil.java
 @@ -0,0 +0,0 @@
@@ -2567,7 +2567,7 @@ index 000000000..190bf0598
 +}
 diff --git a/src/main/java/co/aikar/util/LoadingIntMap.java b/src/main/java/co/aikar/util/LoadingIntMap.java
 new file mode 100644
-index 000000000..63a899c7d
+index 00000000..63a899c7
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/LoadingIntMap.java
 @@ -0,0 +0,0 @@
@@ -2649,7 +2649,7 @@ index 000000000..63a899c7d
 +}
 diff --git a/src/main/java/co/aikar/util/LoadingMap.java b/src/main/java/co/aikar/util/LoadingMap.java
 new file mode 100644
-index 000000000..aedbb0332
+index 00000000..aedbb033
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/LoadingMap.java
 @@ -0,0 +0,0 @@
@@ -3023,7 +3023,7 @@ index 000000000..aedbb0332
 +}
 diff --git a/src/main/java/co/aikar/util/MRUMapCache.java b/src/main/java/co/aikar/util/MRUMapCache.java
 new file mode 100644
-index 000000000..5989ee212
+index 00000000..5989ee21
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/MRUMapCache.java
 @@ -0,0 +0,0 @@
@@ -3139,7 +3139,7 @@ index 000000000..5989ee212
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 0822b8e53..940c643df 100644
+index 0822b8e5..940c643d 100644
 --- a/src/main/java/org/bukkit/Bukkit.java
 +++ b/src/main/java/org/bukkit/Bukkit.java
 @@ -0,0 +0,0 @@ public final class Bukkit {
@@ -3151,7 +3151,7 @@ index 0822b8e53..940c643df 100644
  
      /**
 diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 11c5c2054..c197e3811 100644
+index 11c5c205..c197e381 100644
 --- a/src/main/java/org/bukkit/Server.java
 +++ b/src/main/java/org/bukkit/Server.java
 @@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
@@ -3182,7 +3182,7 @@ index 11c5c2054..c197e3811 100644
           * Sends the component to the player
           *
 diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
-index 247d194f8..72c5501e8 100644
+index 247d194f..72c5501e 100644
 --- a/src/main/java/org/bukkit/UnsafeValues.java
 +++ b/src/main/java/org/bukkit/UnsafeValues.java
 @@ -0,0 +0,0 @@ public interface UnsafeValues {
@@ -3200,7 +3200,7 @@ index 247d194f8..72c5501e8 100644
  }
 diff --git a/src/main/java/org/bukkit/command/BufferedCommandSender.java b/src/main/java/org/bukkit/command/BufferedCommandSender.java
 new file mode 100644
-index 000000000..f9a00aecc
+index 00000000..f9a00aec
 --- /dev/null
 +++ b/src/main/java/org/bukkit/command/BufferedCommandSender.java
 @@ -0,0 +0,0 @@
@@ -3226,7 +3226,7 @@ index 000000000..f9a00aecc
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
-index 4bfc21468..03bdc1622 100644
+index 4bfc2146..03bdc162 100644
 --- a/src/main/java/org/bukkit/command/Command.java
 +++ b/src/main/java/org/bukkit/command/Command.java
 @@ -0,0 +0,0 @@ public abstract class Command {
@@ -3256,7 +3256,7 @@ index 4bfc21468..03bdc1622 100644
              return true;
          }
 diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
-index d6c8938b1..a6ad94ef9 100644
+index d6c8938b..a6ad94ef 100644
 --- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java
 +++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
 @@ -0,0 +0,0 @@ public class FormattedCommandAlias extends Command {
@@ -3280,7 +3280,7 @@ index d6c8938b1..a6ad94ef9 100644
      }
 diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java
 new file mode 100644
-index 000000000..ca1893e9f
+index 00000000..ca1893e9
 --- /dev/null
 +++ b/src/main/java/org/bukkit/command/MessageCommandSender.java
 @@ -0,0 +0,0 @@
@@ -3399,7 +3399,7 @@ index 000000000..ca1893e9f
 +
 +}
 diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
-index 81e4fa573..f020cb04e 100644
+index 81e4fa57..f020cb04 100644
 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
 +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
 @@ -0,0 +0,0 @@ import org.bukkit.command.defaults.BukkitCommand;
@@ -3456,7 +3456,7 @@ index 81e4fa573..f020cb04e 100644
  
 diff --git a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java b/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
 deleted file mode 100644
-index 6023e4f61..000000000
+index 6023e4f6..00000000
 --- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
 +++ /dev/null
 @@ -0,0 +0,0 @@
@@ -3714,7 +3714,7 @@ index 6023e4f61..000000000
 -    // Spigot end
 -}
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index fcf473396..8c3830cca 100644
+index 766c724b..72b08e73 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3730,7 +3730,7 @@ index fcf473396..8c3830cca 100644
  
      @NotNull
 diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
-index f648c5989..78a2d2f8d 100644
+index f648c598..78a2d2f8 100644
 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 @@ -0,0 +0,0 @@ public final class SimplePluginManager implements PluginManager {
@@ -3787,7 +3787,7 @@ index f648c5989..78a2d2f8d 100644
      }
  }
 diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
-index 1173e433a..82e379d16 100644
+index 1173e433..82e379d1 100644
 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
 +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
 @@ -0,0 +0,0 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -3830,7 +3830,7 @@ index 1173e433a..82e379d16 100644
                  eventSet.add(new TimedRegisteredListener(listener, executor, eh.priority(), plugin, eh.ignoreCancelled()));
              } else {
 diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
-index 0ffc1dfdb..b859796b4 100644
+index 0ffc1dfd..b859796b 100644
 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
 +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
 @@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
@@ -3844,7 +3844,7 @@ index 0ffc1dfdb..b859796b4 100644
      private final Map<String, Class<?>> classes = new ConcurrentHashMap<String, Class<?>>();
      private final PluginDescriptionFile description;
 diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java
-index 5ca863b36..612958a33 100644
+index 5ca863b3..612958a3 100644
 --- a/src/main/java/org/bukkit/util/CachedServerIcon.java
 +++ b/src/main/java/org/bukkit/util/CachedServerIcon.java
 @@ -0,0 +0,0 @@ package org.bukkit.util;
@@ -3867,7 +3867,7 @@ index 5ca863b36..612958a33 100644
 +
 +}
 diff --git a/src/main/java/org/spigotmc/CustomTimingsHandler.java b/src/main/java/org/spigotmc/CustomTimingsHandler.java
-index b71235f69..3cbe5c2bb 100644
+index b71235f6..3cbe5c2b 100644
 --- a/src/main/java/org/spigotmc/CustomTimingsHandler.java
 +++ b/src/main/java/org/spigotmc/CustomTimingsHandler.java
 @@ -0,0 +0,0 @@
diff --git a/Spigot-Server-Patches/Ability-to-apply-mending-to-XP-API.patch b/Spigot-Server-Patches/Ability-to-apply-mending-to-XP-API.patch
index 01bf609987..5e20ec0d6c 100644
--- a/Spigot-Server-Patches/Ability-to-apply-mending-to-XP-API.patch
+++ b/Spigot-Server-Patches/Ability-to-apply-mending-to-XP-API.patch
@@ -10,7 +10,7 @@ of giving the player experience points.
 Both an API To standalone mend, and apply mending logic to .giveExp has been added.
 
 diff --git a/src/main/java/net/minecraft/server/EnchantmentManager.java b/src/main/java/net/minecraft/server/EnchantmentManager.java
-index 6f64b8db3a..b6a40e22a8 100644
+index 6f64b8db3..b6a40e22a 100644
 --- a/src/main/java/net/minecraft/server/EnchantmentManager.java
 +++ b/src/main/java/net/minecraft/server/EnchantmentManager.java
 @@ -0,0 +0,0 @@ public class EnchantmentManager {
@@ -26,7 +26,7 @@ index 6f64b8db3a..b6a40e22a8 100644
      public static Entry<EnumItemSlot, ItemStack> b(Enchantment enchantment, EntityLiving entityliving) {
          Map<EnumItemSlot, ItemStack> map = enchantment.a(entityliving);
 diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
-index 704a48c8ea..64d71a9a2a 100644
+index 704a48c8e..64d71a9a2 100644
 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 @@ -0,0 +0,0 @@ public class EntityExperienceOrb extends Entity {
@@ -43,7 +43,7 @@ index 704a48c8ea..64d71a9a2a 100644
          return i * 2;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0e0421a225..4fa554b299 100644
+index d4fed1a51..7f1138cbb 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/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/Spigot-Server-Patches/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
index 6fecbef54c..624a9923c3 100644
--- a/Spigot-Server-Patches/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
+++ b/Spigot-Server-Patches/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
@@ -16,7 +16,7 @@ intent to remove) and replace it with two new methods, clearly named and
 documented as to their purpose.
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 7f89d45ed2..64d1b72a87 100644
+index 7f89d45ed..64d1b72a8 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 {
@@ -28,7 +28,7 @@ index 7f89d45ed2..64d1b72a87 100644
      public boolean queueHealthUpdatePacket = false;
      public net.minecraft.server.PacketPlayOutUpdateHealth queuedHealthUpdatePacket;
 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index 0db1e83340..0aafa1b609 100644
+index e1799a05f..58ee7b30c 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 {
@@ -40,7 +40,7 @@ index 0db1e83340..0aafa1b609 100644
          UserCache usercache = this.server.getUserCache();
          GameProfile gameprofile1 = usercache.a(gameprofile.getId());
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
-index c1ef1c950d..3824180ee5 100644
+index c1ef1c950..3824180ee 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 @@ -0,0 +0,0 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -106,7 +106,7 @@ index c1ef1c950d..3824180ee5 100644
      public Location getBedSpawnLocation() {
          NBTTagCompound data = getData();
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index deacc21873..367e8cfc13 100644
+index bd87a1cf2..b701e4368 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/Add-method-to-open-already-placed-sign.patch b/Spigot-Server-Patches/Add-method-to-open-already-placed-sign.patch
index 11ce65b234..1d0ffca558 100644
--- a/Spigot-Server-Patches/Add-method-to-open-already-placed-sign.patch
+++ b/Spigot-Server-Patches/Add-method-to-open-already-placed-sign.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add method to open already placed sign
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index bb4dde0de0..60f839056b 100644
+index e37e08c37..300826a0f 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 {
diff --git a/Spigot-Server-Patches/Block-Entity-remove-from-being-called-on-Players.patch b/Spigot-Server-Patches/Block-Entity-remove-from-being-called-on-Players.patch
index c3931f187c..02cc4d4be1 100644
--- a/Spigot-Server-Patches/Block-Entity-remove-from-being-called-on-Players.patch
+++ b/Spigot-Server-Patches/Block-Entity-remove-from-being-called-on-Players.patch
@@ -12,7 +12,7 @@ Player we will look at limiting the scope of this change. It appears to
 be unintentional in the few cases we've seen so far.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 367e8cfc13..c020d0b4e6 100644
+index b701e4368..484b21f45 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/Complete-resource-pack-API.patch b/Spigot-Server-Patches/Complete-resource-pack-API.patch
index 05b8c21938..054d4778e0 100644
--- a/Spigot-Server-Patches/Complete-resource-pack-API.patch
+++ b/Spigot-Server-Patches/Complete-resource-pack-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Complete resource pack API
 
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index def713f495..f8aa8b1405 100644
+index def713f49..f8aa8b140 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 {
@@ -22,7 +22,7 @@ index def713f495..f8aa8b1405 100644
      // CraftBukkit end
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f4dde31e99..b410b74603 100644
+index a338b0f09..8f80582a7 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 {
@@ -37,9 +37,10 @@ index f4dde31e99..b410b74603 100644
      public CraftPlayer(CraftServer server, EntityPlayer entity) {
          super(server, entity);
 @@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
-         getHandle().server.getCommandDispatcher().a(getHandle());
+     public boolean getAffectsSpawning() {
+         return this.getHandle().affectsSpawning;
      }
- 
++
 +    @Override
 +    public void setResourcePack(String url, String hash) {
 +        Validate.notNull(url, "Resource pack URL cannot be null");
@@ -65,8 +66,7 @@ index f4dde31e99..b410b74603 100644
 +    public void setResourcePackStatus(org.bukkit.event.player.PlayerResourcePackStatusEvent.Status status) {
 +        this.resourcePackStatus = status;
 +    }
-+
-     // Spigot start
-     private final Player.Spigot spigot = new Player.Spigot()
-     {
+     // Paper end
+ 
+     @Override
 --
\ No newline at end of file
diff --git a/Spigot-Server-Patches/Configurable-inter-world-teleportation-safety.patch b/Spigot-Server-Patches/Configurable-inter-world-teleportation-safety.patch
index 110a79974c..b2cb7dc1b8 100644
--- a/Spigot-Server-Patches/Configurable-inter-world-teleportation-safety.patch
+++ b/Spigot-Server-Patches/Configurable-inter-world-teleportation-safety.patch
@@ -16,7 +16,7 @@ The wanted destination was on top of the emerald block however the player ended
 This only is the case if the player is teleporting between worlds.
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 320fd07c62..94f5c90b3c 100644
+index 320fd07c6..94f5c90b3 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -0,0 +0,0 @@ public class PaperWorldConfig {
@@ -30,7 +30,7 @@ index 320fd07c62..94f5c90b3c 100644
 +    }
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a09c02a1ce..f4dde31e99 100644
+index b87971e6d..a338b0f09 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/Expose-attack-cooldown-methods-for-Player.patch b/Spigot-Server-Patches/Expose-attack-cooldown-methods-for-Player.patch
index d30bc8ab0d..305fc9051e 100644
--- a/Spigot-Server-Patches/Expose-attack-cooldown-methods-for-Player.patch
+++ b/Spigot-Server-Patches/Expose-attack-cooldown-methods-for-Player.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expose attack cooldown methods for Player
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index e316e2af7d..87c4902f83 100644
+index e316e2af7..87c4902f8 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 {
@@ -27,11 +27,11 @@ index e316e2af7d..87c4902f83 100644
          this.aD = 0;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ba60ece457..0386452a8d 100644
+index a22bb25ff..7e2d4f452 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 {
-         this.resourcePackStatus = status;
+         getInventory().setItemInMainHand(hand);
      }
  
 +    //Paper start
diff --git a/Spigot-Server-Patches/Expose-client-protocol-version-and-virtual-host.patch b/Spigot-Server-Patches/Expose-client-protocol-version-and-virtual-host.patch
index 65514a88f8..61b59b673b 100644
--- a/Spigot-Server-Patches/Expose-client-protocol-version-and-virtual-host.patch
+++ b/Spigot-Server-Patches/Expose-client-protocol-version-and-virtual-host.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Expose client protocol version and virtual host
 
 diff --git a/src/main/java/com/destroystokyo/paper/network/PaperNetworkClient.java b/src/main/java/com/destroystokyo/paper/network/PaperNetworkClient.java
 new file mode 100644
-index 0000000000..5caca6439d
+index 000000000..5caca6439
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/network/PaperNetworkClient.java
 @@ -0,0 +0,0 @@
@@ -61,7 +61,7 @@ index 0000000000..5caca6439d
 +
 +}
 diff --git a/src/main/java/net/minecraft/server/HandshakeListener.java b/src/main/java/net/minecraft/server/HandshakeListener.java
-index 66dda900b6..07d85e5353 100644
+index 66dda900b..07d85e535 100644
 --- a/src/main/java/net/minecraft/server/HandshakeListener.java
 +++ b/src/main/java/net/minecraft/server/HandshakeListener.java
 @@ -0,0 +0,0 @@ public class HandshakeListener implements PacketHandshakingInListener {
@@ -84,7 +84,7 @@ index 66dda900b6..07d85e5353 100644
  
      @Override
 diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
-index d4c59baf8f..ae60f757e3 100644
+index d4c59baf8..ae60f757e 100644
 --- a/src/main/java/net/minecraft/server/NetworkManager.java
 +++ b/src/main/java/net/minecraft/server/NetworkManager.java
 @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -99,7 +99,7 @@ index d4c59baf8f..ae60f757e3 100644
      public NetworkManager(EnumProtocolDirection enumprotocoldirection) {
          this.h = enumprotocoldirection;
 diff --git a/src/main/java/net/minecraft/server/PacketHandshakingInSetProtocol.java b/src/main/java/net/minecraft/server/PacketHandshakingInSetProtocol.java
-index 4f008e4723..8545146fb1 100644
+index 4f008e472..8545146fb 100644
 --- a/src/main/java/net/minecraft/server/PacketHandshakingInSetProtocol.java
 +++ b/src/main/java/net/minecraft/server/PacketHandshakingInSetProtocol.java
 @@ -0,0 +0,0 @@ public class PacketHandshakingInSetProtocol implements Packet<PacketHandshakingI
@@ -111,7 +111,7 @@ index 4f008e4723..8545146fb1 100644
          return this.a;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f7ce4b1068..0e0421a225 100644
+index b58443263..d4fed1a51 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/Flag-to-disable-the-channel-limit.patch b/Spigot-Server-Patches/Flag-to-disable-the-channel-limit.patch
index 579096ad6c..b0f663ed18 100644
--- a/Spigot-Server-Patches/Flag-to-disable-the-channel-limit.patch
+++ b/Spigot-Server-Patches/Flag-to-disable-the-channel-limit.patch
@@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs.
 provide an optional flag to disable this check, at your own risk.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 35cacb3d29..be7c5d1747 100644
+index e6d2a40b6..b49c3029f 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/Implement-PlayerLocaleChangeEvent.patch b/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch
index c679d7611f..0ecd0139e0 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 a385035748..052fccc7a9 100644
+index a38503574..052fccc7a 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 a385035748..052fccc7a9 100644
          this.cl = packetplayinsettings.e();
          this.getDataWatcher().set(EntityPlayer.bt, (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 3d37f78c62..eca8c0ded9 100644
+index cc31b8d4a..397349963 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/Improve-death-events.patch b/Spigot-Server-Patches/Improve-death-events.patch
index f29ce78ece..a1ec0faff1 100644
--- a/Spigot-Server-Patches/Improve-death-events.patch
+++ b/Spigot-Server-Patches/Improve-death-events.patch
@@ -15,7 +15,7 @@ items and experience which is otherwise only properly possible by using
 internal code.
 
 diff --git a/src/main/java/net/minecraft/server/CombatTracker.java b/src/main/java/net/minecraft/server/CombatTracker.java
-index 84c3ea9d00..f563a7b630 100644
+index 84c3ea9d0..f563a7b63 100644
 --- a/src/main/java/net/minecraft/server/CombatTracker.java
 +++ b/src/main/java/net/minecraft/server/CombatTracker.java
 @@ -0,0 +0,0 @@ public class CombatTracker {
@@ -27,7 +27,7 @@ index 84c3ea9d00..f563a7b630 100644
          int i = this.f ? 300 : 100;
  
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 8a95e0f117..3a41137298 100644
+index 8a95e0f11..3a4113729 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
@@ -47,7 +47,7 @@ index 8a95e0f117..3a41137298 100644
  
      protected void i(double d0, double d1, double d2) {
 diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
-index 9157dace14..235ca47e16 100644
+index 9157dace1..235ca47e1 100644
 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java
 +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
 @@ -0,0 +0,0 @@ public class EntityArmorStand extends EntityLiving {
@@ -61,7 +61,7 @@ index 9157dace14..235ca47e16 100644
      }
  
 diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
-index 85202abbc9..8c30b34f28 100644
+index 5184e5262..b363e9ce9 100644
 --- a/src/main/java/net/minecraft/server/EntityFox.java
 +++ b/src/main/java/net/minecraft/server/EntityFox.java
 @@ -0,0 +0,0 @@ public class EntityFox extends EntityAnimal {
@@ -94,7 +94,7 @@ index 85202abbc9..8c30b34f28 100644
  
      public static boolean a(EntityFox entityfox, EntityLiving entityliving) {
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 19e7114cbb..c357339c26 100644
+index 19e7114cb..c357339c2 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
 @@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
@@ -249,7 +249,7 @@ index 19e7114cbb..c357339c26 100644
          return this.isBaby() ? (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.5F : (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F;
      }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 30b684b043..343680e3ba 100644
+index 30b684b04..343680e3b 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 {
@@ -300,7 +300,7 @@ index 30b684b043..343680e3ba 100644
          }
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftSound.java b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
-index 73cb64e09d..9f317ff2e8 100644
+index 73cb64e09..9f317ff2e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftSound.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
 @@ -0,0 +0,0 @@ public enum CraftSound {
@@ -327,7 +327,7 @@ index 73cb64e09d..9f317ff2e8 100644
          this.minecraftKey = minecraftKey;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0386452a8d..deacc21873 100644
+index 7e2d4f452..bd87a1cf2 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 {
@@ -348,7 +348,7 @@ index 0386452a8d..deacc21873 100644
  
      public void injectScaledMaxHealth(Collection<AttributeInstance> collection, boolean force) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index eec3effef7..0d66765591 100644
+index eec3effef..0d6676559 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/InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/InventoryCloseEvent-Reason-API.patch
index 1a964ba811..91609ba871 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 fc25b3c749..e316e2af7d 100644
+index fc25b3c74..e316e2af7 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 fc25b3c749..e316e2af7d 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 607042a41c..30b684b043 100644
+index 607042a41..30b684b04 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 607042a41c..30b684b043 100644
          this.m();
      }
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 498483930e..088873515c 100644
+index 498483930..088873515 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 498483930e..088873515c 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 f3e228c8e2..e940b4b273 100644
+index 90fd7d96b..132a2ceb7 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 f3e228c8e2..e940b4b273 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 5172ff53d3..139168291a 100644
+index 5172ff53d..139168291 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 5172ff53d3..139168291a 100644
                      }
                  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 60f839056b..948eef8689 100644
+index 300826a0f..4a941801b 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 60f839056b..948eef8689 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 be7c5d1747..ba60ece457 100644
+index b49c3029f..a22bb25ff 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 be7c5d1747..ba60ece457 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 47338c692a..309cbd0dc6 100644
+index 47338c692..309cbd0dc 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/Only-refresh-abilities-if-needed.patch b/Spigot-Server-Patches/Only-refresh-abilities-if-needed.patch
index d2a0a00843..dae0560148 100644
--- a/Spigot-Server-Patches/Only-refresh-abilities-if-needed.patch
+++ b/Spigot-Server-Patches/Only-refresh-abilities-if-needed.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Only refresh abilities if needed
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6085f293d0..26ee5444f8 100644
+index 76728b178..e18065598 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/Per-Player-View-Distance-API-placeholders.patch b/Spigot-Server-Patches/Per-Player-View-Distance-API-placeholders.patch
index c284863d87..aff8429a01 100644
--- a/Spigot-Server-Patches/Per-Player-View-Distance-API-placeholders.patch
+++ b/Spigot-Server-Patches/Per-Player-View-Distance-API-placeholders.patch
@@ -7,7 +7,7 @@ I hope to look at this more in-depth soon. It appears doable.
 However this should not block the update.
 
 diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
-index 9b2ac3c63a..29fa1d1df1 100644
+index 9b2ac3c63..29fa1d1df 100644
 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
 +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
 @@ -0,0 +0,0 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -23,7 +23,7 @@ index 9b2ac3c63a..29fa1d1df1 100644
                      double deltaX = this.locX - player.locX;
                      double deltaZ = this.locZ - player.locZ;
 diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
-index e3feb39ad0..5609fcfe00 100644
+index e3feb39ad..5609fcfe0 100644
 --- a/src/main/java/net/minecraft/server/EntityWither.java
 +++ b/src/main/java/net/minecraft/server/EntityWither.java
 @@ -0,0 +0,0 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -39,7 +39,7 @@ index e3feb39ad0..5609fcfe00 100644
                      double deltaX = this.locX - player.locX;
                      double deltaZ = this.locZ - player.locZ;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index c020d0b4e6..9f267414da 100644
+index 484b21f45..651ca3194 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/Player-Tab-List-and-Title-APIs.patch b/Spigot-Server-Patches/Player-Tab-List-and-Title-APIs.patch
index 064589b7ec..21f93f4e38 100644
--- a/Spigot-Server-Patches/Player-Tab-List-and-Title-APIs.patch
+++ b/Spigot-Server-Patches/Player-Tab-List-and-Title-APIs.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player Tab List and Title APIs
 
 
 diff --git a/src/main/java/net/minecraft/server/IChatBaseComponent.java b/src/main/java/net/minecraft/server/IChatBaseComponent.java
-index 2dc6342d46..1d0de5d9a7 100644
+index 2dc6342d4..1d0de5d9a 100644
 --- a/src/main/java/net/minecraft/server/IChatBaseComponent.java
 +++ b/src/main/java/net/minecraft/server/IChatBaseComponent.java
 @@ -0,0 +0,0 @@ public interface IChatBaseComponent extends Message, Iterable<IChatBaseComponent
@@ -17,7 +17,7 @@ index 2dc6342d46..1d0de5d9a7 100644
          public static IChatBaseComponent a(String s) {
              return (IChatBaseComponent) ChatDeserializer.a(IChatBaseComponent.ChatSerializer.a, s, IChatBaseComponent.class, false);
 diff --git a/src/main/java/net/minecraft/server/PacketPlayOutTitle.java b/src/main/java/net/minecraft/server/PacketPlayOutTitle.java
-index 3a6e780007..535056c64e 100644
+index 3a6e78000..535056c64 100644
 --- a/src/main/java/net/minecraft/server/PacketPlayOutTitle.java
 +++ b/src/main/java/net/minecraft/server/PacketPlayOutTitle.java
 @@ -0,0 +0,0 @@ public class PacketPlayOutTitle implements Packet<PacketListenerPlayOut> {
@@ -52,7 +52,7 @@ index 3a6e780007..535056c64e 100644
  
          if (this.a == PacketPlayOutTitle.EnumTitleAction.TIMES) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 26ee5444f8..a09c02a1ce 100644
+index e18065598..b87971e6d 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 @@
diff --git a/Spigot-Server-Patches/Player-affects-spawning-API.patch b/Spigot-Server-Patches/Player-affects-spawning-API.patch
index d1aa71c244..eb16ab9cfc 100644
--- a/Spigot-Server-Patches/Player-affects-spawning-API.patch
+++ b/Spigot-Server-Patches/Player-affects-spawning-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player affects spawning API
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index 28791cca90..418e2fccdc 100644
+index 28791cca9..418e2fccd 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 {
@@ -19,7 +19,7 @@ index 28791cca90..418e2fccdc 100644
      // CraftBukkit start
      public boolean fauxSleeping;
 diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
-index d020414f98..0ecbf873bf 100644
+index d020414f9..0ecbf873b 100644
 --- a/src/main/java/net/minecraft/server/EntityInsentient.java
 +++ b/src/main/java/net/minecraft/server/EntityInsentient.java
 @@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -32,7 +32,7 @@ index d020414f98..0ecbf873bf 100644
  
                  if (d0 > world.paperConfig.hardDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances
 diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java
-index dbbc34d91b..d823c6b6d9 100644
+index dbbc34d91..d823c6b6d 100644
 --- a/src/main/java/net/minecraft/server/EntitySilverfish.java
 +++ b/src/main/java/net/minecraft/server/EntitySilverfish.java
 @@ -0,0 +0,0 @@ public class EntitySilverfish extends EntityMonster {
@@ -45,7 +45,7 @@ index dbbc34d91b..d823c6b6d9 100644
              return false;
          }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8980de8203..6085f293d0 100644
+index 037b0bc68..76728b178 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/Player.setPlayerProfile-API.patch b/Spigot-Server-Patches/Player.setPlayerProfile-API.patch
index b2a1b7cf56..3a3be95116 100644
--- a/Spigot-Server-Patches/Player.setPlayerProfile-API.patch
+++ b/Spigot-Server-Patches/Player.setPlayerProfile-API.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Player.setPlayerProfile API
 This can be useful for changing name or skins after a player has logged in.
 
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index cc9b265182..f4f1037b3d 100644
+index cc9b26518..f4f1037b3 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 {
@@ -19,7 +19,7 @@ index cc9b265182..f4f1037b3d 100644
      private final ItemCooldown bY;
      @Nullable
 diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
-index 7c3b9c0b97..d4d752ddb4 100644
+index 7c3b9c0b9..d4d752ddb 100644
 --- a/src/main/java/net/minecraft/server/LoginListener.java
 +++ b/src/main/java/net/minecraft/server/LoginListener.java
 @@ -0,0 +0,0 @@ public class LoginListener implements PacketLoginInListener {
@@ -48,7 +48,7 @@ index 7c3b9c0b97..d4d752ddb4 100644
                              uniqueId = i.getId();
                              // Paper end
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4fa554b299..35cacb3d29 100644
+index 7f1138cbb..e6d2a40b6 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 @@
diff --git a/Spigot-Server-Patches/PlayerPickupItemEvent-setFlyAtPlayer.patch b/Spigot-Server-Patches/PlayerPickupItemEvent-setFlyAtPlayer.patch
index bed75ea374..13f732c58d 100644
--- a/Spigot-Server-Patches/PlayerPickupItemEvent-setFlyAtPlayer.patch
+++ b/Spigot-Server-Patches/PlayerPickupItemEvent-setFlyAtPlayer.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] PlayerPickupItemEvent#setFlyAtPlayer
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
-index 9c743de8dd..2deb5c494d 100644
+index d9c7a2150..b77e3e668 100644
 --- a/src/main/java/net/minecraft/server/EntityItem.java
 +++ b/src/main/java/net/minecraft/server/EntityItem.java
 @@ -0,0 +0,0 @@ public class EntityItem extends Entity {
diff --git a/Spigot-Server-Patches/Shoulder-Entities-Release-API.patch b/Spigot-Server-Patches/Shoulder-Entities-Release-API.patch
index 0458a9da43..157a3cd67b 100644
--- a/Spigot-Server-Patches/Shoulder-Entities-Release-API.patch
+++ b/Spigot-Server-Patches/Shoulder-Entities-Release-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Shoulder Entities Release API
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index cfcbd1a2e5..b8fe15f1a1 100644
+index cfcbd1a2e..b8fe15f1a 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 {
@@ -59,7 +59,7 @@ index cfcbd1a2e5..b8fe15f1a1 100644
      @Override
      public abstract boolean isSpectator();
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 772f919b6c..bb4dde0de0 100644
+index 93c8441f4..e37e08c37 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 {
diff --git a/Spigot-Server-Patches/String-based-Action-Bar-API.patch b/Spigot-Server-Patches/String-based-Action-Bar-API.patch
index de4b444438..6e58a571ec 100644
--- a/Spigot-Server-Patches/String-based-Action-Bar-API.patch
+++ b/Spigot-Server-Patches/String-based-Action-Bar-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] String based Action Bar API
 
 
 diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java
-index c96f3ed176..1f6a126329 100644
+index c96f3ed17..1f6a12632 100644
 --- a/src/main/java/net/minecraft/server/MCUtil.java
 +++ b/src/main/java/net/minecraft/server/MCUtil.java
 @@ -0,0 +0,0 @@ package net.minecraft.server;
@@ -42,7 +42,7 @@ index c96f3ed176..1f6a126329 100644
      public static boolean isMainThread() {
          return MinecraftServer.getServer().isMainThread();
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index eca8c0ded9..f7ce4b1068 100644
+index 397349963..b58443263 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/Timings-v2.patch b/Spigot-Server-Patches/Timings-v2.patch
index 4d07def715..b148abd6c9 100644
--- a/Spigot-Server-Patches/Timings-v2.patch
+++ b/Spigot-Server-Patches/Timings-v2.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Timings v2
 
 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
 new file mode 100644
-index 0000000000..3f9fb6f906
+index 000000000..3f9fb6f90
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java
 @@ -0,0 +0,0 @@
@@ -145,7 +145,7 @@ index 0000000000..3f9fb6f906
 +}
 diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
 new file mode 100644
-index 0000000000..d5d3b2a20c
+index 000000000..d5d3b2a20
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
 @@ -0,0 +0,0 @@
@@ -255,7 +255,7 @@ index 0000000000..d5d3b2a20c
 +    }
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index 5518ec1e54..0c65afccfd 100644
+index 5518ec1e5..0c65afccf 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -0,0 +0,0 @@ import java.util.concurrent.TimeUnit;
@@ -302,7 +302,7 @@ index 5518ec1e54..0c65afccfd 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
-index b2e5bcf57c..78b0e78474 100644
+index b2e5bcf57..78b0e7847 100644
 --- a/src/main/java/net/minecraft/server/Block.java
 +++ b/src/main/java/net/minecraft/server/Block.java
 @@ -0,0 +0,0 @@ public class Block implements IMaterial {
@@ -322,7 +322,7 @@ index b2e5bcf57c..78b0e78474 100644
      private final float frictionFactor;
      protected final BlockStateList<Block, IBlockData> blockStateList;
 diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
-index 8075cc4827..3de0f69758 100644
+index 8075cc482..3de0f6975 100644
 --- a/src/main/java/net/minecraft/server/Chunk.java
 +++ b/src/main/java/net/minecraft/server/Chunk.java
 @@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
@@ -342,7 +342,7 @@ index 8075cc4827..3de0f69758 100644
          }
      }
 diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index dcf2d38df5..2933439ba1 100644
+index dcf2d38df..2933439ba 100644
 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
 +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
 @@ -0,0 +0,0 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -378,7 +378,7 @@ index dcf2d38df5..2933439ba1 100644
  
      @Override
 diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
-index 2e09900f45..1ebb16f0f6 100644
+index 2e09900f4..1ebb16f0f 100644
 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
 +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
 @@ -0,0 +0,0 @@
@@ -416,7 +416,7 @@ index 2e09900f45..1ebb16f0f6 100644
      }
  
 diff --git a/src/main/java/net/minecraft/server/CustomFunction.java b/src/main/java/net/minecraft/server/CustomFunction.java
-index 46e7737ca3..a3ef943066 100644
+index 46e7737ca..a3ef94306 100644
 --- a/src/main/java/net/minecraft/server/CustomFunction.java
 +++ b/src/main/java/net/minecraft/server/CustomFunction.java
 @@ -0,0 +0,0 @@ public class CustomFunction {
@@ -443,7 +443,7 @@ index 46e7737ca3..a3ef943066 100644
          return this.b;
      }
 diff --git a/src/main/java/net/minecraft/server/CustomFunctionData.java b/src/main/java/net/minecraft/server/CustomFunctionData.java
-index 9c9eef0ad9..b42fbf2c65 100644
+index 9c9eef0ad..b42fbf2c6 100644
 --- a/src/main/java/net/minecraft/server/CustomFunctionData.java
 +++ b/src/main/java/net/minecraft/server/CustomFunctionData.java
 @@ -0,0 +0,0 @@ public class CustomFunctionData implements IResourcePackListener {
@@ -456,7 +456,7 @@ index 9c9eef0ad9..b42fbf2c65 100644
                  int j = 0;
                  CustomFunction.c[] acustomfunction_c = customfunction.b();
 diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
-index b60956218d..19e2df3098 100644
+index b60956218..19e2df309 100644
 --- a/src/main/java/net/minecraft/server/DedicatedServer.java
 +++ b/src/main/java/net/minecraft/server/DedicatedServer.java
 @@ -0,0 +0,0 @@ import org.apache.logging.log4j.Level;
@@ -509,7 +509,7 @@ index b60956218d..19e2df3098 100644
              return waitable.get();
          } catch (java.util.concurrent.ExecutionException e) {
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 708f6c97c6..c348d6bec3 100644
+index 708f6c97c..c348d6bec 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
 @@ -0,0 +0,0 @@ import org.bukkit.command.CommandSender;
@@ -548,7 +548,7 @@ index 708f6c97c6..c348d6bec3 100644
  
      protected Vec3D a(Vec3D vec3d, EnumMoveType enummovetype) {
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 40173aa35b..678dae6dae 100644
+index 40173aa35..678dae6da 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
 @@ -0,0 +0,0 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -624,7 +624,7 @@ index 40173aa35b..678dae6dae 100644
      }
  
 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 64318e6e78..c76620f2b3 100644
+index 64318e6e7..c76620f2b 100644
 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
 +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
 @@ -0,0 +0,0 @@
@@ -752,7 +752,7 @@ index 64318e6e78..c76620f2b3 100644
          this.methodProfiler.exit();
      }
 diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
-index 3d2436365f..db159baab2 100644
+index 3d2436365..db159baab 100644
 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
 +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
 @@ -0,0 +0,0 @@
@@ -799,7 +799,7 @@ index 3d2436365f..db159baab2 100644
      }
  
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index ae194b981f..d20037bd00 100644
+index ae194b981..d20037bd0 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
 @@ -0,0 +0,0 @@ import org.bukkit.inventory.CraftingInventory;
@@ -854,7 +854,7 @@ index ae194b981f..d20037bd00 100644
          // this.minecraftServer.getCommandDispatcher().a(this.player.getCommandListener(), s);
          // CraftBukkit end
 diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
-index cb6d50ea70..9ba03f8ed0 100644
+index cb6d50ea7..9ba03f8ed 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
 @@ -0,0 +0,0 @@
@@ -880,7 +880,7 @@ index cb6d50ea70..9ba03f8ed0 100644
              throw CancelledPacketHandleException.INSTANCE;
          }
 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index 59752dcd47..1ee1df0757 100644
+index 017db63a4..fc3422cca 100644
 --- a/src/main/java/net/minecraft/server/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/PlayerList.java
 @@ -0,0 +0,0 @@
@@ -904,7 +904,7 @@ index 59752dcd47..1ee1df0757 100644
  
      public WhiteList getWhitelist() {
 diff --git a/src/main/java/net/minecraft/server/TickListServer.java b/src/main/java/net/minecraft/server/TickListServer.java
-index 061730c560..c5890f5dcc 100644
+index 061730c56..c5890f5dc 100644
 --- a/src/main/java/net/minecraft/server/TickListServer.java
 +++ b/src/main/java/net/minecraft/server/TickListServer.java
 @@ -0,0 +0,0 @@ public class TickListServer<T> implements TickList<T> {
@@ -954,7 +954,7 @@ index 061730c560..c5890f5dcc 100644
              this.g.clear();
          }
 diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
-index 382498d193..a833781e59 100644
+index 382498d19..a833781e5 100644
 --- a/src/main/java/net/minecraft/server/TileEntity.java
 +++ b/src/main/java/net/minecraft/server/TileEntity.java
 @@ -0,0 +0,0 @@ import org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer;
@@ -973,7 +973,7 @@ index 382498d193..a833781e59 100644
      private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
      public final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(DATA_TYPE_REGISTRY);
 diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index 69c704a429..d7b3b4b8c8 100644
+index 69c704a42..d7b3b4b8c 100644
 --- a/src/main/java/net/minecraft/server/World.java
 +++ b/src/main/java/net/minecraft/server/World.java
 @@ -0,0 +0,0 @@
@@ -1040,7 +1040,7 @@ index 69c704a429..d7b3b4b8c8 100644
      }
  
 diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index 508cdc6a0c..089468835b 100644
+index 508cdc6a0..089468835 100644
 --- a/src/main/java/net/minecraft/server/WorldServer.java
 +++ b/src/main/java/net/minecraft/server/WorldServer.java
 @@ -0,0 +0,0 @@
@@ -1132,7 +1132,7 @@ index 508cdc6a0c..089468835b 100644
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4413066eea..834c16172b 100644
+index 4413066ee..834c16172 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 @@ -0,0 +0,0 @@ public final class CraftServer implements Server {
@@ -1169,7 +1169,7 @@ index 4413066eea..834c16172b 100644
              org.spigotmc.RestartCommand.restart();
 diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
 deleted file mode 100644
-index 38f211526b..0000000000
+index 38f211526..000000000
 --- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
 +++ /dev/null
 @@ -0,0 +0,0 @@
@@ -1340,7 +1340,7 @@ index 38f211526b..0000000000
 -    }
 -}
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5b58b1a96f..8980de8203 100644
+index c94a41d02..037b0bc68 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 {
@@ -1359,7 +1359,7 @@ index 5b58b1a96f..8980de8203 100644
  
      public Player.Spigot spigot()
 diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index b90979c7ba..8823f94f7b 100644
+index b90979c7b..8823f94f7 100644
 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
 +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
 @@ -0,0 +0,0 @@
@@ -1425,7 +1425,7 @@ index b90979c7ba..8823f94f7b 100644
  
      private boolean isReady(final int currentTick) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
-index 3f55381c15..0d9a466809 100644
+index 3f55381c1..0d9a46680 100644
 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
 +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
 @@ -0,0 +0,0 @@
@@ -1510,7 +1510,7 @@ index 3f55381c15..0d9a466809 100644
 -    // Spigot end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java
-index e52ef47b78..3d90b34268 100644
+index e52ef47b7..3d90b3426 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java
 @@ -0,0 +0,0 @@ import org.bukkit.util.CachedServerIcon;
@@ -1522,7 +1522,7 @@ index e52ef47b78..3d90b34268 100644
          this.value = value;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index c88704f69e..f7fdd0727b 100644
+index c88704f69..f7fdd0727 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -1540,7 +1540,7 @@ index c88704f69e..f7fdd0727b 100644
       * This helper class represents the different NBT Tags.
       * <p>
 diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
-index 4c947a9352..106e9d7e2d 100644
+index 4c947a935..106e9d7e2 100644
 --- a/src/main/java/org/spigotmc/ActivationRange.java
 +++ b/src/main/java/org/spigotmc/ActivationRange.java
 @@ -0,0 +0,0 @@ import net.minecraft.server.EntityWither;
diff --git a/Spigot-Server-Patches/Workaround-for-setting-passengers-on-players.patch b/Spigot-Server-Patches/Workaround-for-setting-passengers-on-players.patch
index 34f964f95c..39112d3b1a 100644
--- a/Spigot-Server-Patches/Workaround-for-setting-passengers-on-players.patch
+++ b/Spigot-Server-Patches/Workaround-for-setting-passengers-on-players.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Workaround for setting passengers on players
 SPIGOT-1915 & GH-114
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 3e1a7be6f3..3d37f78c62 100644
+index 34ae74700..cc31b8d4a 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/handle-NaN-health-absorb-values-and-repair-bad-data.patch b/Spigot-Server-Patches/handle-NaN-health-absorb-values-and-repair-bad-data.patch
index cdc9244ea6..65063a06b2 100644
--- a/Spigot-Server-Patches/handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/Spigot-Server-Patches/handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] handle NaN health/absorb values and repair bad data
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 4409588fbb..d202d3d65f 100644
+index 4409588fb..d202d3d65 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
 @@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
@@ -44,7 +44,7 @@ index 4409588fbb..d202d3d65f 100644
          }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b410b74603..3e1a7be6f3 100644
+index 8f80582a7..34ae74700 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/scripts/init.sh b/scripts/init.sh
index 19a8558212..f5bb8a0b7e 100755
--- a/scripts/init.sh
+++ b/scripts/init.sh
@@ -16,6 +16,20 @@ if [ "x$patch" == "x" ]; then
     patch="$basedir/hctap.exe"
 fi
 
+# apply patches directly to the file tree
+# used to fix issues from upstream source repos
+cd $basedir
+prepatchesdir="$workdir/pre-source-patches"
+for file in $(ls $prepatchesdir)
+do
+    if [ $file == "README.md" ]; then
+        continue
+    fi
+
+    echo "--==-- Applying PRE-SOURCE patch: $file --==--"
+    $patch -p0 < "$prepatchesdir/$file"
+done
+
 echo "Applying CraftBukkit patches to NMS..."
 cd "$workdir/CraftBukkit"
 $gitcmd checkout -B patched HEAD >/dev/null 2>&1
diff --git a/work/Bukkit b/work/Bukkit
index 6eac6d7062..1ef8b9d97f 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 6eac6d706208e0b32105835b838a16341189ad0f
+Subproject commit 1ef8b9d97fda0367eb834064d56a65766aa9e1dd
diff --git a/work/CraftBukkit b/work/CraftBukkit
index 17543ecfd4..649921e5ba 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit 17543ecfd47fab67955aa3913423d769796de368
+Subproject commit 649921e5ba088edd698f37e42b11b11c571c15a0
diff --git a/work/Spigot b/work/Spigot
index baafee9142..df0eb250ce 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit baafee9142356786ffc5b81507e9e758d7fa241c
+Subproject commit df0eb250cebede4d3bd1ad607c13a2ccd071f679
diff --git a/work/pre-source-patches/Fix-EntityItem-hunks.patch b/work/pre-source-patches/Fix-EntityItem-hunks.patch
new file mode 100644
index 0000000000..6148b4504e
--- /dev/null
+++ b/work/pre-source-patches/Fix-EntityItem-hunks.patch
@@ -0,0 +1,20 @@
+--- work/CraftBukkit/nms-patches/EntityItem.patch	2019-06-08 15:17:36.374050325 -0500
++++ work/CraftBukkit/nms-patches/EntityItem.patch	2019-06-08 15:17:36.374050325 -0500
+@@ -0,0 +0,0 @@
+              this.velocityChanged();
+              this.f = (int) ((float) this.f - f);
+              if (this.f <= 0) {
+-@@ -0,0 +0,0 @@
++@@ -0,0 +0,0 @@
+              Item item = itemstack.getItem();
+              int i = itemstack.getCount();
+  
+@@ -0,0 +0,0 @@
+              if (this.pickupDelay == 0 && (this.owner == null || 6000 - this.age <= 200 || this.owner.equals(entityhuman.getUniqueID())) && entityhuman.inventory.pickup(itemstack)) {
+                  entityhuman.receive(this, i);
+                  if (itemstack.isEmpty()) {
+-@@ -0,0 +0,0 @@
++@@ -0,0 +0,0 @@
+      }
+  
+      public void setItemStack(ItemStack itemstack) {
diff --git a/work/pre-source-patches/Fix-PlayerInventory-file.patch b/work/pre-source-patches/Fix-PlayerInventory-file.patch
new file mode 100644
index 0000000000..4f81219dd8
--- /dev/null
+++ b/work/pre-source-patches/Fix-PlayerInventory-file.patch
@@ -0,0 +1,29 @@
+--- work/CraftBukkit/nms-patches/PlayerInventory.patch	2019-06-08 15:17:36.377383665 -0500
++++ work/CraftBukkit/nms-patches/PlayerInventory.patch	2019-06-08 15:17:36.377383665 -0500
+@@ -0,0 +0,0 @@
+      public PlayerInventory(EntityHuman entityhuman) {
+          this.items = NonNullList.a(36, ItemStack.a);
+          this.armor = NonNullList.a(4, ItemStack.a);
+-@@ -0,0 +0,0 @@
++@@ -0,0 +0,0 @@
+          return itemstack.getItem() == itemstack1.getItem() && ItemStack.equals(itemstack, itemstack1);
+      }
+  
+@@ -0,0 +0,0 @@
+      public int getFirstEmptySlotIndex() {
+          for (int i = 0; i < this.items.size(); ++i) {
+              if (((ItemStack) this.items.get(i)).isEmpty()) {
+-@@ -0,0 +0,0 @@
++@@ -0,0 +0,0 @@
+                  ItemStack itemstack = (ItemStack) this.armor.get(i);
+  
+                  if (itemstack.getItem() instanceof ItemArmor) {
+@@ -0,0 +0,0 @@
+                      });
+                  }
+              }
+-@@ -0,0 +0,0 @@
++@@ -0,0 +0,0 @@
+      }
+  
+      public ItemStack getCarried() {
diff --git a/work/pre-source-patches/README.md b/work/pre-source-patches/README.md
new file mode 100644
index 0000000000..f91d42efd0
--- /dev/null
+++ b/work/pre-source-patches/README.md
@@ -0,0 +1,16 @@
+Files in this directory are applied directly to the tree before any other
+patches.
+
+These patches are always applied directly from the root of the repository.
+"$basedir"
+
+This allows us to fix malformed patch files and other changes from upstream.
+This is not intended to replace any other system and should not be used in
+place of the existing specific patch directories.
+
+Documentation is intentionally sparse to avoid being misused.
+
+`diff -ruN originalfile changedfile`  
+
+See the man pages on diff and patch.
+