diff --git a/Spigot-Server-Patches/0187-Profile-Lookup-Events.patch b/Spigot-Server-Patches/0187-Profile-Lookup-Events.patch
index dc11686d69..f868307147 100644
--- a/Spigot-Server-Patches/0187-Profile-Lookup-Events.patch
+++ b/Spigot-Server-Patches/0187-Profile-Lookup-Events.patch
@@ -1,4 +1,4 @@
-From 6bdc6eb94a2982fc5b6c4629c5f3e933908817fe Mon Sep 17 00:00:00 2001
+From 3a6c7455737ff1a22df6a359d0a65c72b2c77c04 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 17 Jun 2017 17:00:32 -0400
 Subject: [PATCH] Profile Lookup Events
@@ -7,7 +7,7 @@ Adds a Pre Lookup Event and a Post Lookup Event so that plugins may prefill in p
 profiles that had to be looked up.
 
 diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
-index 3bcdb8f93f..bb9894318e 100644
+index 3bcdb8f93..bb9894318 100644
 --- a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
 +++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
 @@ -1,17 +1,68 @@
@@ -81,5 +81,5 @@ index 3bcdb8f93f..bb9894318e 100644
      }
  }
 -- 
-2.19.0
+2.19.1
 
diff --git a/Spigot-Server-Patches/0188-Block-player-logins-during-server-shutdown.patch b/Spigot-Server-Patches/0188-Block-player-logins-during-server-shutdown.patch
index 8b4fa8f191..c40c1eea9a 100644
--- a/Spigot-Server-Patches/0188-Block-player-logins-during-server-shutdown.patch
+++ b/Spigot-Server-Patches/0188-Block-player-logins-during-server-shutdown.patch
@@ -1,11 +1,11 @@
-From 9ccd366cdf434284ea3d6a8c12d0d0e6e8d60e2f Mon Sep 17 00:00:00 2001
+From 7961a44c32429c4b9ba1ca80f5dd68e3fb253db0 Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sun, 2 Jul 2017 21:35:56 -0500
 Subject: [PATCH] Block player logins during server shutdown
 
 
 diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
-index 19ac21e385..8bbea96240 100644
+index 19ac21e38..8bbea9624 100644
 --- a/src/main/java/net/minecraft/server/LoginListener.java
 +++ b/src/main/java/net/minecraft/server/LoginListener.java
 @@ -50,6 +50,12 @@ public class LoginListener implements PacketLoginInListener, ITickable {
@@ -22,5 +22,5 @@ index 19ac21e385..8bbea96240 100644
              this.b();
          } else if (this.g == LoginListener.EnumProtocolState.DELAY_ACCEPT) {
 -- 
-2.19.0
+2.19.1
 
diff --git a/Spigot-Server-Patches/0360-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch b/Spigot-Server-Patches/0360-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch
index 757ad6057f..b64af5201c 100644
--- a/Spigot-Server-Patches/0360-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch
+++ b/Spigot-Server-Patches/0360-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch
@@ -1,11 +1,11 @@
-From 7ac07ac07ac07ac07ac07ac07ac07ac07ac07ac0 Mon Sep 17 00:00:00 2001
+From 9007c1a310edb90546c5a3ff3c7bced3f4fd6f54 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 10 Sep 2018 23:56:36 -0400
 Subject: [PATCH] Prevent Mob AI Rules from Loading Chunks
 
 
 diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
-index 7ac07ac07ac0..7ac07ac07ac0 100644
+index 4e8eb137a..479a84a25 100644
 --- a/src/main/java/net/minecraft/server/Chunk.java
 +++ b/src/main/java/net/minecraft/server/Chunk.java
 @@ -481,6 +481,7 @@ public class Chunk implements IChunkAccess {
@@ -17,10 +17,10 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
          return this.b(blockposition.getX(), blockposition.getY(), blockposition.getZ());
      }
 diff --git a/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java b/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java
-index 7ac07ac07ac0..7ac07ac07ac0 100644
+index 9c72848f1..d007d0387 100644
 --- a/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java
 +++ b/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java
-@@ -7,11 +7,13 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget {
+@@ -12,11 +12,13 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget {
      private final Block f;
      private final EntityInsentient g;
      private int h;
@@ -34,7 +34,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
      }
  
      public boolean a() {
-@@ -89,13 +91,15 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget {
+@@ -99,7 +101,9 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget {
  
      @Nullable
      private BlockPosition a(BlockPosition blockposition, IBlockAccess iblockaccess) {
@@ -44,26 +44,28 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
 +        if (block == this.f) { // Paper
              return blockposition;
          } else {
-             BlockPosition[] ablockposition = new BlockPosition[]{blockposition.down(), blockposition.west(), blockposition.east(), blockposition.north(), blockposition.south(), blockposition.down().down()};
+             BlockPosition[] ablockposition = new BlockPosition[] { blockposition.down(), blockposition.west(), blockposition.east(), blockposition.north(), blockposition.south(), blockposition.down().down()};
+@@ -109,7 +113,7 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget {
+             for (int j = 0; j < i; ++j) {
+                 BlockPosition blockposition1 = ablockposition1[j];
  
-             for(BlockPosition blockposition1 : ablockposition) {
 -                if (iblockaccess.getType(blockposition1).getBlock() == this.f) {
 +                if (world.getBlockIfLoaded(blockposition1) == this.f) { // Paper
                      return blockposition1;
                  }
              }
-@@ -105,7 +109,8 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget {
+@@ -119,7 +123,8 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget {
      }
  
      protected boolean a(IWorldReader iworldreader, BlockPosition blockposition) {
 -        Block block = iworldreader.getType(blockposition).getBlock();
 +        Block block = world.getBlockIfLoaded(blockposition); // Paper
 +        if (block == null) return false; // Paper
+ 
          return block == this.f && iworldreader.getType(blockposition.up()).isAir() && iworldreader.getType(blockposition.up(2)).isAir();
      }
- }
 diff --git a/src/main/java/net/minecraft/server/RandomPositionGenerator.java b/src/main/java/net/minecraft/server/RandomPositionGenerator.java
-index 7ac07ac07ac0..7ac07ac07ac0 100644
+index 800e0046a..bfa6c2eef 100644
 --- a/src/main/java/net/minecraft/server/RandomPositionGenerator.java
 +++ b/src/main/java/net/minecraft/server/RandomPositionGenerator.java
 @@ -78,6 +78,7 @@ public class RandomPositionGenerator {
@@ -84,7 +86,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
      }
  }
 diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index 7ac07ac07ac0..7ac07ac07ac0 100644
+index a5c655155..016d50d3c 100644
 --- a/src/main/java/net/minecraft/server/World.java
 +++ b/src/main/java/net/minecraft/server/World.java
 @@ -763,6 +763,18 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
diff --git a/work/CraftBukkit b/work/CraftBukkit
index 3a9118280c..17ff1e0467 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit 3a9118280cba89f5bf5b14f1709993f6df609f5d
+Subproject commit 17ff1e04679d5826f7d574fecc1a97820d5579d1