diff --git a/Spigot-API-Patches/0056-Shoulder-Entities-Release-API.patch b/Spigot-API-Patches/0056-Shoulder-Entities-Release-API.patch
index a873817a51..df212c31b3 100644
--- a/Spigot-API-Patches/0056-Shoulder-Entities-Release-API.patch
+++ b/Spigot-API-Patches/0056-Shoulder-Entities-Release-API.patch
@@ -1,14 +1,14 @@
-From cde8228c35b12307dc50eb03eb3550aa2f41c485 Mon Sep 17 00:00:00 2001
+From 4fc8923239da47d511fbb1e243105c0144a99bee Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 17 Jun 2017 15:04:51 -0400
 Subject: [PATCH] Shoulder Entities Release API
 
 
 diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index 518aa2a9..3939d4af 100644
+index 144e432cd..d137d6bf2 100644
 --- a/src/main/java/org/bukkit/entity/HumanEntity.java
 +++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -256,6 +256,24 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible, Inv
+@@ -258,6 +258,24 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible, Inv
       */
      public int getExpToLevel();
  
@@ -31,8 +31,8 @@ index 518aa2a9..3939d4af 100644
 +    // Paper end
 +
      /**
-      * Gets the entity currently perched on the left shoulder or null if no
-      * entity.
+      * Discover a recipe for this player such that it has not already been
+      * discovered. This method will add the key's associated recipe to the
 -- 
-2.18.0
+2.19.0
 
diff --git a/Spigot-API-Patches/0090-Add-method-to-open-already-placed-sign.patch b/Spigot-API-Patches/0090-Add-method-to-open-already-placed-sign.patch
index a98088897d..31f909c4f6 100644
--- a/Spigot-API-Patches/0090-Add-method-to-open-already-placed-sign.patch
+++ b/Spigot-API-Patches/0090-Add-method-to-open-already-placed-sign.patch
@@ -1,14 +1,14 @@
-From b8fbba03fc7abd8c77f063e41fc16537c4117102 Mon Sep 17 00:00:00 2001
+From bb4320c8362db25900dd40bdcbe30d2d2b9500f0 Mon Sep 17 00:00:00 2001
 From: Mark Vainomaa <mikroskeem@mikroskeem.eu>
 Date: Sun, 1 Apr 2018 02:28:43 +0300
 Subject: [PATCH] Add method to open already placed sign
 
 
 diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index 3939d4af..dd95773e 100644
+index d137d6bf2..3590149a8 100644
 --- a/src/main/java/org/bukkit/entity/HumanEntity.java
 +++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -335,4 +335,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible, Inv
+@@ -388,4 +388,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible, Inv
       */
      @Deprecated
      public void setShoulderEntityRight(Entity entity);
@@ -23,5 +23,5 @@ index 3939d4af..dd95773e 100644
 +    // Paper end
  }
 -- 
-2.18.0
+2.19.0
 
diff --git a/Spigot-API-Patches/0118-InventoryCloseEvent-Reason-API.patch b/Spigot-API-Patches/0118-InventoryCloseEvent-Reason-API.patch
index e19344eb50..828226da08 100644
--- a/Spigot-API-Patches/0118-InventoryCloseEvent-Reason-API.patch
+++ b/Spigot-API-Patches/0118-InventoryCloseEvent-Reason-API.patch
@@ -1,4 +1,4 @@
-From 620b05a03d9f8250536ca98235324946057337f5 Mon Sep 17 00:00:00 2001
+From c0fe423e87026d3311fa8cfb5cd1e07e97c420b3 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 3 Jul 2018 21:52:52 -0400
 Subject: [PATCH] InventoryCloseEvent Reason API
@@ -7,10 +7,10 @@ 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/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index dd95773e2..8fe01e47e 100644
+index 3590149a8..972c8f970 100644
 --- a/src/main/java/org/bukkit/entity/HumanEntity.java
 +++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -137,6 +137,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible, Inv
+@@ -139,6 +139,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible, Inv
       */
      public void closeInventory();
  
