diff --git a/Spigot-API-Patches/Add-PlayerLocaleChangeEvent.patch b/Spigot-API-Patches/Add-PlayerLocaleChangeEvent.patch
index 058e85a685..ee8cf9b974 100644
--- a/Spigot-API-Patches/Add-PlayerLocaleChangeEvent.patch
+++ b/Spigot-API-Patches/Add-PlayerLocaleChangeEvent.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add PlayerLocaleChangeEvent
 
 diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerLocaleChangeEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerLocaleChangeEvent.java
 new file mode 100644
-index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
+index 00000000..29dd763a
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerLocaleChangeEvent.java
 @@ -0,0 +0,0 @@
@@ -18,7 +18,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +
 +/**
 + * Called when the locale of the player is changed.
++ *
++ * @deprecated Replaced by {@link org.bukkit.event.player.PlayerLocaleChangeEvent} upstream
 + */
++@Deprecated
 +public class PlayerLocaleChangeEvent extends PlayerEvent {
 +    private static final HandlerList handlers = new HandlerList();
 +    private final String oldLocale;
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 48d325fa36..6d442ba53a 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 481c39a6..1afdde07 100644
+index f04e2541..72c85452 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, CommandSender, Offline
diff --git a/Spigot-API-Patches/Add-player-view-distance-API.patch b/Spigot-API-Patches/Add-player-view-distance-API.patch
index 8881dbc217..2a87e9c61e 100644
--- a/Spigot-API-Patches/Add-player-view-distance-API.patch
+++ b/Spigot-API-Patches/Add-player-view-distance-API.patch
@@ -5,7 +5,7 @@ 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 95880585..eb738db0 100644
+index e429e701..7fcc7aea 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, CommandSender, Offline
diff --git a/Spigot-API-Patches/Complete-resource-pack-API.patch b/Spigot-API-Patches/Complete-resource-pack-API.patch
index 64c44d620b..ae3652cbd6 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 2c8b46cc..481c39a6 100644
+index 1fc83b57..f04e2541 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, CommandSender, Offline
diff --git a/Spigot-API-Patches/Player-affects-spawning-API.patch b/Spigot-API-Patches/Player-affects-spawning-API.patch
index 244a4b90f9..fe7faba593 100644
--- a/Spigot-API-Patches/Player-affects-spawning-API.patch
+++ b/Spigot-API-Patches/Player-affects-spawning-API.patch
@@ -5,12 +5,12 @@ 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 845c3670..95880585 100644
+index d2a78f56..e429e701 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, CommandSender, Offline
       */
-     public AdvancementProgress getAdvancementProgress(Advancement advancement);
+     public String getLocale();
  
 +    /**
 +     * Get whether the player can affect mob spawning
diff --git a/Spigot-API-Patches/Timings-v2.patch b/Spigot-API-Patches/Timings-v2.patch
index 75cecde2e1..e33ad3c6f9 100644
--- a/Spigot-API-Patches/Timings-v2.patch
+++ b/Spigot-API-Patches/Timings-v2.patch
@@ -3457,7 +3457,7 @@ index a8f61f2d..00000000
 -    // Spigot end
 -}
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 70eb5eec..845c3670 100644
+index bd2cc354..d2a78f56 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, CommandSender, Offline
diff --git a/Spigot-Server-Patches/Add-player-view-distance-API.patch b/Spigot-Server-Patches/Add-player-view-distance-API.patch
index caccbb57bd..b4b8ba0fb3 100644
--- a/Spigot-Server-Patches/Add-player-view-distance-API.patch
+++ b/Spigot-Server-Patches/Add-player-view-distance-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add player view distance API
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 586c4ad0d..1a5e5d944 100644
+index 9a5b8f083..a8038881d 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 {
@@ -194,7 +194,7 @@ index e4ed2e991..cfac05750 100644
 +    // 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 94cca69a4..efcf383e7 100644
+index b451be916..3c39751a0 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/Auto-Save-Improvements.patch b/Spigot-Server-Patches/Auto-Save-Improvements.patch
index f1a70309ce..d65e80f774 100644
--- a/Spigot-Server-Patches/Auto-Save-Improvements.patch
+++ b/Spigot-Server-Patches/Auto-Save-Improvements.patch
@@ -96,13 +96,13 @@ index 9836c0c5a..39f0f5a17 100644
                  }
              }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 2ee915226..fd7fda511 100644
+index fff461e3c..39311e1d1 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 {
  
      private static final Logger bV = LogManager.getLogger();
-     public String locale = null; // Spigot private -> public // Paper - default to null
+     public String locale = null; // PAIL: private -> public // Paper - default to null
 +    public long lastSave = MinecraftServer.currentTick; // Paper
      public PlayerConnection playerConnection;
      public final MinecraftServer server;
diff --git a/Spigot-Server-Patches/Auto-fix-bad-Y-levels-on-player-login.patch b/Spigot-Server-Patches/Auto-fix-bad-Y-levels-on-player-login.patch
index 9d97bc2ff3..4337d6a003 100644
--- a/Spigot-Server-Patches/Auto-fix-bad-Y-levels-on-player-login.patch
+++ b/Spigot-Server-Patches/Auto-fix-bad-Y-levels-on-player-login.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Auto fix bad Y levels on player login
 Bring down to a saner Y level if super high, as this can cause the server to crash
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 42eaef8a1..57d21fc12 100644
+index 39311e1d1..04c36d36e 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/Complete-resource-pack-API.patch b/Spigot-Server-Patches/Complete-resource-pack-API.patch
index 06012beb37..5fbca975fa 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 9be557062..3b4b5cf8c 100644
+index 8bd9f2113..8dc7b1893 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, ITickable {
@@ -23,7 +23,7 @@ index 9be557062..3b4b5cf8c 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 4822071c9..409582d5b 100644
+index eb7bdd222..ab164c11e 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/Configurable-container-update-tick-rate.patch b/Spigot-Server-Patches/Configurable-container-update-tick-rate.patch
index 7eac4861dc..9a1a97506f 100644
--- a/Spigot-Server-Patches/Configurable-container-update-tick-rate.patch
+++ b/Spigot-Server-Patches/Configurable-container-update-tick-rate.patch
@@ -19,7 +19,7 @@ index 1bb956515..e6aae7317 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 1a5e5d944..42f6b7206 100644
+index a8038881d..6fdde5c07 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/Configurable-end-credits.patch b/Spigot-Server-Patches/Configurable-end-credits.patch
index 95bc9f041b..436456b73a 100644
--- a/Spigot-Server-Patches/Configurable-end-credits.patch
+++ b/Spigot-Server-Patches/Configurable-end-credits.patch
@@ -20,7 +20,7 @@ index fd606ee14..c00fa83d5 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index a6f70d846..8b0c126a3 100644
+index 0d16f65c8..9a5b8f083 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/Fix-inter-world-teleportation-glitches.patch b/Spigot-Server-Patches/Fix-inter-world-teleportation-glitches.patch
index e274346636..b2a7268715 100644
--- a/Spigot-Server-Patches/Fix-inter-world-teleportation-glitches.patch
+++ b/Spigot-Server-Patches/Fix-inter-world-teleportation-glitches.patch
@@ -25,7 +25,7 @@ index 4cc74cd65..fa49397ea 100644
 +    }
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b1c06388b..cf753d362 100644
+index fe40c51a4..eb7bdd222 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/IllegalPacketEvent.patch b/Spigot-Server-Patches/IllegalPacketEvent.patch
index 26227972d3..0de3330ed7 100644
--- a/Spigot-Server-Patches/IllegalPacketEvent.patch
+++ b/Spigot-Server-Patches/IllegalPacketEvent.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] IllegalPacketEvent
 Fired for invalid data from players that represents hacking attempts
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 12e07ccc4..9ee2cd17d 100644
+index 2c29bc634..8c18f1413 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;
diff --git a/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch b/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch
index f10b9dec3a..1d525df688 100644
--- a/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch
+++ b/Spigot-Server-Patches/Implement-PlayerLocaleChangeEvent.patch
@@ -5,36 +5,47 @@ 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 01adb5807..6024b001f 100644
+index 6fdde5c07..33f34ed0e 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;
  public class EntityPlayer extends EntityHuman implements ICrafting {
  
      private static final Logger bV = LogManager.getLogger();
--    public String locale = "en_US"; // Spigot private -> public
-+    public String locale = null; // Spigot private -> public // Paper - default to null
+-    public String locale = "en_us"; // PAIL: private -> public
++    public String locale = null; // PAIL: private -> public // Paper - default to null
      public PlayerConnection playerConnection;
      public final MinecraftServer server;
      public final PlayerInteractManager playerInteractManager;
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+             PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(getBukkitEntity(), getMainHand() == EnumMainHand.LEFT ? MainHand.LEFT : MainHand.RIGHT);
              this.server.server.getPluginManager().callEvent(event);
          }
-         // CraftBukkit end
+-        if (!this.locale.equals(packetplayinsettings.a())) {
 +
 +        // Paper start - add PlayerLocaleChangeEvent
 +        // Since the field is initialized to null, this event should always fire the first time the packet is received
 +        String oldLocale = this.locale;
-         this.locale = packetplayinsettings.a();
++        this.locale = packetplayinsettings.a();
 +        if (!this.locale.equals(oldLocale)) {
 +            new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), oldLocale, this.locale).callEvent();
 +        }
++
++        // Compat with Bukkit
++        oldLocale = oldLocale != null ? oldLocale : "en_us";
 +        // Paper end
++
++        if (!oldLocale.equals(packetplayinsettings.a())) {
+             PlayerLocaleChangeEvent event = new PlayerLocaleChangeEvent(getBukkitEntity(), packetplayinsettings.a());
+             this.server.server.getPluginManager().callEvent(event);
+         }
+         // CraftBukkit end
+-        this.locale = packetplayinsettings.a();
          this.cl = packetplayinsettings.c();
          this.cm = packetplayinsettings.d();
          this.getDataWatcher().set(EntityPlayer.br, Byte.valueOf((byte) packetplayinsettings.e()));
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ca0fd5843..234becfd4 100644
+index 71034f945..171e0f7bb 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 {
@@ -44,7 +55,7 @@ index ca0fd5843..234becfd4 100644
 -           return getHandle().locale;
 +            // Paper start - Locale change event
 +            final String locale = getHandle().locale;
-+            return locale != null ? locale : "en_US";
++            return locale != null ? locale : "en_us";
          }
  
          @Override
diff --git a/Spigot-Server-Patches/Only-refresh-abilities-if-needed.patch b/Spigot-Server-Patches/Only-refresh-abilities-if-needed.patch
index eb7445a5db..e266f286bb 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 c5924a2be..94cca69a4 100644
+index 4f80d0443..b451be916 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/Optimise-removeQueue.patch b/Spigot-Server-Patches/Optimise-removeQueue.patch
index 14133d4031..8ab6c155ea 100644
--- a/Spigot-Server-Patches/Optimise-removeQueue.patch
+++ b/Spigot-Server-Patches/Optimise-removeQueue.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Optimise removeQueue
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 182513efd..3906d4bf7 100644
+index 04c36d36e..2ee3fb782 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ package net.minecraft.server;
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 8dc6d590e0..f905d47178 100644
--- a/Spigot-Server-Patches/Player-Tab-List-and-Title-APIs.patch
+++ b/Spigot-Server-Patches/Player-Tab-List-and-Title-APIs.patch
@@ -78,7 +78,7 @@ index 7bcafa8bb..4f6c1c2e7 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 21c729026..a7e011404 100644
+index 3c39751a0..fe40c51a4 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 99598a9ac1..aa8225898c 100644
--- a/Spigot-Server-Patches/Player-affects-spawning-API.patch
+++ b/Spigot-Server-Patches/Player-affects-spawning-API.patch
@@ -70,13 +70,16 @@ index 6b404e385..3d114cfea 100644
  
                  if (d3 < 0.0D || d4 < d3 * d3) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 06f33f80e..6f042b620 100644
+index d10177669..4f80d0443 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 {
-         return new CraftAdvancementProgress(craft, data, progress);
-     }
- 
+     @Override
+     public String getLocale() {
+         return getHandle().locale;
++
++    }
++
 +    public void setAffectsSpawning(boolean affects) {
 +        this.getHandle().affectsSpawning = affects;
 +    }
@@ -84,9 +87,7 @@ index 06f33f80e..6f042b620 100644
 +    @Override
 +    public boolean getAffectsSpawning() {
 +        return this.getHandle().affectsSpawning;
-+    }
-+
+     }
+ 
      // Spigot start
-     private final Player.Spigot spigot = new Player.Spigot()
-     {
 --
\ No newline at end of file
diff --git a/Spigot-Server-Patches/Properly-fix-item-duplication-bug.patch b/Spigot-Server-Patches/Properly-fix-item-duplication-bug.patch
index 2a07baa5b2..a4e635d653 100644
--- a/Spigot-Server-Patches/Properly-fix-item-duplication-bug.patch
+++ b/Spigot-Server-Patches/Properly-fix-item-duplication-bug.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Properly fix item duplication bug
 Credit to prplz for figuring out the real issue
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 3906d4bf7..0cd711c3e 100644
+index 2ee3fb782..93f0dfedf 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 {
@@ -19,7 +19,7 @@ index 3906d4bf7..0cd711c3e 100644
  
      public void reset() {
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 9ee2cd17d..32baff5e2 100644
+index 8c18f1413..41ad0cc2b 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, ITickable {
diff --git a/Spigot-Server-Patches/Re-track-players-that-dismount-from-other-players.patch b/Spigot-Server-Patches/Re-track-players-that-dismount-from-other-players.patch
index 35096dba03..c416469c0c 100644
--- a/Spigot-Server-Patches/Re-track-players-that-dismount-from-other-players.patch
+++ b/Spigot-Server-Patches/Re-track-players-that-dismount-from-other-players.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Re-track players that dismount from other players
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index f4a2e748d..2b01c5395 100644
+index 33f34ed0e..fff461e3c 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
diff --git a/Spigot-Server-Patches/Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/Spigot-Server-Patches/Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
index 2ff5b1eb08..b6be1847ca 100644
--- a/Spigot-Server-Patches/Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
+++ b/Spigot-Server-Patches/Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
@@ -54,7 +54,7 @@ index 30b6f3477..22cb680df 100644
  
                      Calendar deadline = Calendar.getInstance();
 -                    deadline.add(Calendar.DAY_OF_YEAR, -3);
-+                    deadline.add(Calendar.DAY_OF_YEAR, -14); // Paper - Bump back to 14
++                    deadline.add(Calendar.DAY_OF_YEAR, -14); // Paper - Bump back to 14, this is pre-release anyway
                      if (buildDate.before(deadline.getTime())) {
                          System.err.println("*** Error, this build is outdated ***");
 -                        System.err.println("*** Please download a new build as per instructions from https://www.spigotmc.org/ ***");
diff --git a/Spigot-Server-Patches/String-based-Action-Bar-API.patch b/Spigot-Server-Patches/String-based-Action-Bar-API.patch
index e6486b0ac4..b527ba8f64 100644
--- a/Spigot-Server-Patches/String-based-Action-Bar-API.patch
+++ b/Spigot-Server-Patches/String-based-Action-Bar-API.patch
@@ -62,7 +62,7 @@ index 1159eea1a..38359517c 100644
 +    }
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d1f70af51..d698d7c0d 100644
+index 171e0f7bb..8bc8e2077 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 c01a75aab0..bd99518ed5 100644
--- a/Spigot-Server-Patches/Timings-v2.patch
+++ b/Spigot-Server-Patches/Timings-v2.patch
@@ -1012,7 +1012,7 @@ index eeac34998..e4ed2e991 100644
  
      }
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 3bcabb195..7c4fe706a 100644
+index fb5eefc11..9eaa3a2ac 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;
@@ -1677,7 +1677,7 @@ index 3a95b4465..b5efb9c3f 100644
  
      public void callStage3(QueuedChunk queuedChunk, Chunk chunk, Runnable runnable) throws RuntimeException {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 39a6bc220..06f33f80e 100644
+index c019e5229..d10177669 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 @@ import org.bukkit.configuration.serialization.DelegateDeserialization;
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 d2045f0e47..6aca017d37 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 78aab5c63..00f9229f0 100644
+index cf210d43b..71034f945 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 c2e45d0d33..754ed0ab3d 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 2b20a0205..793353ac7 100644
+index 582eaa4ea..e0a793709 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 2b20a0205..793353ac7 100644
          }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5839801f5..78aab5c63 100644
+index ab164c11e..cf210d43b 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/work/Bukkit b/work/Bukkit
index cc40de8702..b673e15700 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit cc40de87027fc6668aa054dec8e8ac257aecf9d9
+Subproject commit b673e1570036bac636c01c11a8526867f23af45c
diff --git a/work/CraftBukkit b/work/CraftBukkit
index a479029a85..c037fe3d44 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit a479029a85221fa6ce31742aee1abbcc1f998289
+Subproject commit c037fe3d442702885d9c6bfa65621fb624210c02
diff --git a/work/Spigot b/work/Spigot
index 60095c9e3c..ea4525e683 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit 60095c9e3cb482a4933612f89197c1ec6b74641b
+Subproject commit ea4525e6830e7545c5315fc557a6fc6dcdf3f4ae