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.
+