@@ -90,5 +90,5 @@ index 19889b278..e6e45b936 100644
  
      /**
 -- 
-2.18.0
+2.19.0
 
diff --git a/Spigot-Server-Patches/0141-Add-EntityZapEvent.patch b/Spigot-Server-Patches/0141-Add-EntityZapEvent.patch
index 3133006de4..6f91b1417a 100644
--- a/Spigot-Server-Patches/0141-Add-EntityZapEvent.patch
+++ b/Spigot-Server-Patches/0141-Add-EntityZapEvent.patch
@@ -1,4 +1,4 @@
-From 8ffd839379c77e9ce9e3a0cf3de9e3e4d27286b7 Mon Sep 17 00:00:00 2001
+From 0dde45ee1d5f2f012c9425ab82f3e27321d1b239 Mon Sep 17 00:00:00 2001
 From: AlphaBlend <whizkid3000@hotmail.com>
 Date: Sun, 16 Oct 2016 23:19:30 -0700
 Subject: [PATCH] Add EntityZapEvent
@@ -48,10 +48,10 @@ index 32e327e42c..5aebdba56c 100644
          }
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 58b64a6712..9a8bf6e74b 100644
+index 3da2679721..1f9713a411 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -711,6 +711,14 @@ public class CraftEventFactory {
+@@ -712,6 +712,14 @@ public class CraftEventFactory {
          return event;
      }
  
diff --git a/Spigot-Server-Patches/0149-Add-source-to-PlayerExpChangeEvent.patch b/Spigot-Server-Patches/0149-Add-source-to-PlayerExpChangeEvent.patch
index c13c726faf..4f174e6d86 100644
--- a/Spigot-Server-Patches/0149-Add-source-to-PlayerExpChangeEvent.patch
+++ b/Spigot-Server-Patches/0149-Add-source-to-PlayerExpChangeEvent.patch
@@ -1,4 +1,4 @@
-From 182507a498555d7d1c141a3c354108234e6f0630 Mon Sep 17 00:00:00 2001
+From ff061dc089b08b5521b4bb43b6ee8a06df1776d6 Mon Sep 17 00:00:00 2001
 From: AlphaBlend <whizkid3000@hotmail.com>
 Date: Thu, 8 Sep 2016 08:48:33 -0700
 Subject: [PATCH] Add source to PlayerExpChangeEvent
@@ -18,10 +18,10 @@ index 33b24c833b..880f496526 100644
  
                  this.die();
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 9a8bf6e74b..07f47977f9 100644
+index 1f9713a411..3c138d6a29 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -49,6 +49,7 @@ import org.bukkit.entity.Player;
+@@ -50,6 +50,7 @@ import org.bukkit.entity.Player;
  import org.bukkit.entity.Projectile;
  import org.bukkit.entity.ThrownExpBottle;
  import org.bukkit.entity.ThrownPotion;
@@ -29,7 +29,7 @@ index 9a8bf6e74b..07f47977f9 100644
  import org.bukkit.event.Cancellable;
  import org.bukkit.event.Event;
  import org.bukkit.event.block.*;
-@@ -680,6 +681,17 @@ public class CraftEventFactory {
+@@ -681,6 +682,17 @@ public class CraftEventFactory {
          return event;
      }
  
diff --git a/Spigot-Server-Patches/0152-Add-ProjectileCollideEvent.patch b/Spigot-Server-Patches/0152-Add-ProjectileCollideEvent.patch
index 342e079c5a..15d7cf1370 100644
--- a/Spigot-Server-Patches/0152-Add-ProjectileCollideEvent.patch
+++ b/Spigot-Server-Patches/0152-Add-ProjectileCollideEvent.patch
@@ -1,4 +1,4 @@
-From 9647c3032c5545e880b649a8dcc376f257a426a8 Mon Sep 17 00:00:00 2001
+From 4898bbb7ec6fa70c31d0e00885417fc75fc10ddd Mon Sep 17 00:00:00 2001
 From: Techcable <Techcable@outlook.com>
 Date: Fri, 16 Dec 2016 21:25:39 -0600
 Subject: [PATCH] Add ProjectileCollideEvent
@@ -87,10 +87,10 @@ index ee402d4140..fc8c0cab55 100644
              if (movingobjectposition.type == MovingObjectPosition.EnumMovingObjectType.BLOCK && this.world.getType(movingobjectposition.a()).getBlock() == Blocks.NETHER_PORTAL) {
                  this.e(movingobjectposition.a());
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 07f47977f9..307b59a27d 100644
+index 3c138d6a29..57dc17845a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -815,6 +815,16 @@ public class CraftEventFactory {
+@@ -816,6 +816,16 @@ public class CraftEventFactory {
          return CraftItemStack.asNMSCopy(bitem);
      }
  
diff --git a/Spigot-Server-Patches/0187-Shoulder-Entities-Release-API.patch b/Spigot-Server-Patches/0187-Shoulder-Entities-Release-API.patch
index 93c4a7e692..2827044807 100644
--- a/Spigot-Server-Patches/0187-Shoulder-Entities-Release-API.patch
+++ b/Spigot-Server-Patches/0187-Shoulder-Entities-Release-API.patch
@@ -1,4 +1,4 @@
-From f174800be64d181520936fe4f2413764f698a1a1 Mon Sep 17 00:00:00 2001
+From cbbed5356c380a5ead3ccc168dc13d08d0953052 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 17 Jun 2017 15:18:30 -0400
 Subject: [PATCH] Shoulder Entities Release API
@@ -62,10 +62,10 @@ index 0f00eecead..504c9ad473 100644
      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 289e267bdd..38a886fbd5 100644
+index 497783d4f3..99705b1344 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -455,6 +455,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -460,6 +460,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
          getHandle().getCooldownTracker().a(CraftMagicNumbers.getItem(material), ticks);
      }
  
@@ -96,8 +96,8 @@ index 289e267bdd..38a886fbd5 100644
 +    // Paper end
 +
      @Override
-     public org.bukkit.entity.Entity getShoulderEntityLeft() {
-         if (!getHandle().getShoulderEntityLeft().isEmpty()) {
+     public boolean discoverRecipe(NamespacedKey recipe) {
+         return discoverRecipes(Arrays.asList(recipe)) != 0;
 -- 
 2.19.0
 
diff --git a/Spigot-Server-Patches/0250-Add-method-to-open-already-placed-sign.patch b/Spigot-Server-Patches/0250-Add-method-to-open-already-placed-sign.patch
index 6949a9015b..fa169ae44c 100644
--- a/Spigot-Server-Patches/0250-Add-method-to-open-already-placed-sign.patch
+++ b/Spigot-Server-Patches/0250-Add-method-to-open-already-placed-sign.patch
@@ -1,14 +1,14 @@
-From 26f0befa44982506a8089658de7c06d69afdc342 Mon Sep 17 00:00:00 2001
+From 7814c18d81fd97bc562371ba48bf5bff1be6dadb Mon Sep 17 00:00:00 2001
 From: Mark Vainomaa <mikroskeem@mikroskeem.eu>
 Date: Sun, 1 Apr 2018 02:29:37 +0300
 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 38a886fbd5..92fe80316f 100644
+index 99705b1344..32fcba1d1a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -518,4 +518,17 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -559,4 +559,17 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
              entity.remove();
          }
      }
diff --git a/Spigot-Server-Patches/0272-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch b/Spigot-Server-Patches/0272-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
index f64d4c7993..b9cec50a6b 100644
--- a/Spigot-Server-Patches/0272-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
+++ b/Spigot-Server-Patches/0272-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
@@ -1,4 +1,4 @@
-From 67fc38f3cdd7827e2bca2f4651cb41f7c35bdb2a Mon Sep 17 00:00:00 2001
+From 4d6c05dc231007713d6a6b489537eb3951ed701a Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 16 Jun 2018 16:23:38 -0400
 Subject: [PATCH] Ignore Missing Recipes in RecipeBook to avoid data errors
@@ -6,29 +6,29 @@ Subject: [PATCH] Ignore Missing Recipes in RecipeBook to avoid data errors
 This code was causing NPE's in saving player data, potentially related to reloads.
 
 diff --git a/src/main/java/net/minecraft/server/RecipeBookServer.java b/src/main/java/net/minecraft/server/RecipeBookServer.java
-index b0c726be19..34e34b7855 100644
+index dc9dfada2f..6d4d56dd0d 100644
 --- a/src/main/java/net/minecraft/server/RecipeBookServer.java
 +++ b/src/main/java/net/minecraft/server/RecipeBookServer.java
-@@ -65,6 +65,10 @@ public class RecipeBookServer extends RecipeBook {
-         NBTTagList nbttaglist = new NBTTagList();
+@@ -78,6 +78,10 @@ public class RecipeBookServer extends RecipeBook {
+         while (iterator.hasNext()) {
+             MinecraftKey minecraftkey = (MinecraftKey) iterator.next();
  
-         for(MinecraftKey minecraftkey : this.a) {
 +            // Paper start - ignore missing recipes
 +            IRecipe recipe = this.h.a(minecraftkey);
 +            if (recipe == null) continue;
 +            // Paper end
-             nbttaglist.add((NBTBase)(new NBTTagString(minecraftkey.toString())));
+             nbttaglist.add((NBTBase) (new NBTTagString(minecraftkey.toString())));
          }
  
-@@ -72,6 +76,10 @@ public class RecipeBookServer extends RecipeBook {
-         NBTTagList nbttaglist1 = new NBTTagList();
+@@ -88,6 +92,10 @@ public class RecipeBookServer extends RecipeBook {
+         while (iterator1.hasNext()) {
+             MinecraftKey minecraftkey1 = (MinecraftKey) iterator1.next();
  
-         for(MinecraftKey minecraftkey1 : this.b) {
 +            // Paper start - ignore missing recipes
 +            IRecipe recipe = this.h.a(minecraftkey1);
 +            if (recipe == null) continue;
 +            // Paper end
-             nbttaglist1.add((NBTBase)(new NBTTagString(minecraftkey1.toString())));
+             nbttaglist1.add((NBTBase) (new NBTTagString(minecraftkey1.toString())));
          }
  
 -- 
diff --git a/Spigot-Server-Patches/0273-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch b/Spigot-Server-Patches/0273-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
index 6a6c228d6a..7b57889a2b 100644
--- a/Spigot-Server-Patches/0273-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
+++ b/Spigot-Server-Patches/0273-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
@@ -1,4 +1,4 @@
-From 629fa443244a41e1a71c7dcda35984b9d751fade Mon Sep 17 00:00:00 2001
+From 8cd10426fab3bc25487bc3037915689a51b5442d Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 15 Jun 2013 19:51:17 -0400
 Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API
@@ -58,10 +58,10 @@ index b0f7649b82..152b179ce1 100644
                          if (itemstack1.isEmpty()) {
                              entityhuman.inventory.f(itemstack1);
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 307b59a27d..8295a4c7ae 100644
+index 57dc17845a..3c927fcb23 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -245,7 +245,7 @@ public class CraftEventFactory {
+@@ -246,7 +246,7 @@ public class CraftEventFactory {
      /**
       * EntityShootBowEvent
       */
@@ -70,7 +70,7 @@ index 307b59a27d..8295a4c7ae 100644
          LivingEntity shooter = (LivingEntity) who.getBukkitEntity();
          CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack);
          Arrow arrow = (Arrow) entityArrow.getBukkitEntity();
-@@ -254,7 +254,7 @@ public class CraftEventFactory {
+@@ -255,7 +255,7 @@ public class CraftEventFactory {
              itemInHand = null;
          }
  
diff --git a/Spigot-Server-Patches/0280-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch b/Spigot-Server-Patches/0280-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch
index 4e8c1b3a47..892ab31ac6 100644
--- a/Spigot-Server-Patches/0280-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch
+++ b/Spigot-Server-Patches/0280-Improve-ProjectileHitEvent-to-include-the-BlockFace-.patch
@@ -1,4 +1,4 @@
-From ca3afa9578f4a8347e8e30b85b11e9b426518f43 Mon Sep 17 00:00:00 2001
+From 01c84b8c0d7b136d8e21c4e6d22f17be35ae32f2 Mon Sep 17 00:00:00 2001
 From: Brokkonaut <hannos17@gmx.de>
 Date: Sat, 30 Jun 2018 05:45:39 +0200
 Subject: [PATCH] Improve ProjectileHitEvent to include the BlockFace where the
@@ -6,10 +6,10 @@ Subject: [PATCH] Improve ProjectileHitEvent to include the BlockFace where the
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 8295a4c7ae..29d8773f2e 100644
+index 3c927fcb23..66b1293bf9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -839,7 +839,7 @@ public class CraftEventFactory {
+@@ -840,7 +840,7 @@ public class CraftEventFactory {
              hitBlock = entity.getBukkitEntity().getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
          }
  
diff --git a/Spigot-Server-Patches/0283-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0283-InventoryCloseEvent-Reason-API.patch
index 72e7f58888..e8b8fbfead 100644
--- a/Spigot-Server-Patches/0283-InventoryCloseEvent-Reason-API.patch
+++ b/Spigot-Server-Patches/0283-InventoryCloseEvent-Reason-API.patch
@@ -1,4 +1,4 @@
-From fffc012afaa17f04b29429309aa29e414622dfd8 Mon Sep 17 00:00:00 2001
+From fb342cc682441b0d700c9597ae40214507b35e87 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 3 Jul 2018 21:56:23 -0400
 Subject: [PATCH] InventoryCloseEvent Reason API
@@ -136,10 +136,10 @@ index 304cae655d..6d511b6230 100644
          PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game");
          cserver.getPluginManager().callEvent(playerQuitEvent);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 92fe80316f..70a4dbe26b 100644
+index 32fcba1d1a..3c23d40b1d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -412,8 +412,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -417,8 +417,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
      }
  
      public void closeInventory() {
@@ -168,10 +168,10 @@ index 898371e5f4..912b2e6284 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 29d8773f2e..ea787a523c 100644
+index 66b1293bf9..f04fb045eb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -929,8 +929,19 @@ public class CraftEventFactory {
+@@ -930,8 +930,19 @@ public class CraftEventFactory {
          return event;
      }
  
diff --git a/Spigot-Server-Patches/0303-Vanished-players-don-t-have-rights.patch b/Spigot-Server-Patches/0303-Vanished-players-don-t-have-rights.patch
index 70adaf4d4f..72dfb2f93a 100644
--- a/Spigot-Server-Patches/0303-Vanished-players-don-t-have-rights.patch
+++ b/Spigot-Server-Patches/0303-Vanished-players-don-t-have-rights.patch
@@ -1,4 +1,4 @@
-From c771459635b4e7ffcd54006e8bd6aab894fb3206 Mon Sep 17 00:00:00 2001
+From b404da6cf659ee9f19cfc47d6325b06e6ee11a1c Mon Sep 17 00:00:00 2001
 From: Hugo Manrique <hugmanrique@gmail.com>
 Date: Mon, 23 Jul 2018 14:22:26 +0200
 Subject: [PATCH] Vanished players don't have rights
@@ -106,10 +106,10 @@ index 6605449a8b..81777fce64 100644
          if (voxelshape.b()) {
              return true;
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index ea787a523c..77c6c0ec16 100644
+index f04fb045eb..9bef0e5bb7 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -820,6 +820,14 @@ public class CraftEventFactory {
+@@ -821,6 +821,14 @@ public class CraftEventFactory {
          Projectile projectile = (Projectile) entity.getBukkitEntity();
          org.bukkit.entity.Entity collided = position.entity.getBukkitEntity();
          com.destroystokyo.paper.event.entity.ProjectileCollideEvent event = new com.destroystokyo.paper.event.entity.ProjectileCollideEvent(projectile, collided);
diff --git a/Spigot-Server-Patches/0321-Add-hand-to-bucket-events.patch b/Spigot-Server-Patches/0321-Add-hand-to-bucket-events.patch
index 15f8286821..fc5f668a8d 100644
--- a/Spigot-Server-Patches/0321-Add-hand-to-bucket-events.patch
+++ b/Spigot-Server-Patches/0321-Add-hand-to-bucket-events.patch
@@ -1,4 +1,4 @@
-From 601c85f158329ba06bd564052de4d67350453015 Mon Sep 17 00:00:00 2001
+From d1fc4500d42f41872e2d196af60e552f7f253dc2 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Thu, 2 Aug 2018 08:44:35 -0500
 Subject: [PATCH] Add hand to bucket events
@@ -67,10 +67,10 @@ index b63da71512..b0dd30dd12 100644
                          ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, blockposition)); // SPIGOT-4238: needed when looking through entity
                          // TODO: inventory not updated
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 77c6c0ec16..a553c20657 100644
+index 9bef0e5bb7..6c05dd9051 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -169,6 +169,20 @@ public class CraftEventFactory {
+@@ -170,6 +170,20 @@ public class CraftEventFactory {
      }
  
      private static PlayerEvent getPlayerBucketEvent(boolean isFilling, EntityHuman who, int clickedX, int clickedY, int clickedZ, EnumDirection clickedFace, ItemStack itemstack, net.minecraft.server.Item item) {
@@ -91,7 +91,7 @@ index 77c6c0ec16..a553c20657 100644
          Player player = (who == null) ? null : (Player) who.getBukkitEntity();
          CraftItemStack itemInHand = CraftItemStack.asNewCraftStack(item);
          Material bucket = CraftMagicNumbers.getMaterial(itemstack.getItem());
-@@ -181,10 +195,10 @@ public class CraftEventFactory {
+@@ -182,10 +196,10 @@ public class CraftEventFactory {
  
          PlayerEvent event = null;
          if (isFilling) {
diff --git a/Spigot-Server-Patches/0359-Improve-death-events.patch b/Spigot-Server-Patches/0359-Improve-death-events.patch
index 1c3135edb7..88258992b8 100644
--- a/Spigot-Server-Patches/0359-Improve-death-events.patch
+++ b/Spigot-Server-Patches/0359-Improve-death-events.patch
@@ -1,4 +1,4 @@
-From d245361a96aedce40893a891bf4794177f4deb1a Mon Sep 17 00:00:00 2001
+From ee6f1646f7ab60641b44bdf7cb1381ca65f509a1 Mon Sep 17 00:00:00 2001
 From: Phoenix616 <mail@moep.tv>
 Date: Tue, 21 Aug 2018 01:39:35 +0100
 Subject: [PATCH] Improve death events
@@ -306,10 +306,10 @@ index 2f9cff6e71..ac7fc0ef3e 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 a553c20657..12e2c0f6e1 100644
+index 6c05dd9051..9e903159d9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -426,9 +426,16 @@ public class CraftEventFactory {
+@@ -427,9 +427,16 @@ public class CraftEventFactory {
      public static EntityDeathEvent callEntityDeathEvent(EntityLiving victim, List<org.bukkit.inventory.ItemStack> drops) {
          CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity();
          EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward());
@@ -326,7 +326,7 @@ index a553c20657..12e2c0f6e1 100644
          victim.expToDrop = event.getDroppedExp();
  
          for (org.bukkit.inventory.ItemStack stack : event.getDrops()) {
-@@ -444,8 +451,15 @@ public class CraftEventFactory {
+@@ -445,8 +452,15 @@ public class CraftEventFactory {
          CraftPlayer entity = victim.getBukkitEntity();
          PlayerDeathEvent event = new PlayerDeathEvent(entity, drops, victim.getExpReward(), 0, deathMessage);
          event.setKeepInventory(keepInventory);
@@ -342,7 +342,7 @@ index a553c20657..12e2c0f6e1 100644
  
          victim.keepLevel = event.getKeepLevel();
          victim.newLevel = event.getNewLevel();
-@@ -466,6 +480,31 @@ public class CraftEventFactory {
+@@ -467,6 +481,31 @@ public class CraftEventFactory {
          return event;
      }
  
diff --git a/Spigot-Server-Patches/0377-Async-Chunk-Loading-and-Generation.patch b/Spigot-Server-Patches/0377-Async-Chunk-Loading-and-Generation.patch
index 06ded3e046..9db05ed2b2 100644
--- a/Spigot-Server-Patches/0377-Async-Chunk-Loading-and-Generation.patch
+++ b/Spigot-Server-Patches/0377-Async-Chunk-Loading-and-Generation.patch
@@ -1,4 +1,4 @@
-From 8a454e3fcde0690de840976757e8c22cb5974e73 Mon Sep 17 00:00:00 2001
+From 446a8037bfb38116cc712bf89d52dde7cd5aff68 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 21 Jul 2018 16:55:04 -0400
 Subject: [PATCH] Async Chunk Loading and Generation
@@ -1801,10 +1801,10 @@ index d0110070a9..02b6bf2990 100644
                      if (isChunkLoaded(chunkCoordX + x, chunkCoordZ + z)) {
                          unloadChunk(chunkCoordX + x, chunkCoordZ + z);
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 12e2c0f6e1..cd6138855e 100644
+index 9e903159d9..4ead18b66c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -77,6 +77,7 @@ public class CraftEventFactory {
+@@ -78,6 +78,7 @@ public class CraftEventFactory {
      public static final DamageSource POISON = CraftDamageSource.copyOf(DamageSource.MAGIC);
      public static org.bukkit.block.Block blockDamage; // For use in EntityDamageByBlockEvent
      public static Entity entityDamage; // For use in EntityDamageByEntityEvent
@@ -1812,7 +1812,7 @@ index 12e2c0f6e1..cd6138855e 100644
  
      // helper methods
      private static boolean canBuild(CraftWorld world, Player player, int x, int z) {
-@@ -300,6 +301,7 @@ public class CraftEventFactory {
+@@ -301,6 +302,7 @@ public class CraftEventFactory {
          CraftServer craftServer = (CraftServer) entity.getServer();
  
          CreatureSpawnEvent event = new CreatureSpawnEvent(entity, spawnReason);
@@ -1820,7 +1820,7 @@ index 12e2c0f6e1..cd6138855e 100644
          craftServer.getPluginManager().callEvent(event);
          return event;
      }
-@@ -947,6 +949,7 @@ public class CraftEventFactory {
+@@ -948,6 +950,7 @@ public class CraftEventFactory {
          }
  
          BlockIgniteEvent event = new BlockIgniteEvent(bukkitWorld.getBlockAt(block.getX(), block.getY(), block.getZ()), cause, igniter);
@@ -1828,7 +1828,7 @@ index 12e2c0f6e1..cd6138855e 100644
          world.getServer().getPluginManager().callEvent(event);
          return event;
      }
-@@ -971,6 +974,7 @@ public class CraftEventFactory {
+@@ -972,6 +975,7 @@ public class CraftEventFactory {
          }
  
          BlockIgniteEvent event = new BlockIgniteEvent(bukkitWorld.getBlockAt(pos.getX(), pos.getY(), pos.getZ()), cause, bukkitIgniter);
@@ -1836,7 +1836,7 @@ index 12e2c0f6e1..cd6138855e 100644
          world.getServer().getPluginManager().callEvent(event);
          return event;
      }
-@@ -1178,7 +1182,8 @@ public class CraftEventFactory {
+@@ -1179,7 +1183,8 @@ public class CraftEventFactory {
      public static BlockPhysicsEvent callBlockPhysicsEvent(GeneratorAccess world, BlockPosition blockposition) {
          org.bukkit.block.Block block = CraftBlock.at(world, blockposition);
          BlockPhysicsEvent event = new BlockPhysicsEvent(block, block.getBlockData());
@@ -1846,7 +1846,7 @@ index 12e2c0f6e1..cd6138855e 100644
          return event;
      }
  
-@@ -1214,6 +1219,7 @@ public class CraftEventFactory {
+@@ -1215,6 +1220,7 @@ public class CraftEventFactory {
          }
  
          EntityPotionEffectEvent event = new EntityPotionEffectEvent((LivingEntity) entity.getBukkitEntity(), bukkitOldEffect, bukkitNewEffect, cause, action, willOverride);
@@ -1854,7 +1854,7 @@ index 12e2c0f6e1..cd6138855e 100644
          Bukkit.getPluginManager().callEvent(event);
  
          return event;
-@@ -1232,6 +1238,7 @@ public class CraftEventFactory {
+@@ -1233,6 +1239,7 @@ public class CraftEventFactory {
          blockState.setData(block);
  
          BlockFormEvent event = (entity == null) ? new BlockFormEvent(blockState.getBlock(), blockState) : new EntityBlockFormEvent(entity.getBukkitEntity(), blockState.getBlock(), blockState);
diff --git a/work/Bukkit b/work/Bukkit
index e64f4eb110..c71bb9ca98 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit e64f4eb1109decfdf6695394d472b5818f814ae4
+Subproject commit c71bb9ca986e836fffbd6f118145156e84426e10
diff --git a/work/CraftBukkit b/work/CraftBukkit
index 1cf8b5dc1b..7a2f486768 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit 1cf8b5dc1b55459f9a470860f820310294b48787
+Subproject commit 7a2f486768afeb6a54c39b19079e9f31f3adad1a