diff --git a/Spigot-Server-Patches/0100-LootTable-API-Replenishable-Lootables-Feature.patch b/Spigot-Server-Patches/0098-LootTable-API-Replenishable-Lootables-Feature.patch
similarity index 98%
rename from Spigot-Server-Patches/0100-LootTable-API-Replenishable-Lootables-Feature.patch
rename to Spigot-Server-Patches/0098-LootTable-API-Replenishable-Lootables-Feature.patch
index 8e328af13..f76b7df5e 100644
--- a/Spigot-Server-Patches/0100-LootTable-API-Replenishable-Lootables-Feature.patch
+++ b/Spigot-Server-Patches/0098-LootTable-API-Replenishable-Lootables-Feature.patch
@@ -1,4 +1,4 @@
-From 35f24483bdf3ab1260b36b66e51f4836bb0c33a0 Mon Sep 17 00:00:00 2001
+From acc3c97129aadff8f9139c652a9da0e165979f8b Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 1 May 2016 21:19:14 -0400
 Subject: [PATCH] LootTable API & Replenishable Lootables Feature
@@ -11,7 +11,7 @@ This feature is good for long term worlds so that newer players
 do not suffer with "Every chest has been looted"
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index bea878970..934097163 100644
+index d00e8155d..277f7618e 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -265,4 +265,26 @@ public class PaperWorldConfig {
@@ -520,19 +520,19 @@ index 000000000..d50410532
 +    }
 +}
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 36bfee227..4793bc7d8 100644
+index 167d22574..2e56c7f57 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
-@@ -72,6 +72,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
-         return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
-     }
+@@ -73,6 +73,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+     };
+     // Paper end
  
 +    public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper
      private CraftEntity bukkitEntity;
  
      public CraftEntity getBukkitEntity() {
 diff --git a/src/main/java/net/minecraft/server/EntityMinecartContainer.java b/src/main/java/net/minecraft/server/EntityMinecartContainer.java
-index 676d67dc3..8e6e7ed60 100644
+index 72d0c53cd..fd8e8ae20 100644
 --- a/src/main/java/net/minecraft/server/EntityMinecartContainer.java
 +++ b/src/main/java/net/minecraft/server/EntityMinecartContainer.java
 @@ -15,10 +15,11 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp
@@ -591,7 +591,7 @@ index 676d67dc3..8e6e7ed60 100644
  
              if (entityhuman != null) {
 diff --git a/src/main/java/net/minecraft/server/TileEntityLootable.java b/src/main/java/net/minecraft/server/TileEntityLootable.java
-index 56c7f9b4e..a12d49fc4 100644
+index 8f776e0df..04a6511ff 100644
 --- a/src/main/java/net/minecraft/server/TileEntityLootable.java
 +++ b/src/main/java/net/minecraft/server/TileEntityLootable.java
 @@ -6,8 +6,9 @@ import javax.annotation.Nullable;
@@ -756,5 +756,5 @@ index 334bd5bb3..f5b31237f 100644
  
      public CraftMinecartHopper(CraftServer server, EntityMinecartHopper entity) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0101-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch b/Spigot-Server-Patches/0099-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch
similarity index 91%
rename from Spigot-Server-Patches/0101-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch
rename to Spigot-Server-Patches/0099-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch
index 99a4628bd..1e7864fc0 100644
--- a/Spigot-Server-Patches/0101-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch
+++ b/Spigot-Server-Patches/0099-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch
@@ -1,11 +1,11 @@
-From 67287a0553617ecd063e0328812389e8741a5ca4 Mon Sep 17 00:00:00 2001
+From c4233c4dd155a34c72f37ecdc80a2cebdd537d8e Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 7 May 2016 23:33:08 -0400
 Subject: [PATCH] Don't save empty scoreboard teams to scoreboard.dat
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index dc3438890..cbfe12734 100644
+index e4f0db64c..67f35fe66 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -228,4 +228,9 @@ public class PaperConfig {
@@ -19,7 +19,7 @@ index dc3438890..cbfe12734 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/PersistentScoreboard.java b/src/main/java/net/minecraft/server/PersistentScoreboard.java
-index fab5962e2..de7ac6c20 100644
+index 1eab0c310..6bf66972f 100644
 --- a/src/main/java/net/minecraft/server/PersistentScoreboard.java
 +++ b/src/main/java/net/minecraft/server/PersistentScoreboard.java
 @@ -174,6 +174,7 @@ public class PersistentScoreboard extends PersistentBase {
@@ -31,5 +31,5 @@ index fab5962e2..de7ac6c20 100644
  
              nbttagcompound.setString("Name", scoreboardteam.getName());
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0102-System-property-for-disabling-watchdoge.patch b/Spigot-Server-Patches/0100-System-property-for-disabling-watchdoge.patch
similarity index 92%
rename from Spigot-Server-Patches/0102-System-property-for-disabling-watchdoge.patch
rename to Spigot-Server-Patches/0100-System-property-for-disabling-watchdoge.patch
index 50a994456..22ecd79aa 100644
--- a/Spigot-Server-Patches/0102-System-property-for-disabling-watchdoge.patch
+++ b/Spigot-Server-Patches/0100-System-property-for-disabling-watchdoge.patch
@@ -1,4 +1,4 @@
-From 9708222bc4a17ecae0b74e1e953f16e0d4497d67 Mon Sep 17 00:00:00 2001
+From 9c7277dfab9dcd62aa8a511cc200a97a058f8334 Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Thu, 12 May 2016 23:02:58 -0500
 Subject: [PATCH] System property for disabling watchdoge
@@ -18,5 +18,5 @@ index 56f5f54bd..9532aada8 100644
                  Logger log = Bukkit.getServer().getLogger();
                  log.log( Level.SEVERE, "------------------------------" );
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0103-Optimize-UserCache-Thread-Safe.patch b/Spigot-Server-Patches/0101-Optimize-UserCache-Thread-Safe.patch
similarity index 94%
rename from Spigot-Server-Patches/0103-Optimize-UserCache-Thread-Safe.patch
rename to Spigot-Server-Patches/0101-Optimize-UserCache-Thread-Safe.patch
index 37961643c..0c8201fc6 100644
--- a/Spigot-Server-Patches/0103-Optimize-UserCache-Thread-Safe.patch
+++ b/Spigot-Server-Patches/0101-Optimize-UserCache-Thread-Safe.patch
@@ -1,4 +1,4 @@
-From 87f6d99f3b919bc730e3f98ec6243fafa015479d Mon Sep 17 00:00:00 2001
+From 025d5128eaa1e73d661b4545dc3e44ed1b49414c Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 16 May 2016 20:47:41 -0400
 Subject: [PATCH] Optimize UserCache / Thread Safe
@@ -10,10 +10,10 @@ Additionally, move Saving of the User cache to be done async, incase
 the user never changed the default setting for Spigot's save on stop only.
 
 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 17b9e9a31d..6a2933f4ff 100644
+index 2a40bb0b8..38bf3ea44 100644
 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
 +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -751,7 +751,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -759,7 +759,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
          // Spigot start
          if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) {
              LOGGER.info("Saving usercache.json");
@@ -23,7 +23,7 @@ index 17b9e9a31d..6a2933f4ff 100644
          // Spigot end
      }
 diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java
-index 57d053e9ff..ea02567554 100644
+index 65659996c..566f3db39 100644
 --- a/src/main/java/net/minecraft/server/UserCache.java
 +++ b/src/main/java/net/minecraft/server/UserCache.java
 @@ -43,8 +43,8 @@ public class UserCache {
@@ -72,7 +72,7 @@ index 57d053e9ff..ea02567554 100644
  
 +    @Nullable public GameProfile getProfile(UUID uuid) { return a(uuid);  } // Paper - OBFHELPER
      @Nullable
-     public GameProfile a(UUID uuid) {
+     public GameProfile getProfile(UUID uuid) {
          UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.e.get(uuid);
 @@ -220,8 +222,15 @@ public class UserCache {
  
@@ -106,5 +106,5 @@ index 57d053e9ff..ea02567554 100644
      }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0104-Avoid-blocking-on-Network-Manager-creation.patch b/Spigot-Server-Patches/0102-Avoid-blocking-on-Network-Manager-creation.patch
similarity index 85%
rename from Spigot-Server-Patches/0104-Avoid-blocking-on-Network-Manager-creation.patch
rename to Spigot-Server-Patches/0102-Avoid-blocking-on-Network-Manager-creation.patch
index 18dab2911..ed6112cf4 100644
--- a/Spigot-Server-Patches/0104-Avoid-blocking-on-Network-Manager-creation.patch
+++ b/Spigot-Server-Patches/0102-Avoid-blocking-on-Network-Manager-creation.patch
@@ -1,4 +1,4 @@
-From e31be59b829cb42dc3f9ea5f6143275dcd8ed1e2 Mon Sep 17 00:00:00 2001
+From 97be5e03e39b4a76d767df3c495281b54362952b Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 16 May 2016 23:19:16 -0400
 Subject: [PATCH] Avoid blocking on Network Manager creation
@@ -6,18 +6,18 @@ Subject: [PATCH] Avoid blocking on Network Manager creation
 Per Paper issue 294
 
 diff --git a/src/main/java/net/minecraft/server/ServerConnection.java b/src/main/java/net/minecraft/server/ServerConnection.java
-index 7de96ae69d..379c79272b 100644
+index bd5563577..e6fac155d 100644
 --- a/src/main/java/net/minecraft/server/ServerConnection.java
 +++ b/src/main/java/net/minecraft/server/ServerConnection.java
 @@ -39,6 +39,15 @@ public class ServerConnection {
      public volatile boolean c;
      private final List<ChannelFuture> f = Collections.synchronizedList(Lists.newArrayList());
-     private final List<NetworkManager> g = Collections.synchronizedList(Lists.newArrayList());
+     private final List<NetworkManager> listeningChannels = Collections.synchronizedList(Lists.newArrayList());
 +    // Paper start - prevent blocking on adding a new network manager while the server is ticking
 +    private final List<NetworkManager> pending = Collections.synchronizedList(Lists.<NetworkManager>newArrayList());
 +    private void addPending() {
 +        synchronized (pending) {
-+            this.g.addAll(pending); // Paper - OBFHELPER - List of network managers
++            this.listeningChannels.addAll(pending);
 +            pending.clear();
 +        }
 +    }
@@ -29,19 +29,19 @@ index 7de96ae69d..379c79272b 100644
                      channel.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("legacy_query", new LegacyPingHandler(ServerConnection.this)).addLast("splitter", new PacketSplitter()).addLast("decoder", new PacketDecoder(EnumProtocolDirection.SERVERBOUND)).addLast("prepender", new PacketPrepender()).addLast("encoder", new PacketEncoder(EnumProtocolDirection.CLIENTBOUND));
                      NetworkManager networkmanager = new NetworkManager(EnumProtocolDirection.SERVERBOUND);
  
--                    ServerConnection.this.g.add(networkmanager);
+-                    ServerConnection.this.listeningChannels.add(networkmanager);
 +                    pending.add(networkmanager); // Paper
                      channel.pipeline().addLast("packet_handler", networkmanager);
                      networkmanager.setPacketListener(new HandshakeListener(ServerConnection.this.e, networkmanager));
                  }
 @@ -112,6 +121,7 @@ public class ServerConnection {
  
-         synchronized (this.g) {
+         synchronized (this.listeningChannels) {
              // Spigot Start
 +            addPending(); // Paper
              // This prevents players from 'gaming' the server, and strategically relogging to increase their position in the tick order
              if ( org.spigotmc.SpigotConfig.playerShuffle > 0 && MinecraftServer.currentTick % org.spigotmc.SpigotConfig.playerShuffle == 0 )
              {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch b/Spigot-Server-Patches/0103-Optional-TNT-doesn-t-move-in-water.patch
similarity index 87%
rename from Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch
rename to Spigot-Server-Patches/0103-Optional-TNT-doesn-t-move-in-water.patch
index 09c84fd7c..71cd2b0de 100644
--- a/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch
+++ b/Spigot-Server-Patches/0103-Optional-TNT-doesn-t-move-in-water.patch
@@ -1,11 +1,11 @@
-From c6fac8147b0b1b3a1019625eb4e2ffaa05f22c3c Mon Sep 17 00:00:00 2001
+From 446ab7ff2aba9834e4775dd86f62429fac2ef20d Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sun, 22 May 2016 20:20:55 -0500
 Subject: [PATCH] Optional TNT doesn't move in water
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 934097163..300cc68a7 100644
+index 277f7618e..1dbeb209e 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -2,7 +2,6 @@ package com.destroystokyo.paper;
@@ -32,13 +32,13 @@ index 934097163..300cc68a7 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 4793bc7d8..0981e9c8c 100644
+index 2e56c7f57..e04b3f4e2 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
-@@ -2698,6 +2698,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+@@ -2705,6 +2705,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
      }
  
-     public boolean bE() {
+     public boolean bM() {
 +        // Paper start
 +        return this.pushedByWater();
 +    }
@@ -49,12 +49,12 @@ index 4793bc7d8..0981e9c8c 100644
      }
  
 diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
-index f2ee53ab9..dc0d944ea 100644
+index 7625dca00..75193e87d 100644
 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
 +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
-@@ -80,7 +80,27 @@ public class EntityTNTPrimed extends Entity {
-             this.ay();
-             this.world.addParticle(Particles.SMOKE, this.locX, this.locY + 0.5D, this.locZ, 0.0D, 0.0D, 0.0D);
+@@ -79,7 +79,27 @@ public class EntityTNTPrimed extends Entity {
+                 this.world.addParticle(Particles.SMOKE, this.locX(), this.locY() + 0.5D, this.locZ(), 0.0D, 0.0D, 0.0D);
+             }
          }
 -
 +        // Paper start - Optional prevent TNT from moving in water
@@ -81,8 +81,8 @@ index f2ee53ab9..dc0d944ea 100644
      }
  
      private void explode() {
-@@ -149,4 +169,11 @@ public class EntityTNTPrimed extends Entity {
-     public Packet<?> N() {
+@@ -148,4 +168,11 @@ public class EntityTNTPrimed extends Entity {
+     public Packet<?> L() {
          return new PacketPlayOutSpawnEntity(this);
      }
 +
@@ -94,7 +94,7 @@ index f2ee53ab9..dc0d944ea 100644
 +    // Paper end
  }
 diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
-index f04a9d18c..cd7e0299a 100644
+index a13fd9b34..3ff7a7b4a 100644
 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
 +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
 @@ -36,7 +36,7 @@ public class EntityTrackerEntry {
@@ -107,5 +107,5 @@ index f04a9d18c..cd7e0299a 100644
      private java.util.Map<EntityPlayer, Boolean> trackedPlayerMap = null;
  
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0106-Faster-redstone-torch-rapid-clock-removal.patch b/Spigot-Server-Patches/0104-Faster-redstone-torch-rapid-clock-removal.patch
similarity index 94%
rename from Spigot-Server-Patches/0106-Faster-redstone-torch-rapid-clock-removal.patch
rename to Spigot-Server-Patches/0104-Faster-redstone-torch-rapid-clock-removal.patch
index 6c77ef982..821bb91db 100644
--- a/Spigot-Server-Patches/0106-Faster-redstone-torch-rapid-clock-removal.patch
+++ b/Spigot-Server-Patches/0104-Faster-redstone-torch-rapid-clock-removal.patch
@@ -1,4 +1,4 @@
-From 3d14572f7a9ba30b0eae0daf0a239b60e3ebc457 Mon Sep 17 00:00:00 2001
+From d20759aaff7ab4cb1819c6677dc52aa2871cffa1 Mon Sep 17 00:00:00 2001
 From: Martin Panzer <postremus1996@googlemail.com>
 Date: Mon, 23 May 2016 12:12:37 +0200
 Subject: [PATCH] Faster redstone torch rapid clock removal
@@ -6,7 +6,7 @@ Subject: [PATCH] Faster redstone torch rapid clock removal
 Only resize the the redstone torch list once, since resizing arrays / lists is costly
 
 diff --git a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
-index a99f979ef..919ba8a14 100644
+index 98a255ae5..4c3062ece 100644
 --- a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
 +++ b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
 @@ -11,7 +11,7 @@ import org.bukkit.event.block.BlockRedstoneEvent; // CraftBukkit
@@ -77,10 +77,10 @@ index a99f979ef..919ba8a14 100644
          public RedstoneUpdateInfo(BlockPosition blockposition, long i) {
              this.a = blockposition;
 diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index f396ca691..4ce18f85b 100644
+index 7d5f6e220..312e32f1b 100644
 --- a/src/main/java/net/minecraft/server/World.java
 +++ b/src/main/java/net/minecraft/server/World.java
-@@ -99,6 +99,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
+@@ -98,6 +98,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
      private org.spigotmc.TickLimiter tileLimiter;
      private int tileTickPosition;
      public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
@@ -89,5 +89,5 @@ index f396ca691..4ce18f85b 100644
      public CraftWorld getWorld() {
          return this.world;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0107-Add-server-name-parameter.patch b/Spigot-Server-Patches/0105-Add-server-name-parameter.patch
similarity index 89%
rename from Spigot-Server-Patches/0107-Add-server-name-parameter.patch
rename to Spigot-Server-Patches/0105-Add-server-name-parameter.patch
index b945aea37..12019f5c2 100644
--- a/Spigot-Server-Patches/0107-Add-server-name-parameter.patch
+++ b/Spigot-Server-Patches/0105-Add-server-name-parameter.patch
@@ -1,11 +1,11 @@
-From 5ea1c896146e882a1c8debaf9578405d40cf1ed1 Mon Sep 17 00:00:00 2001
+From 8a1aad77aff1c228dc3c0b3b00ce5f0f6ffde89d Mon Sep 17 00:00:00 2001
 From: Martin Panzer <postremus1996@googlemail.com>
 Date: Sat, 28 May 2016 16:54:03 +0200
 Subject: [PATCH] Add server-name parameter
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 484f1995a..ad1da9ddd 100644
+index 2481c1860..4a4e56e76 100644
 --- a/src/main/java/org/bukkit/craftbukkit/Main.java
 +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
 @@ -136,6 +136,14 @@ public class Main {
@@ -24,5 +24,5 @@ index 484f1995a..ad1da9ddd 100644
          };
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0108-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch b/Spigot-Server-Patches/0106-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch
similarity index 84%
rename from Spigot-Server-Patches/0108-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch
rename to Spigot-Server-Patches/0106-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch
index 3c135c4b4..402519ad8 100644
--- a/Spigot-Server-Patches/0108-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch
+++ b/Spigot-Server-Patches/0106-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch
@@ -1,4 +1,4 @@
-From 7ef1b66691b9ff7a782e4903c8e5f6b31bba08bb Mon Sep 17 00:00:00 2001
+From aef341f706c37a285e09e421050f6e029eb47d6c Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 31 May 2016 22:53:50 -0400
 Subject: [PATCH] Only send Dragon/Wither Death sounds to same world
@@ -6,11 +6,11 @@ Subject: [PATCH] Only send Dragon/Wither Death sounds to same world
 Also fix view distance lookup
 
 diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
-index 9ecbc8e3e..0421052d2 100644
+index e11ccdbd8..e0d240a89 100644
 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
 +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
-@@ -563,8 +563,11 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
-             if (this.bL == 1) {
+@@ -572,8 +572,11 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
+             if (this.bA == 1) {
                  // CraftBukkit start - Use relative location for far away sounds
                  // this.world.b(1028, new BlockPosition(this), 0);
 -                int viewDistance = ((WorldServer) this.world).getServer().getViewDistance() * 16;
@@ -20,11 +20,11 @@ index 9ecbc8e3e..0421052d2 100644
 +                for (EntityPlayer player : ((WorldServer)world).getPlayers()) {
 +                    final int viewDistance = player.getViewDistance(); // TODO apply view distance api patch
 +                    // Paper end
-                     double deltaX = this.locX - player.locX;
-                     double deltaZ = this.locZ - player.locZ;
+                     double deltaX = this.locX() - player.locX();
+                     double deltaZ = this.locZ() - player.locZ();
                      double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
 diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
-index 92acd504a..ee1b0a884 100644
+index 2edf466ee..2e95069c1 100644
 --- a/src/main/java/net/minecraft/server/EntityWither.java
 +++ b/src/main/java/net/minecraft/server/EntityWither.java
 @@ -207,8 +207,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -38,9 +38,9 @@ index 92acd504a..ee1b0a884 100644
 +                for (EntityPlayer player : ((WorldServer)world).getPlayers()) {
 +                    final int viewDistance = player.getViewDistance(); // TODO apply view distance api patch
 +                    // Paper end
-                     double deltaX = this.locX - player.locX;
-                     double deltaZ = this.locZ - player.locZ;
+                     double deltaX = this.locX() - player.locX();
+                     double deltaZ = this.locZ() - player.locZ();
                      double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0109-Fix-Double-World-Add-issues.patch b/Spigot-Server-Patches/0107-Fix-Double-World-Add-issues.patch
similarity index 86%
rename from Spigot-Server-Patches/0109-Fix-Double-World-Add-issues.patch
rename to Spigot-Server-Patches/0107-Fix-Double-World-Add-issues.patch
index 5dd7b247d..a49f07a7e 100644
--- a/Spigot-Server-Patches/0109-Fix-Double-World-Add-issues.patch
+++ b/Spigot-Server-Patches/0107-Fix-Double-World-Add-issues.patch
@@ -1,4 +1,4 @@
-From 55251a666bc4d1120c00d23ad77ee7caf7d757ed Mon Sep 17 00:00:00 2001
+From db10dbff71b014658808050b7f633e3e63505bd1 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 21 Jun 2016 22:54:34 -0400
 Subject: [PATCH] Fix Double World Add issues
@@ -8,10 +8,10 @@ Vanilla will double add Spider Jockeys to the world, so ignore already added.
 Also add debug if something else tries to, and abort before world gets bad state
 
 diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index d50e804102..71130dd2e4 100644
+index ea9899889..f606a7340 100644
 --- a/src/main/java/net/minecraft/server/WorldServer.java
 +++ b/src/main/java/net/minecraft/server/WorldServer.java
-@@ -975,6 +975,7 @@ public class WorldServer extends World {
+@@ -983,6 +983,7 @@ public class WorldServer extends World {
      // CraftBukkit start
      private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) {
          org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot
@@ -20,5 +20,5 @@ index d50e804102..71130dd2e4 100644
              // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getName(entity.getEntityType())); // CraftBukkit
              return false;
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0110-Fix-Old-Sign-Conversion.patch b/Spigot-Server-Patches/0108-Fix-Old-Sign-Conversion.patch
similarity index 90%
rename from Spigot-Server-Patches/0110-Fix-Old-Sign-Conversion.patch
rename to Spigot-Server-Patches/0108-Fix-Old-Sign-Conversion.patch
index 909e9ccac..166d4d272 100644
--- a/Spigot-Server-Patches/0110-Fix-Old-Sign-Conversion.patch
+++ b/Spigot-Server-Patches/0108-Fix-Old-Sign-Conversion.patch
@@ -1,4 +1,4 @@
-From 599276513a14e0ed0db9767795ca02f258ab5fdf Mon Sep 17 00:00:00 2001
+From abef8b250ac2af6f388497dc00abd5fbb8fc7c70 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Fri, 17 Jun 2016 20:50:11 -0400
 Subject: [PATCH] Fix Old Sign Conversion
@@ -9,7 +9,7 @@ Subject: [PATCH] Fix Old Sign Conversion
    This causes Igloos and such to render broken signs. We fix this by ignoring sign conversion for Defined Structures
 
 diff --git a/src/main/java/net/minecraft/server/DefinedStructure.java b/src/main/java/net/minecraft/server/DefinedStructure.java
-index 7bcd9786a..775ec6389 100644
+index dad966825..8c411ff07 100644
 --- a/src/main/java/net/minecraft/server/DefinedStructure.java
 +++ b/src/main/java/net/minecraft/server/DefinedStructure.java
 @@ -203,9 +203,11 @@ public class DefinedStructure {
@@ -25,7 +25,7 @@ index 7bcd9786a..775ec6389 100644
                              }
  
 diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
-index e1db24316..af6977dcd 100644
+index e2f3cec74..630b27915 100644
 --- a/src/main/java/net/minecraft/server/TileEntity.java
 +++ b/src/main/java/net/minecraft/server/TileEntity.java
 @@ -20,6 +20,7 @@ public abstract class TileEntity implements KeyedObject { // Paper
@@ -33,14 +33,14 @@ index e1db24316..af6977dcd 100644
      // CraftBukkit end
      private static final Logger LOGGER = LogManager.getLogger();
 +    boolean isLoadingStructure = false; // Paper
-     private final TileEntityTypes<?> b; public TileEntityTypes getTileEntityType() { return b; } // Paper - OBFHELPER
+     private final TileEntityTypes<?> tileType; public TileEntityTypes getTileEntityType() { return tileType; } // Paper - OBFHELPER
      @Nullable
      protected World world;
 diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
-index 914f4e6da..ddf8f4659 100644
+index 4a48c09e9..03f6ddf00 100644
 --- a/src/main/java/net/minecraft/server/TileEntitySign.java
 +++ b/src/main/java/net/minecraft/server/TileEntitySign.java
-@@ -58,13 +58,14 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
+@@ -55,13 +55,14 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
              }
  
              try {
@@ -58,5 +58,5 @@ index 914f4e6da..ddf8f4659 100644
                  if (this.world instanceof WorldServer) {
                      try {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0111-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch b/Spigot-Server-Patches/0109-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch
similarity index 89%
rename from Spigot-Server-Patches/0111-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch
rename to Spigot-Server-Patches/0109-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch
index fcae8e4c2..be371d087 100644
--- a/Spigot-Server-Patches/0111-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch
+++ b/Spigot-Server-Patches/0109-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch
@@ -1,11 +1,11 @@
-From bb8c40312cc74d634ee982f9df515eb7b072f4dc Mon Sep 17 00:00:00 2001
+From 09d2c6aeec8d9ec23c454e41eff56df692cdf858 Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sat, 16 Jul 2016 19:11:17 -0500
 Subject: [PATCH] Don't lookup game profiles that have no UUID and no name
 
 
 diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java
-index ea0256755..b0d883d49 100644
+index 566f3db39..e8143eff4 100644
 --- a/src/main/java/net/minecraft/server/UserCache.java
 +++ b/src/main/java/net/minecraft/server/UserCache.java
 @@ -86,7 +86,7 @@ public class UserCache {
@@ -18,5 +18,5 @@ index ea0256755..b0d883d49 100644
              GameProfile gameprofile = new GameProfile(uuid, s);
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0112-More-informative-vehicle-moved-wrongly-message.patch b/Spigot-Server-Patches/0110-More-informative-vehicle-moved-wrongly-message.patch
similarity index 84%
rename from Spigot-Server-Patches/0112-More-informative-vehicle-moved-wrongly-message.patch
rename to Spigot-Server-Patches/0110-More-informative-vehicle-moved-wrongly-message.patch
index 6a4d75e0f..986f9effe 100644
--- a/Spigot-Server-Patches/0112-More-informative-vehicle-moved-wrongly-message.patch
+++ b/Spigot-Server-Patches/0110-More-informative-vehicle-moved-wrongly-message.patch
@@ -1,14 +1,14 @@
-From 3c1bfaec22e1743156d4806b5e56b666a63294e9 Mon Sep 17 00:00:00 2001
+From ae8e72862897e15a4aeb4e6acbe938df9cb5ee6e Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Thu, 28 Jul 2016 17:58:53 -0500
 Subject: [PATCH] More informative vehicle moved wrongly message
 
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 046bcb27e3..39662f1462 100644
+index 8f182fcc8..53d201c59 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -362,7 +362,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -365,7 +365,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
  
                  if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot
                      flag1 = true;
@@ -18,5 +18,5 @@ index 046bcb27e3..39662f1462 100644
                  Location curPos = this.getPlayer().getLocation(); // Spigot
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0113-Re-track-players-that-dismount-from-other-players.patch b/Spigot-Server-Patches/0111-Re-track-players-that-dismount-from-other-players.patch
similarity index 73%
rename from Spigot-Server-Patches/0113-Re-track-players-that-dismount-from-other-players.patch
rename to Spigot-Server-Patches/0111-Re-track-players-that-dismount-from-other-players.patch
index 0fb7e508a..2dd3a8f43 100644
--- a/Spigot-Server-Patches/0113-Re-track-players-that-dismount-from-other-players.patch
+++ b/Spigot-Server-Patches/0111-Re-track-players-that-dismount-from-other-players.patch
@@ -1,16 +1,16 @@
-From 7fc9411e0c2d870ae25a7e0c3da3ea22ddb5d24d Mon Sep 17 00:00:00 2001
+From 8071a5ef7c8dcdde949b15fef8891a6ec1fbf14e Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sun, 31 Jul 2016 16:33:03 -0500
 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 9dfa92f88..940663bd3 100644
+index 6595dca86..a9827322c 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
-@@ -980,6 +980,14 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
-         if (entity1 != entity && this.playerConnection != null) {
-             this.playerConnection.a(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
+@@ -979,6 +979,14 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+         if (!this.isSpectator()) {
+             super.b(blockposition);
          }
 +        // Paper start - "Fixes" an issue in which the vehicle player would not be notified that the passenger dismounted
 +        if (entity instanceof EntityPlayer) {
@@ -24,5 +24,5 @@ index 9dfa92f88..940663bd3 100644
      }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0114-Add-setting-for-proxy-online-mode-status.patch b/Spigot-Server-Patches/0112-Add-setting-for-proxy-online-mode-status.patch
similarity index 92%
rename from Spigot-Server-Patches/0114-Add-setting-for-proxy-online-mode-status.patch
rename to Spigot-Server-Patches/0112-Add-setting-for-proxy-online-mode-status.patch
index 4e952548f..cb23b411b 100644
--- a/Spigot-Server-Patches/0114-Add-setting-for-proxy-online-mode-status.patch
+++ b/Spigot-Server-Patches/0112-Add-setting-for-proxy-online-mode-status.patch
@@ -1,11 +1,11 @@
-From 8076467ee1a1540dbc421f8aa8f049cb4e36fbac Mon Sep 17 00:00:00 2001
+From 26c83d73e35ac4a256132b67ea1b142006b7b89a Mon Sep 17 00:00:00 2001
 From: Gabriele C <sgdc3.mail@gmail.com>
 Date: Fri, 5 Aug 2016 01:03:08 +0200
 Subject: [PATCH] Add setting for proxy online mode status
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index cbfe12734d..1daa2e4535 100644
+index 67f35fe66..53f96a157 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -22,6 +22,7 @@ import org.bukkit.configuration.InvalidConfigurationException;
@@ -31,7 +31,7 @@ index cbfe12734d..1daa2e4535 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
-index 21a8ed3231..0794aff5b7 100644
+index 1422503e1..d3c2e1bed 100644
 --- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
 +++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
 @@ -58,7 +58,8 @@ public class NameReferencingFileConverter {
@@ -45,10 +45,10 @@ index 21a8ed3231..0794aff5b7 100644
          } else {
              String[] astring1 = astring;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 6f6b0bea39..893d3e5c4c 100644
+index 09c62261a..08019fc94 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1358,7 +1358,8 @@ public final class CraftServer implements Server {
+@@ -1361,7 +1361,8 @@ public final class CraftServer implements Server {
              // Spigot Start
              GameProfile profile = null;
              // Only fetch an online UUID in online mode
@@ -59,5 +59,5 @@ index 6f6b0bea39..893d3e5c4c 100644
                  profile = console.getUserCache().getProfile( name );
              }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0115-Optimise-BlockState-s-hashCode-equals.patch b/Spigot-Server-Patches/0113-Optimise-BlockState-s-hashCode-equals.patch
similarity index 94%
rename from Spigot-Server-Patches/0115-Optimise-BlockState-s-hashCode-equals.patch
rename to Spigot-Server-Patches/0113-Optimise-BlockState-s-hashCode-equals.patch
index f86f709b0..784b0c1ae 100644
--- a/Spigot-Server-Patches/0115-Optimise-BlockState-s-hashCode-equals.patch
+++ b/Spigot-Server-Patches/0113-Optimise-BlockState-s-hashCode-equals.patch
@@ -1,4 +1,4 @@
-From 8b1b9b76920b2208bf6b134392699f93f12812d8 Mon Sep 17 00:00:00 2001
+From ea817a1e785ca6f37864a8d6f05700b020fd05aa Mon Sep 17 00:00:00 2001
 From: Alfie Cleveland <alfeh@me.com>
 Date: Fri, 19 Aug 2016 01:52:56 +0100
 Subject: [PATCH] Optimise BlockState's hashCode/equals
@@ -9,7 +9,7 @@ object identity checks safely.
 Use a simpler optimized hashcode
 
 diff --git a/src/main/java/net/minecraft/server/BlockState.java b/src/main/java/net/minecraft/server/BlockState.java
-index 77b25317a..be7e10d85 100644
+index 0ce77d923..00e67b567 100644
 --- a/src/main/java/net/minecraft/server/BlockState.java
 +++ b/src/main/java/net/minecraft/server/BlockState.java
 @@ -28,23 +28,13 @@ public abstract class BlockState<T extends Comparable<T>> implements IBlockState
@@ -41,7 +41,7 @@ index 77b25317a..be7e10d85 100644
  
      public int c() {
 diff --git a/src/main/java/net/minecraft/server/BlockStateBoolean.java b/src/main/java/net/minecraft/server/BlockStateBoolean.java
-index 31cb8ac84..3f085c7d6 100644
+index d8738447d..7ca302b52 100644
 --- a/src/main/java/net/minecraft/server/BlockStateBoolean.java
 +++ b/src/main/java/net/minecraft/server/BlockStateBoolean.java
 @@ -30,8 +30,7 @@ public class BlockStateBoolean extends BlockState<Boolean> {
@@ -55,7 +55,7 @@ index 31cb8ac84..3f085c7d6 100644
              return true;
          } else if (object instanceof BlockStateBoolean && super.equals(object)) {
 diff --git a/src/main/java/net/minecraft/server/BlockStateEnum.java b/src/main/java/net/minecraft/server/BlockStateEnum.java
-index 59d86fc66..82a1fac6f 100644
+index 1486d460c..7cdadc6b6 100644
 --- a/src/main/java/net/minecraft/server/BlockStateEnum.java
 +++ b/src/main/java/net/minecraft/server/BlockStateEnum.java
 @@ -49,8 +49,7 @@ public class BlockStateEnum<T extends Enum<T> & INamable> extends BlockState<T>
@@ -69,7 +69,7 @@ index 59d86fc66..82a1fac6f 100644
              return true;
          } else if (object instanceof BlockStateEnum && super.equals(object)) {
 diff --git a/src/main/java/net/minecraft/server/BlockStateInteger.java b/src/main/java/net/minecraft/server/BlockStateInteger.java
-index 6861c2b05..74ef69952 100644
+index 6f35c365f..0499a7170 100644
 --- a/src/main/java/net/minecraft/server/BlockStateInteger.java
 +++ b/src/main/java/net/minecraft/server/BlockStateInteger.java
 @@ -38,8 +38,7 @@ public class BlockStateInteger extends BlockState<Integer> {
@@ -83,5 +83,5 @@ index 6861c2b05..74ef69952 100644
              return true;
          } else if (object instanceof BlockStateInteger && super.equals(object)) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0116-Configurable-packet-in-spam-threshold.patch b/Spigot-Server-Patches/0114-Configurable-packet-in-spam-threshold.patch
similarity index 91%
rename from Spigot-Server-Patches/0116-Configurable-packet-in-spam-threshold.patch
rename to Spigot-Server-Patches/0114-Configurable-packet-in-spam-threshold.patch
index 82c89a001..a0d6a79bf 100644
--- a/Spigot-Server-Patches/0116-Configurable-packet-in-spam-threshold.patch
+++ b/Spigot-Server-Patches/0114-Configurable-packet-in-spam-threshold.patch
@@ -1,11 +1,11 @@
-From c948e40ab09a0873d5df1d64a05b26cb7e56bf93 Mon Sep 17 00:00:00 2001
+From d2a96b33351af347c2a04ff69900bb0a12cac3a3 Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sun, 11 Sep 2016 14:30:57 -0500
 Subject: [PATCH] Configurable packet in spam threshold
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index 1daa2e4535..5d0645c829 100644
+index 53f96a157..010b17d2e 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -243,4 +243,13 @@ public class PaperConfig {
@@ -23,10 +23,10 @@ index 1daa2e4535..5d0645c829 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 39662f1462..586d40a471 100644
+index 53d201c59..77cfec712 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -1191,13 +1191,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1203,13 +1203,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
      // Spigot start - limit place/interactions
      private int limitedPackets;
      private long lastLimitedPacket = -1;
@@ -44,5 +44,5 @@ index 39662f1462..586d40a471 100644
              limitedPackets = 0;
              return true;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0117-Configurable-flying-kick-messages.patch b/Spigot-Server-Patches/0115-Configurable-flying-kick-messages.patch
similarity index 89%
rename from Spigot-Server-Patches/0117-Configurable-flying-kick-messages.patch
rename to Spigot-Server-Patches/0115-Configurable-flying-kick-messages.patch
index 2fdc8a857..6cd497d81 100644
--- a/Spigot-Server-Patches/0117-Configurable-flying-kick-messages.patch
+++ b/Spigot-Server-Patches/0115-Configurable-flying-kick-messages.patch
@@ -1,11 +1,11 @@
-From 680b0199706bd0c2dd2fe8d1049639b3ab4597ed Mon Sep 17 00:00:00 2001
+From 7248ca8d9378b2bc237f55b06d86c4b12ec3ce4a Mon Sep 17 00:00:00 2001
 From: kashike <kashike@vq.lc>
 Date: Tue, 20 Sep 2016 00:58:01 +0000
 Subject: [PATCH] Configurable flying kick messages
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index 5d0645c82..b5a50afd2 100644
+index 010b17d2e..5a83fc21c 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -252,4 +252,11 @@ public class PaperConfig {
@@ -21,10 +21,10 @@ index 5d0645c82..b5a50afd2 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index cfd34f516..bf09c3939 100644
+index 77cfec712..16b70221e 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -144,7 +144,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -147,7 +147,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
          if (this.B) {
              if (++this.C > 80) {
                  PlayerConnection.LOGGER.warn("{} was kicked for floating too long!", this.player.getDisplayName().getString());
@@ -33,7 +33,7 @@ index cfd34f516..bf09c3939 100644
                  return;
              }
          } else {
-@@ -163,7 +163,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -166,7 +166,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
              if (this.D && this.player.getRootVehicle().getRidingPassenger() == this.player) {
                  if (++this.E > 80) {
                      PlayerConnection.LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getDisplayName().getString());
@@ -43,5 +43,5 @@ index cfd34f516..bf09c3939 100644
                  }
              } else {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0118-Chunk-registration-fixes.patch b/Spigot-Server-Patches/0116-Chunk-registration-fixes.patch
similarity index 57%
rename from Spigot-Server-Patches/0118-Chunk-registration-fixes.patch
rename to Spigot-Server-Patches/0116-Chunk-registration-fixes.patch
index 2de2e888f..c55a99aa1 100644
--- a/Spigot-Server-Patches/0118-Chunk-registration-fixes.patch
+++ b/Spigot-Server-Patches/0116-Chunk-registration-fixes.patch
@@ -1,4 +1,4 @@
-From 63e3abede167a6ad15b8d1038272539970038de2 Mon Sep 17 00:00:00 2001
+From c7c90ed5c44caa05b2d5c6ac1187a0598236b011 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 21 Sep 2016 22:54:28 -0400
 Subject: [PATCH] Chunk registration fixes
@@ -8,18 +8,18 @@ World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is tr
 Keep them consistent
 
 diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index 71130dd2e4..491c9c9170 100644
+index f606a7340..38e618c78 100644
 --- a/src/main/java/net/minecraft/server/WorldServer.java
 +++ b/src/main/java/net/minecraft/server/WorldServer.java
-@@ -664,7 +664,7 @@ public class WorldServer extends World {
+@@ -682,7 +682,7 @@ public class WorldServer extends World {
      public void chunkCheck(Entity entity) {
          this.getMethodProfiler().enter("chunkCheck");
-         int i = MathHelper.floor(entity.locX / 16.0D);
--        int j = MathHelper.floor(entity.locY / 16.0D);
-+        int j = Math.min(15, Math.max(0, MathHelper.floor(entity.locY / 16.0D))); // Paper - stay consistent with chunk add/remove behavior
-         int k = MathHelper.floor(entity.locZ / 16.0D);
+         int i = MathHelper.floor(entity.locX() / 16.0D);
+-        int j = MathHelper.floor(entity.locY() / 16.0D);
++        int j =  Math.min(15, Math.max(0, MathHelper.floor(entity.locY() / 16.0D))); // Paper - stay consistent with chunk add/remove behavior;
+         int k = MathHelper.floor(entity.locZ() / 16.0D);
  
          if (!entity.inChunk || entity.chunkX != i || entity.chunkY != j || entity.chunkZ != k) {
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0119-Remove-FishingHook-reference-on-Craft-Entity-removal.patch b/Spigot-Server-Patches/0117-Remove-FishingHook-reference-on-Craft-Entity-removal.patch
similarity index 89%
rename from Spigot-Server-Patches/0119-Remove-FishingHook-reference-on-Craft-Entity-removal.patch
rename to Spigot-Server-Patches/0117-Remove-FishingHook-reference-on-Craft-Entity-removal.patch
index 7ae98c148..5696358f5 100644
--- a/Spigot-Server-Patches/0119-Remove-FishingHook-reference-on-Craft-Entity-removal.patch
+++ b/Spigot-Server-Patches/0117-Remove-FishingHook-reference-on-Craft-Entity-removal.patch
@@ -1,11 +1,11 @@
-From e80bcc2cdb86f9d14f7fbab055861b4429e26236 Mon Sep 17 00:00:00 2001
+From 5d8c462a578281978caa06c6224ed118f19736ed Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Thu, 16 Jun 2016 00:17:23 -0400
 Subject: [PATCH] Remove FishingHook reference on Craft Entity removal
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-index 1ed9a4e32..9eb980137 100644
+index cd04a2b99..174b9f543 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
 @@ -66,4 +66,15 @@ public class CraftFishHook extends AbstractProjectile implements FishHook {
@@ -25,5 +25,5 @@ index 1ed9a4e32..9eb980137 100644
 +    
  }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0120-Auto-fix-bad-Y-levels-on-player-login.patch b/Spigot-Server-Patches/0118-Auto-fix-bad-Y-levels-on-player-login.patch
similarity index 90%
rename from Spigot-Server-Patches/0120-Auto-fix-bad-Y-levels-on-player-login.patch
rename to Spigot-Server-Patches/0118-Auto-fix-bad-Y-levels-on-player-login.patch
index 5f116ea0a..49bda0a37 100644
--- a/Spigot-Server-Patches/0120-Auto-fix-bad-Y-levels-on-player-login.patch
+++ b/Spigot-Server-Patches/0118-Auto-fix-bad-Y-levels-on-player-login.patch
@@ -1,4 +1,4 @@
-From cdf2b5d7860c49e030f00eb18980fee17cc69726 Mon Sep 17 00:00:00 2001
+From 33e34cbc44e672162a56cbb8daae4bf5028d5d59 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 21 Sep 2016 23:48:39 -0400
 Subject: [PATCH] Auto fix bad Y levels on player login
@@ -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 2d29e9d86..7b0c89ce7 100644
+index a9827322c..3e958eaf8 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -193,6 +193,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -18,5 +18,5 @@ index 2d29e9d86..7b0c89ce7 100644
              if (this.getMinecraftServer().getForceGamemode()) {
                  this.playerInteractManager.setGameMode(this.getMinecraftServer().getGamemode());
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0121-Option-to-remove-corrupt-tile-entities.patch b/Spigot-Server-Patches/0119-Option-to-remove-corrupt-tile-entities.patch
similarity index 88%
rename from Spigot-Server-Patches/0121-Option-to-remove-corrupt-tile-entities.patch
rename to Spigot-Server-Patches/0119-Option-to-remove-corrupt-tile-entities.patch
index aefe09385..922ad6ca6 100644
--- a/Spigot-Server-Patches/0121-Option-to-remove-corrupt-tile-entities.patch
+++ b/Spigot-Server-Patches/0119-Option-to-remove-corrupt-tile-entities.patch
@@ -1,11 +1,11 @@
-From 24ca14338a4d1ce533cc3d4d70841719e5e56200 Mon Sep 17 00:00:00 2001
+From a85d7e8d80aed8641a9b3be4b0133fd7eeba958b Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Wed, 5 Oct 2016 16:27:36 -0500
 Subject: [PATCH] Option to remove corrupt tile entities
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 300cc68a7..83d430ee5 100644
+index 1dbeb209e..fd1be52f3 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -296,4 +296,9 @@ public class PaperWorldConfig {
@@ -19,10 +19,10 @@ index 300cc68a7..83d430ee5 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
-index 85e17253d..1da80e244 100644
+index 034e8684d..1efddb533 100644
 --- a/src/main/java/net/minecraft/server/Chunk.java
 +++ b/src/main/java/net/minecraft/server/Chunk.java
-@@ -533,6 +533,12 @@ public class Chunk implements IChunkAccess {
+@@ -526,6 +526,12 @@ public class Chunk implements IChunkAccess {
                              "Chunk coordinates: " + (this.loc.x * 16) + "," + (this.loc.z * 16));
              e.printStackTrace();
              ServerInternalException.reportInternalException(e);
@@ -36,5 +36,5 @@ index 85e17253d..1da80e244 100644
              // CraftBukkit end
          }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0122-Add-EntityZapEvent.patch b/Spigot-Server-Patches/0120-Add-EntityZapEvent.patch
similarity index 87%
rename from Spigot-Server-Patches/0122-Add-EntityZapEvent.patch
rename to Spigot-Server-Patches/0120-Add-EntityZapEvent.patch
index 9364a5bdf..b98093c3a 100644
--- a/Spigot-Server-Patches/0122-Add-EntityZapEvent.patch
+++ b/Spigot-Server-Patches/0120-Add-EntityZapEvent.patch
@@ -1,14 +1,14 @@
-From cab0f672ad4486733d5c31352b443b59ad4572ab Mon Sep 17 00:00:00 2001
+From d7df64d30bc7aabaa32fb4a6c58c89b21f33eee7 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
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java
-index ee5bfd6f0c..7136e274af 100644
+index 5c24e22c7..8d277566e 100644
 --- a/src/main/java/net/minecraft/server/EntityPig.java
 +++ b/src/main/java/net/minecraft/server/EntityPig.java
-@@ -167,6 +167,12 @@ public class EntityPig extends EntityAnimal {
+@@ -164,6 +164,12 @@ public class EntityPig extends EntityAnimal {
              entitypigzombie.setCustomNameVisible(this.getCustomNameVisible());
          }
  
@@ -22,10 +22,10 @@ index ee5bfd6f0c..7136e274af 100644
          if (CraftEventFactory.callPigZapEvent(this, entitylightning, entitypigzombie).isCancelled()) {
              return;
 diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
-index 89065deb4f..dcd02930d9 100644
+index 27afee2e3..00300c6aa 100644
 --- a/src/main/java/net/minecraft/server/EntityVillager.java
 +++ b/src/main/java/net/minecraft/server/EntityVillager.java
-@@ -693,6 +693,12 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
+@@ -678,6 +678,12 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
      public void onLightningStrike(EntityLightning entitylightning) {
          EntityWitch entitywitch = (EntityWitch) EntityTypes.WITCH.a(this.world);
  
@@ -35,11 +35,11 @@ index 89065deb4f..dcd02930d9 100644
 +        }
 +        // Paper end
 +
-         entitywitch.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
+         entitywitch.setPositionRotation(this.locX(), this.locY(), this.locZ(), this.yaw, this.pitch);
          entitywitch.prepare(this.world, this.world.getDamageScaler(new BlockPosition(entitywitch)), EnumMobSpawn.CONVERSION, (GroupDataEntity) null, (NBTTagCompound) null);
          entitywitch.setNoAI(this.isNoAI());
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7936180b47..9af320a562 100644
+index de26145ee..ba14f66f7 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1040,6 +1040,14 @@ public class CraftEventFactory {
@@ -58,5 +58,5 @@ index 7936180b47..9af320a562 100644
          HorseJumpEvent event = new HorseJumpEvent((AbstractHorse) horse.getBukkitEntity(), power);
          horse.getBukkitEntity().getServer().getPluginManager().callEvent(event);
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0124-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch b/Spigot-Server-Patches/0121-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch
similarity index 91%
rename from Spigot-Server-Patches/0124-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch
rename to Spigot-Server-Patches/0121-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch
index a5cbb1a6a..5374905f1 100644
--- a/Spigot-Server-Patches/0124-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch
+++ b/Spigot-Server-Patches/0121-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch
@@ -1,11 +1,11 @@
-From e385888483f36d5a346d3d59d1b3a89f532b042f Mon Sep 17 00:00:00 2001
+From 62498f0d28b7d705658e1d9b2c1d765d6e78fba8 Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sat, 12 Nov 2016 23:25:22 -0600
 Subject: [PATCH] Filter bad data from ArmorStand and SpawnEgg items
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 83d430ee5..5d7d6fa36 100644
+index fd1be52f3..ba8edcf7e 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -2,6 +2,7 @@ package com.destroystokyo.paper;
@@ -30,10 +30,10 @@ index 83d430ee5..5d7d6fa36 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
-index 0f9fa4113..0a6d2b9b3 100644
+index 55d1b3529..2e908c749 100644
 --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
 +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
-@@ -233,6 +233,15 @@ public class EntityFallingBlock extends Entity {
+@@ -231,6 +231,15 @@ public class EntityFallingBlock extends Entity {
      @Override
      protected void a(NBTTagCompound nbttagcompound) {
          this.block = GameProfileSerializer.d(nbttagcompound.getCompound("BlockState"));
@@ -50,5 +50,5 @@ index 0f9fa4113..0a6d2b9b3 100644
          if (nbttagcompound.hasKeyOfType("HurtEntities", 99)) {
              this.hurtEntities = nbttagcompound.getBoolean("HurtEntities");
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0126-Optimise-removeQueue.patch b/Spigot-Server-Patches/0122-Cache-user-authenticator-threads.patch
similarity index 89%
rename from Spigot-Server-Patches/0126-Optimise-removeQueue.patch
rename to Spigot-Server-Patches/0122-Cache-user-authenticator-threads.patch
index b51f3c082..087129a77 100644
--- a/Spigot-Server-Patches/0126-Optimise-removeQueue.patch
+++ b/Spigot-Server-Patches/0122-Cache-user-authenticator-threads.patch
@@ -1,11 +1,11 @@
-From fcd2c72a3b622328ce01a7e9591fd2b024ecee6f Mon Sep 17 00:00:00 2001
-From: Alfie Cleveland <alfeh@me.com>
-Date: Fri, 25 Nov 2016 13:22:40 +0000
-Subject: [PATCH] Optimise removeQueue
+From aa46a8f287929842c58b58a76698f21363033112 Mon Sep 17 00:00:00 2001
+From: vemacs <d@nkmem.es>
+Date: Wed, 23 Nov 2016 08:31:45 -0500
+Subject: [PATCH] Cache user authenticator threads
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 8ba828a03..170f741d4 100644
+index 3e958eaf8..bf74db31e 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -4,7 +4,9 @@ import com.google.common.collect.Lists;
@@ -50,7 +50,7 @@ index 8ba828a03..170f741d4 100644
  
              this.playerConnection.sendPacket(new PacketPlayOutEntityDestroy(aint));
          }
-@@ -1330,7 +1339,14 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+@@ -1299,7 +1308,14 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
          this.lastHealthSent = -1.0F;
          this.lastFoodSent = -1;
          // this.recipeBook.a((RecipeBook) entityplayer.recipeBook); // CraftBukkit
@@ -63,9 +63,9 @@ index 8ba828a03..170f741d4 100644
 +            this.removeQueue.addAll(entityplayer.removeQueue);
 +        }
 +        // Paper end
-         this.cp = entityplayer.cp;
-         this.cu = entityplayer.cu;
+         this.cm = entityplayer.cm;
+         this.cr = entityplayer.cr;
          this.setShoulderEntityLeft(entityplayer.getShoulderEntityLeft());
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0125-Cache-user-authenticator-threads.patch b/Spigot-Server-Patches/0123-Optimise-removeQueue.patch
similarity index 90%
rename from Spigot-Server-Patches/0125-Cache-user-authenticator-threads.patch
rename to Spigot-Server-Patches/0123-Optimise-removeQueue.patch
index e09e9170b..eee2fdc67 100644
--- a/Spigot-Server-Patches/0125-Cache-user-authenticator-threads.patch
+++ b/Spigot-Server-Patches/0123-Optimise-removeQueue.patch
@@ -1,11 +1,11 @@
-From 0b49c3de819289a7beb6bebc8cf16c245c7b3bcc Mon Sep 17 00:00:00 2001
-From: vemacs <d@nkmem.es>
-Date: Wed, 23 Nov 2016 08:31:45 -0500
-Subject: [PATCH] Cache user authenticator threads
+From 3191d5030755745de632e7c0bd730420854ab721 Mon Sep 17 00:00:00 2001
+From: Alfie Cleveland <alfeh@me.com>
+Date: Fri, 25 Nov 2016 13:22:40 +0000
+Subject: [PATCH] Optimise removeQueue
 
 
 diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
-index 3db306655d..49df63d6de 100644
+index 2480bc64b..3683fa298 100644
 --- a/src/main/java/net/minecraft/server/LoginListener.java
 +++ b/src/main/java/net/minecraft/server/LoginListener.java
 @@ -97,6 +97,12 @@ public class LoginListener implements PacketLoginInListener {
@@ -54,7 +54,7 @@ index 3db306655d..49df63d6de 100644
  
 @@ -251,10 +259,8 @@ public class LoginListener implements PacketLoginInListener {
  
-                     return LoginListener.this.server.U() && socketaddress instanceof InetSocketAddress ? ((InetSocketAddress) socketaddress).getAddress() : null;
+                     return LoginListener.this.server.X() && socketaddress instanceof InetSocketAddress ? ((InetSocketAddress) socketaddress).getAddress() : null;
                  }
 -            };
 -
@@ -66,5 +66,5 @@ index 3db306655d..49df63d6de 100644
      }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0127-Allow-Reloading-of-Command-Aliases.patch b/Spigot-Server-Patches/0124-Allow-Reloading-of-Command-Aliases.patch
similarity index 89%
rename from Spigot-Server-Patches/0127-Allow-Reloading-of-Command-Aliases.patch
rename to Spigot-Server-Patches/0124-Allow-Reloading-of-Command-Aliases.patch
index 1ceadc472..934225b65 100644
--- a/Spigot-Server-Patches/0127-Allow-Reloading-of-Command-Aliases.patch
+++ b/Spigot-Server-Patches/0124-Allow-Reloading-of-Command-Aliases.patch
@@ -1,4 +1,4 @@
-From 194c189b347a96b95a782873d42e50a6fd2c4f49 Mon Sep 17 00:00:00 2001
+From 5d6cdd4b74075ea7c458c940fef53f190a094039 Mon Sep 17 00:00:00 2001
 From: willies952002 <admin@domnian.com>
 Date: Mon, 28 Nov 2016 10:21:52 -0500
 Subject: [PATCH] Allow Reloading of Command Aliases
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
 Reload the aliases stored in commands.yml
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 893d3e5c4c..ca6158dc73 100644
+index 08019fc94..811c33b90 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2077,5 +2077,24 @@ public final class CraftServer implements Server {
+@@ -2080,5 +2080,24 @@ public final class CraftServer implements Server {
          DefaultPermissions.registerCorePermissions();
          CraftDefaultPermissions.registerCorePermissions();
      }
@@ -35,5 +35,5 @@ index 893d3e5c4c..ca6158dc73 100644
      // Paper end
  }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0128-Add-source-to-PlayerExpChangeEvent.patch b/Spigot-Server-Patches/0125-Add-source-to-PlayerExpChangeEvent.patch
similarity index 94%
rename from Spigot-Server-Patches/0128-Add-source-to-PlayerExpChangeEvent.patch
rename to Spigot-Server-Patches/0125-Add-source-to-PlayerExpChangeEvent.patch
index 0c1bfa4b1..a2f4ecb19 100644
--- a/Spigot-Server-Patches/0128-Add-source-to-PlayerExpChangeEvent.patch
+++ b/Spigot-Server-Patches/0125-Add-source-to-PlayerExpChangeEvent.patch
@@ -1,11 +1,11 @@
-From 144c47833db03fc0dc276696b61a9cecb506785f Mon Sep 17 00:00:00 2001
+From 777724ba4ea181c7f4d8297a1ce33d17a59c6d36 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
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
-index 332dc0e53a..eec6de9ad7 100644
+index f72bb0c13..0447800d9 100644
 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 @@ -193,7 +193,7 @@ public class EntityExperienceOrb extends Entity {
@@ -18,7 +18,7 @@ index 332dc0e53a..eec6de9ad7 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 9af320a562..30492170b5 100644
+index ba14f66f7..3c52b40a3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -111,6 +111,7 @@ import org.bukkit.entity.ThrownPotion;
@@ -48,5 +48,5 @@ index 9af320a562..30492170b5 100644
          return handleBlockGrowEvent(world, pos, block, 3);
      }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0130-Don-t-let-fishinghooks-use-portals.patch b/Spigot-Server-Patches/0126-Don-t-let-fishinghooks-use-portals.patch
similarity index 65%
rename from Spigot-Server-Patches/0130-Don-t-let-fishinghooks-use-portals.patch
rename to Spigot-Server-Patches/0126-Don-t-let-fishinghooks-use-portals.patch
index e5b48a3ef..36da24643 100644
--- a/Spigot-Server-Patches/0130-Don-t-let-fishinghooks-use-portals.patch
+++ b/Spigot-Server-Patches/0126-Don-t-let-fishinghooks-use-portals.patch
@@ -1,30 +1,30 @@
-From 700d379ba7196379a92553b35172a62cdeb80fa7 Mon Sep 17 00:00:00 2001
+From 2dfb3d9a41f295d3dccb9165aa9c8c7ce86d3af6 Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Fri, 16 Dec 2016 16:03:19 -0600
 Subject: [PATCH] Don't let fishinghooks use portals
 
 
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 2a65a6685..187fea130 100644
+index e04b3f4e2..63d44401a 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
-@@ -156,7 +156,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
-     public boolean af;
+@@ -161,7 +161,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+     public boolean ac;
      public boolean impulse;
      public int portalCooldown;
--    protected boolean ai;
-+    protected boolean ai; public final boolean inPortal() { return this.ai; } // Paper - OBFHELPER
-     protected int aj;
+-    protected boolean af;
++    protected boolean af; public final boolean inPortal() { return this.af; } // Paper - OBFHELPER
+     protected int ag;
      public DimensionManager dimension;
-     protected BlockPosition al;
+     protected BlockPosition ai;
 diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
-index 84e6d660d..74b726937 100644
+index b10de807e..7a8b8b0d6 100644
 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java
 +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
-@@ -163,6 +163,12 @@ public class EntityFishingHook extends Entity {
+@@ -160,6 +160,12 @@ public class EntityFishingHook extends Entity {
  
              this.setMot(this.getMot().a(0.92D));
-             this.setPosition(this.locX, this.locY, this.locZ);
+             this.Z();
 +
 +            // Paper start - These shouldn't be going through portals
 +            if (this.inPortal()) {
@@ -35,5 +35,5 @@ index 84e6d660d..74b726937 100644
      }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0131-Add-ProjectileCollideEvent.patch b/Spigot-Server-Patches/0127-Add-ProjectileCollideEvent.patch
similarity index 93%
rename from Spigot-Server-Patches/0131-Add-ProjectileCollideEvent.patch
rename to Spigot-Server-Patches/0127-Add-ProjectileCollideEvent.patch
index a5582ef77..52549d2d9 100644
--- a/Spigot-Server-Patches/0131-Add-ProjectileCollideEvent.patch
+++ b/Spigot-Server-Patches/0127-Add-ProjectileCollideEvent.patch
@@ -1,14 +1,14 @@
-From 486d30c530a76c840f613c62d703fae42aa0ff95 Mon Sep 17 00:00:00 2001
+From ca1e8bd890fa9400cfd8e757611b8ae929ee7c4e 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
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
-index 2b829abac6..a9575d310b 100644
+index fc70d50ac..0c3664758 100644
 --- a/src/main/java/net/minecraft/server/EntityArrow.java
 +++ b/src/main/java/net/minecraft/server/EntityArrow.java
-@@ -184,6 +184,17 @@ public abstract class EntityArrow extends Entity implements IProjectile {
+@@ -187,6 +187,17 @@ public abstract class EntityArrow extends Entity implements IProjectile {
                      }
                  }
  
@@ -27,7 +27,7 @@ index 2b829abac6..a9575d310b 100644
                      this.a((MovingObjectPosition) object);
                      this.impulse = true;
 diff --git a/src/main/java/net/minecraft/server/EntityFireball.java b/src/main/java/net/minecraft/server/EntityFireball.java
-index 1a9fee8da1..14c4394933 100644
+index 078cc2523..6756c79b3 100644
 --- a/src/main/java/net/minecraft/server/EntityFireball.java
 +++ b/src/main/java/net/minecraft/server/EntityFireball.java
 @@ -67,7 +67,16 @@ public abstract class EntityFireball extends Entity {
@@ -49,10 +49,10 @@ index 1a9fee8da1..14c4394933 100644
  
                  // CraftBukkit start - Fire ProjectileHitEvent
 diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
-index 390f1a24d0..758559d35d 100644
+index 7a8b8b0d6..8ad0d0db1 100644
 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java
 +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
-@@ -217,7 +217,16 @@ public class EntityFishingHook extends Entity {
+@@ -214,7 +214,16 @@ public class EntityFishingHook extends Entity {
              return !entity.isSpectator() && (entity.isInteractable() || entity instanceof EntityItem) && (entity != this.owner || this.g >= 5);
          }, RayTrace.BlockCollisionOption.COLLIDER, true);
  
@@ -71,11 +71,11 @@ index 390f1a24d0..758559d35d 100644
              if (movingobjectposition.getType() == MovingObjectPosition.EnumMovingObjectType.ENTITY) {
                  this.hooked = ((MovingObjectPositionEntity) movingobjectposition).getEntity();
 diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java
-index d1710259ce..5f0cb4c33d 100644
+index 2e4c9d426..724b78b5d 100644
 --- a/src/main/java/net/minecraft/server/EntityProjectile.java
 +++ b/src/main/java/net/minecraft/server/EntityProjectile.java
-@@ -102,7 +102,16 @@ public abstract class EntityProjectile extends Entity implements IProjectile {
-             this.as = null;
+@@ -99,7 +99,16 @@ public abstract class EntityProjectile extends Entity implements IProjectile {
+             this.ap = null;
          }
  
 -        if (movingobjectposition.getType() != MovingObjectPosition.EnumMovingObjectType.MISS) {
@@ -93,7 +93,7 @@ index d1710259ce..5f0cb4c33d 100644
                  this.c(((MovingObjectPositionBlock) movingobjectposition).getBlockPosition());
              } else {
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 30492170b5..7f38d82a61 100644
+index 3c52b40a3..2bf53db88 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1144,6 +1144,16 @@ public class CraftEventFactory {
@@ -114,5 +114,5 @@ index 30492170b5..7f38d82a61 100644
          Projectile bukkitEntity = (Projectile) entity.getBukkitEntity();
          ProjectileLaunchEvent event = new ProjectileLaunchEvent(bukkitEntity);
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0132-Prevent-Pathfinding-out-of-World-Border.patch b/Spigot-Server-Patches/0128-Prevent-Pathfinding-out-of-World-Border.patch
similarity index 87%
rename from Spigot-Server-Patches/0132-Prevent-Pathfinding-out-of-World-Border.patch
rename to Spigot-Server-Patches/0128-Prevent-Pathfinding-out-of-World-Border.patch
index 92bb7ee0a..86e2e724b 100644
--- a/Spigot-Server-Patches/0132-Prevent-Pathfinding-out-of-World-Border.patch
+++ b/Spigot-Server-Patches/0128-Prevent-Pathfinding-out-of-World-Border.patch
@@ -1,4 +1,4 @@
-From 0c29a08334c31ceac93202ef8cc943e177ea67e5 Mon Sep 17 00:00:00 2001
+From b89099d63eb89b7c3abd6fa4e07b99cd6668ab98 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 19 Dec 2016 23:07:42 -0500
 Subject: [PATCH] Prevent Pathfinding out of World Border
@@ -6,10 +6,10 @@ Subject: [PATCH] Prevent Pathfinding out of World Border
 This prevents Entities from trying to run outside of the World Border
 
 diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
-index 126c05adc7..be6aa59749 100644
+index 39a0c45bb..bdd092e49 100644
 --- a/src/main/java/net/minecraft/server/NavigationAbstract.java
 +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
-@@ -115,7 +115,7 @@ public abstract class NavigationAbstract {
+@@ -123,7 +123,7 @@ public abstract class NavigationAbstract {
              // Paper start - Pathfind event
              boolean copiedSet = false;
              for (BlockPosition possibleTarget : set) {
@@ -19,5 +19,5 @@ index 126c05adc7..be6aa59749 100644
                      if (!copiedSet) {
                          copiedSet = true;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0133-Bound-Treasure-Maps-to-World-Border.patch b/Spigot-Server-Patches/0129-Bound-Treasure-Maps-to-World-Border.patch
similarity index 92%
rename from Spigot-Server-Patches/0133-Bound-Treasure-Maps-to-World-Border.patch
rename to Spigot-Server-Patches/0129-Bound-Treasure-Maps-to-World-Border.patch
index 1715eae5b..bbf10cc9b 100644
--- a/Spigot-Server-Patches/0133-Bound-Treasure-Maps-to-World-Border.patch
+++ b/Spigot-Server-Patches/0129-Bound-Treasure-Maps-to-World-Border.patch
@@ -1,4 +1,4 @@
-From f1df25df924b5fe017bb7cadcc6b633a7ca8b231 Mon Sep 17 00:00:00 2001
+From b6ea5bc92d6f07a2a5aa0cc9fe7f19a8b9f180ee Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 20 Dec 2016 15:15:11 -0500
 Subject: [PATCH] Bound Treasure Maps to World Border
@@ -11,10 +11,10 @@ that is outside happens to be closer, but unreachable, yet another reachable
 one is in border that would of been missed.
 
 diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
-index 464e1e101..7b2eace75 100644
+index 0f248b6de..e8ce2ecf2 100644
 --- a/src/main/java/net/minecraft/server/StructureGenerator.java
 +++ b/src/main/java/net/minecraft/server/StructureGenerator.java
-@@ -103,6 +103,7 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
+@@ -108,6 +108,7 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
  
                              if (flag1 || flag2) {
                                  ChunkCoordIntPair chunkcoordintpair = this.a(chunkgenerator, seededrandom, j, k, i1, j1);
@@ -23,7 +23,7 @@ index 464e1e101..7b2eace75 100644
  
                                  if (structurestart != null && structurestart.e()) {
 diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java
-index 1388610a7..890258137 100644
+index 4ee13ac45..5f10c4338 100644
 --- a/src/main/java/net/minecraft/server/WorldBorder.java
 +++ b/src/main/java/net/minecraft/server/WorldBorder.java
 @@ -24,6 +24,18 @@ public class WorldBorder {
@@ -46,5 +46,5 @@ index 1388610a7..890258137 100644
          return (double) chunkcoordintpair.f() > this.c() && (double) chunkcoordintpair.d() < this.e() && (double) chunkcoordintpair.g() > this.d() && (double) chunkcoordintpair.e() < this.f();
      }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0134-Configurable-Cartographer-Treasure-Maps.patch b/Spigot-Server-Patches/0130-Configurable-Cartographer-Treasure-Maps.patch
similarity index 63%
rename from Spigot-Server-Patches/0134-Configurable-Cartographer-Treasure-Maps.patch
rename to Spigot-Server-Patches/0130-Configurable-Cartographer-Treasure-Maps.patch
index c93e2076b..1646ecd7f 100644
--- a/Spigot-Server-Patches/0134-Configurable-Cartographer-Treasure-Maps.patch
+++ b/Spigot-Server-Patches/0130-Configurable-Cartographer-Treasure-Maps.patch
@@ -1,4 +1,4 @@
-From 410b3f9d1345376d03424baec0e783aa30a41649 Mon Sep 17 00:00:00 2001
+From 6a2c7cb959467d46b721e83a2f25eef3a9a12cf5 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 20 Dec 2016 15:26:27 -0500
 Subject: [PATCH] Configurable Cartographer Treasure Maps
@@ -9,7 +9,7 @@ Also allow turning off treasure maps all together as they can eat up Map ID's
 which are limited in quantity.
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 5d7d6fa36..0d2537ab8 100644
+index ba8edcf7e..bf11448bc 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -310,4 +310,14 @@ public class PaperWorldConfig {
@@ -28,19 +28,19 @@ index 5d7d6fa36..0d2537ab8 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/VillagerTrades.java b/src/main/java/net/minecraft/server/VillagerTrades.java
-index 8cee460bd..99374fe2a 100644
+index 3bcf0b385..4764ffef7 100644
 --- a/src/main/java/net/minecraft/server/VillagerTrades.java
 +++ b/src/main/java/net/minecraft/server/VillagerTrades.java
-@@ -89,7 +89,8 @@ public class VillagerTrades {
-         @Override
-         public MerchantRecipe a(Entity entity, Random random) {
-             World world = entity.world;
--            BlockPosition blockposition = world.a(this.b, new BlockPosition(entity), 100, true);
-+            if (!world.paperConfig.enableTreasureMaps) return null; //Paper
-+            BlockPosition blockposition = world.a(this.b, new BlockPosition(entity), 100, !world.paperConfig.treasureMapsAlreadyDiscovered); //Paper
+@@ -92,7 +92,8 @@ public class VillagerTrades {
+                 return null;
+             } else {
+                 WorldServer worldserver = (WorldServer) entity.world;
+-                BlockPosition blockposition = worldserver.a(this.b, new BlockPosition(entity), 100, true);
++                if (!worldserver.paperConfig.enableTreasureMaps) return null; //Paper
++                BlockPosition blockposition = worldserver.a(this.b, new BlockPosition(entity), 100, !worldserver.paperConfig.treasureMapsAlreadyDiscovered); //Paper
  
-             if (blockposition != null) {
-                 ItemStack itemstack = ItemWorldMap.createFilledMapView(world, blockposition.getX(), blockposition.getZ(), (byte) 2, true, true);
+                 if (blockposition != null) {
+                     ItemStack itemstack = ItemWorldMap.createFilledMapView(worldserver, blockposition.getX(), blockposition.getZ(), (byte) 2, true, true);
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0135-Optimize-ItemStack.isEmpty.patch b/Spigot-Server-Patches/0131-Optimize-ItemStack.isEmpty.patch
similarity index 82%
rename from Spigot-Server-Patches/0135-Optimize-ItemStack.isEmpty.patch
rename to Spigot-Server-Patches/0131-Optimize-ItemStack.isEmpty.patch
index 6918dab55..4e273d4a8 100644
--- a/Spigot-Server-Patches/0135-Optimize-ItemStack.isEmpty.patch
+++ b/Spigot-Server-Patches/0131-Optimize-ItemStack.isEmpty.patch
@@ -1,4 +1,4 @@
-From 679bef409a36a11aecd5edb2bf998581b3f324de Mon Sep 17 00:00:00 2001
+From bf58400df5a723d81164dc713ed54293b8ff6dc4 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 21 Dec 2016 03:48:29 -0500
 Subject: [PATCH] Optimize ItemStack.isEmpty()
@@ -6,10 +6,10 @@ Subject: [PATCH] Optimize ItemStack.isEmpty()
 Remove hashMap lookup every check, simplify code to remove ternary
 
 diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
-index 5bc078d31..09d0de48e 100644
+index 0a1596ff0..2d0a8c58f 100644
 --- a/src/main/java/net/minecraft/server/ItemStack.java
 +++ b/src/main/java/net/minecraft/server/ItemStack.java
-@@ -145,7 +145,7 @@ public final class ItemStack {
+@@ -150,7 +150,7 @@ public final class ItemStack {
      }
  
      public boolean isEmpty() {
@@ -19,5 +19,5 @@ index 5bc078d31..09d0de48e 100644
  
      public ItemStack cloneAndSubtract(int i) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0136-Add-API-methods-to-control-if-armour-stands-can-move.patch b/Spigot-Server-Patches/0132-Add-API-methods-to-control-if-armour-stands-can-move.patch
similarity index 91%
rename from Spigot-Server-Patches/0136-Add-API-methods-to-control-if-armour-stands-can-move.patch
rename to Spigot-Server-Patches/0132-Add-API-methods-to-control-if-armour-stands-can-move.patch
index ed766fb84..51f46adfd 100644
--- a/Spigot-Server-Patches/0136-Add-API-methods-to-control-if-armour-stands-can-move.patch
+++ b/Spigot-Server-Patches/0132-Add-API-methods-to-control-if-armour-stands-can-move.patch
@@ -1,11 +1,11 @@
-From acb6a2a74f23b56bdaa44797acc636ebfec78049 Mon Sep 17 00:00:00 2001
+From 5503284388857eb1a7a16fb5d85d84f5c66edf6d Mon Sep 17 00:00:00 2001
 From: kashike <kashike@vq.lc>
 Date: Wed, 21 Dec 2016 11:47:25 -0600
 Subject: [PATCH] Add API methods to control if armour stands can move
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
-index 2e7d966c2..3e78b152f 100644
+index 9d0b85d1c..37ce4d48b 100644
 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java
 +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
 @@ -43,6 +43,7 @@ public class EntityArmorStand extends EntityLiving {
@@ -16,7 +16,7 @@ index 2e7d966c2..3e78b152f 100644
  
      public EntityArmorStand(EntityTypes<? extends EntityArmorStand> entitytypes, World world) {
          super(entitytypes, world);
-@@ -801,4 +802,13 @@ public class EntityArmorStand extends EntityLiving {
+@@ -817,4 +818,13 @@ public class EntityArmorStand extends EntityLiving {
  
          return this.getEntityType().k().a(f);
      }
@@ -52,5 +52,5 @@ index 2b66a08ad..124c3185b 100644
 +    // Paper end
  }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0137-Properly-fix-item-duplication-bug.patch b/Spigot-Server-Patches/0133-Properly-fix-item-duplication-bug.patch
similarity index 82%
rename from Spigot-Server-Patches/0137-Properly-fix-item-duplication-bug.patch
rename to Spigot-Server-Patches/0133-Properly-fix-item-duplication-bug.patch
index 1efeb54c3..c4048961e 100644
--- a/Spigot-Server-Patches/0137-Properly-fix-item-duplication-bug.patch
+++ b/Spigot-Server-Patches/0133-Properly-fix-item-duplication-bug.patch
@@ -1,4 +1,4 @@
-From 7615e6c4249f387bd62392ce23bf5f759be70b85 Mon Sep 17 00:00:00 2001
+From d53b09c688a512f440207e31541029476496d469 Mon Sep 17 00:00:00 2001
 From: Alfie Cleveland <alfeh@me.com>
 Date: Tue, 27 Dec 2016 01:57:57 +0000
 Subject: [PATCH] Properly fix item duplication bug
@@ -6,10 +6,10 @@ 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 170f741d4..88bc8b531 100644
+index bf74db31e..4e6601617 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
-@@ -1803,7 +1803,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+@@ -1767,7 +1767,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
  
      @Override
      protected boolean isFrozen() {
@@ -19,10 +19,10 @@ index 170f741d4..88bc8b531 100644
  
      @Override
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 13c1d9b91..068827e2e 100644
+index 16b70221e..cc6a2aaeb 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -2515,7 +2515,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2525,7 +2525,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
      }
  
      public final boolean isDisconnected() {
@@ -32,5 +32,5 @@ index 13c1d9b91..068827e2e 100644
      // CraftBukkit end
  
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0138-String-based-Action-Bar-API.patch b/Spigot-Server-Patches/0134-String-based-Action-Bar-API.patch
similarity index 93%
rename from Spigot-Server-Patches/0138-String-based-Action-Bar-API.patch
rename to Spigot-Server-Patches/0134-String-based-Action-Bar-API.patch
index 028098232..d3ee978b1 100644
--- a/Spigot-Server-Patches/0138-String-based-Action-Bar-API.patch
+++ b/Spigot-Server-Patches/0134-String-based-Action-Bar-API.patch
@@ -1,4 +1,4 @@
-From f9190f756fad99e0f3dd79bfabfbbf310d7ffc29 Mon Sep 17 00:00:00 2001
+From 2711c437c0a4ce474e4579a6a11b84393ec9907b Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 27 Dec 2016 15:02:42 -0500
 Subject: [PATCH] String based Action Bar API
@@ -42,10 +42,10 @@ index c96f3ed17..1f6a12632 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 d854d4844..d06415382 100644
+index 534e2756d..1c5007015 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -217,6 +217,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -216,6 +216,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
      }
  
      // Paper start
@@ -65,5 +65,5 @@ index d854d4844..d06415382 100644
      public void setPlayerListHeaderFooter(BaseComponent[] header, BaseComponent[] footer) {
           if (header != null) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0139-Firework-API-s.patch b/Spigot-Server-Patches/0135-Firework-API-s.patch
similarity index 81%
rename from Spigot-Server-Patches/0139-Firework-API-s.patch
rename to Spigot-Server-Patches/0135-Firework-API-s.patch
index effd5fb47..478288941 100644
--- a/Spigot-Server-Patches/0139-Firework-API-s.patch
+++ b/Spigot-Server-Patches/0135-Firework-API-s.patch
@@ -1,11 +1,11 @@
-From 76db7975abcdafa9fcfec1b5448d2bde8f9b4cff Mon Sep 17 00:00:00 2001
+From 83eee358ab42e7130b5dad53a4c0a98f202610c4 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 28 Dec 2016 07:18:33 +0100
 Subject: [PATCH] Firework API's
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityFireworks.java b/src/main/java/net/minecraft/server/EntityFireworks.java
-index 8f4116cde..dbbb96ac5 100644
+index 4f51b9b65..278ef79d8 100644
 --- a/src/main/java/net/minecraft/server/EntityFireworks.java
 +++ b/src/main/java/net/minecraft/server/EntityFireworks.java
 @@ -3,6 +3,8 @@ package net.minecraft.server;
@@ -18,7 +18,7 @@ index 8f4116cde..dbbb96ac5 100644
  
  public class EntityFireworks extends Entity implements IProjectile {
 @@ -12,7 +14,8 @@ public class EntityFireworks extends Entity implements IProjectile {
-     public static final DataWatcherObject<Boolean> d = DataWatcher.a(EntityFireworks.class, DataWatcherRegistry.i); // PAIL
+     public static final DataWatcherObject<Boolean> SHOT_AT_ANGLE = DataWatcher.a(EntityFireworks.class, DataWatcherRegistry.i);
      private int ticksFlown;
      public int expectedLifespan;
 -    private EntityLiving ridingEntity;
@@ -27,10 +27,10 @@ index 8f4116cde..dbbb96ac5 100644
  
      public EntityFireworks(EntityTypes<? extends EntityFireworks> entitytypes, World world) {
          super(entitytypes, world);
-@@ -271,6 +274,11 @@ public class EntityFireworks extends Entity implements IProjectile {
+@@ -268,6 +271,11 @@ public class EntityFireworks extends Entity implements IProjectile {
          }
  
-         nbttagcompound.setBoolean("ShotAtAngle", (Boolean) this.datawatcher.get(EntityFireworks.d));
+         nbttagcompound.setBoolean("ShotAtAngle", (Boolean) this.datawatcher.get(EntityFireworks.SHOT_AT_ANGLE));
 +        // Paper start
 +        if (this.spawningEntity != null) {
 +            nbttagcompound.setUUID("SpawningEntity", this.spawningEntity);
@@ -39,9 +39,9 @@ index 8f4116cde..dbbb96ac5 100644
      }
  
      @Override
-@@ -286,7 +294,11 @@ public class EntityFireworks extends Entity implements IProjectile {
+@@ -283,7 +291,11 @@ public class EntityFireworks extends Entity implements IProjectile {
          if (nbttagcompound.hasKey("ShotAtAngle")) {
-             this.datawatcher.set(EntityFireworks.d, nbttagcompound.getBoolean("ShotAtAngle"));
+             this.datawatcher.set(EntityFireworks.SHOT_AT_ANGLE, nbttagcompound.getBoolean("ShotAtAngle"));
          }
 -
 +        // Paper start
@@ -53,30 +53,30 @@ index 8f4116cde..dbbb96ac5 100644
  
      @Override
 diff --git a/src/main/java/net/minecraft/server/ItemCrossbow.java b/src/main/java/net/minecraft/server/ItemCrossbow.java
-index 28d7fdeef..874d9f500 100644
+index 6f2f6b9f5..608be9e70 100644
 --- a/src/main/java/net/minecraft/server/ItemCrossbow.java
 +++ b/src/main/java/net/minecraft/server/ItemCrossbow.java
 @@ -199,6 +199,7 @@ public class ItemCrossbow extends ItemProjectileWeapon {
  
              if (flag1) {
-                 object = new EntityFireworks(world, itemstack1, entityliving.locX, entityliving.locY + (double) entityliving.getHeadHeight() - 0.15000000596046448D, entityliving.locZ, true);
+                 object = new EntityFireworks(world, itemstack1, entityliving.locX(), entityliving.getHeadY() - 0.15000000596046448D, entityliving.locZ(), true);
 +                ((EntityFireworks) object).spawningEntity = entityliving.getUniqueID(); // Paper
              } else {
                  object = a(world, entityliving, itemstack, itemstack1);
                  if (flag || f3 != 0.0F) {
 diff --git a/src/main/java/net/minecraft/server/ItemFireworks.java b/src/main/java/net/minecraft/server/ItemFireworks.java
-index 37caa79cb..aea46ffae 100644
+index 914297bad..76b253a50 100644
 --- a/src/main/java/net/minecraft/server/ItemFireworks.java
 +++ b/src/main/java/net/minecraft/server/ItemFireworks.java
-@@ -17,6 +17,7 @@ public class ItemFireworks extends Item {
-             ItemStack itemstack = itemactioncontext.getItemStack();
+@@ -18,6 +18,7 @@ public class ItemFireworks extends Item {
              Vec3D vec3d = itemactioncontext.j();
-             EntityFireworks entityfireworks = new EntityFireworks(world, vec3d.x, vec3d.y, vec3d.z, itemstack);
+             EnumDirection enumdirection = itemactioncontext.getClickedFace();
+             EntityFireworks entityfireworks = new EntityFireworks(world, vec3d.x + (double) enumdirection.getAdjacentX() * 0.15D, vec3d.y + (double) enumdirection.getAdjacentY() * 0.15D, vec3d.z + (double) enumdirection.getAdjacentZ() * 0.15D, itemstack);
 +            entityfireworks.spawningEntity = itemactioncontext.getEntity().getUniqueID(); // Paper
  
              world.addEntity(entityfireworks);
              itemstack.subtract(1);
-@@ -31,7 +32,11 @@ public class ItemFireworks extends Item {
+@@ -32,7 +33,11 @@ public class ItemFireworks extends Item {
              ItemStack itemstack = entityhuman.b(enumhand);
  
              if (!world.isClientSide) {
@@ -90,10 +90,10 @@ index 37caa79cb..aea46ffae 100644
                      itemstack.subtract(1);
                  }
 diff --git a/src/main/java/net/minecraft/server/NBTTagCompound.java b/src/main/java/net/minecraft/server/NBTTagCompound.java
-index 3f6d2676e..b1fd18151 100644
+index 75604dbc6..98deaba12 100644
 --- a/src/main/java/net/minecraft/server/NBTTagCompound.java
 +++ b/src/main/java/net/minecraft/server/NBTTagCompound.java
-@@ -112,7 +112,7 @@ public class NBTTagCompound implements NBTBase {
+@@ -136,7 +136,7 @@ public class NBTTagCompound implements NBTBase {
          return new UUID(this.getLong(s + "Most"), this.getLong(s + "Least"));
      }
  
@@ -103,7 +103,7 @@ index 3f6d2676e..b1fd18151 100644
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
-index d3cbad9a5..219a1e4c0 100644
+index 475b7b004..de74e7214 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
 @@ -2,6 +2,7 @@ package org.bukkit.craftbukkit.entity;
@@ -128,7 +128,7 @@ index d3cbad9a5..219a1e4c0 100644
      private final Random random = new Random();
 @@ -78,4 +82,17 @@ public class CraftFirework extends CraftEntity implements Firework {
      public void setShotAtAngle(boolean shotAtAngle) {
-         getHandle().getDataWatcher().set(EntityFireworks.d, shotAtAngle);
+         getHandle().getDataWatcher().set(EntityFireworks.SHOT_AT_ANGLE, shotAtAngle);
      }
 +
 +    // Paper start
@@ -145,5 +145,5 @@ index d3cbad9a5..219a1e4c0 100644
 +    // Paper end
  }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0140-PlayerTeleportEndGatewayEvent.patch b/Spigot-Server-Patches/0136-PlayerTeleportEndGatewayEvent.patch
similarity index 88%
rename from Spigot-Server-Patches/0140-PlayerTeleportEndGatewayEvent.patch
rename to Spigot-Server-Patches/0136-PlayerTeleportEndGatewayEvent.patch
index a9f7a60b8..69880b6cc 100644
--- a/Spigot-Server-Patches/0140-PlayerTeleportEndGatewayEvent.patch
+++ b/Spigot-Server-Patches/0136-PlayerTeleportEndGatewayEvent.patch
@@ -1,4 +1,4 @@
-From 453ea87e48a77798e95881e9c9f593066e3875c6 Mon Sep 17 00:00:00 2001
+From b399ea16b2848230ce345357ac855fc4e9b19a21 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 31 Dec 2016 21:44:50 -0500
 Subject: [PATCH] PlayerTeleportEndGatewayEvent
@@ -6,10 +6,10 @@ Subject: [PATCH] PlayerTeleportEndGatewayEvent
 Allows you to access the Gateway being used in a teleport event
 
 diff --git a/src/main/java/net/minecraft/server/TileEntityEndGateway.java b/src/main/java/net/minecraft/server/TileEntityEndGateway.java
-index 2f44cf89f..1783f5914 100644
+index b907a3c4d..78fba7937 100644
 --- a/src/main/java/net/minecraft/server/TileEntityEndGateway.java
 +++ b/src/main/java/net/minecraft/server/TileEntityEndGateway.java
-@@ -132,7 +132,7 @@ public class TileEntityEndGateway extends TileEntityEnderPortal implements ITick
+@@ -133,7 +133,7 @@ public class TileEntityEndGateway extends TileEntityEnderPortal implements ITick
                      location.setPitch(player.getLocation().getPitch());
                      location.setYaw(player.getLocation().getYaw());
  
@@ -19,5 +19,5 @@ index 2f44cf89f..1783f5914 100644
                      if (teleEvent.isCancelled()) {
                          return;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0141-Provide-E-TE-Chunk-count-stat-methods.patch b/Spigot-Server-Patches/0137-Provide-E-TE-Chunk-count-stat-methods.patch
similarity index 92%
rename from Spigot-Server-Patches/0141-Provide-E-TE-Chunk-count-stat-methods.patch
rename to Spigot-Server-Patches/0137-Provide-E-TE-Chunk-count-stat-methods.patch
index 007ecf26a..bf4dc8480 100644
--- a/Spigot-Server-Patches/0141-Provide-E-TE-Chunk-count-stat-methods.patch
+++ b/Spigot-Server-Patches/0137-Provide-E-TE-Chunk-count-stat-methods.patch
@@ -1,4 +1,4 @@
-From 66248ba62555ea5329f7a91875e29baa69650ba9 Mon Sep 17 00:00:00 2001
+From 94daa691d441e249ceeffd0b9d6849bfd8417f4b Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 7 Jan 2017 15:24:46 -0500
 Subject: [PATCH] Provide E/TE/Chunk count stat methods
@@ -7,10 +7,10 @@ Provides counts without the ineffeciency of using .getEntities().size()
 which creates copy of the collections.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 253177d1b6..63ef42d860 100644
+index 31213dd20..ebe30cc21 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -274,6 +274,48 @@ public class CraftWorld implements World {
+@@ -275,6 +275,48 @@ public class CraftWorld implements World {
      private int waterAnimalSpawn = -1;
      private int ambientSpawn = -1;
  
@@ -60,5 +60,5 @@ index 253177d1b6..63ef42d860 100644
  
      public CraftWorld(WorldServer world, ChunkGenerator gen, Environment env) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0142-Enforce-Sync-Player-Saves.patch b/Spigot-Server-Patches/0138-Enforce-Sync-Player-Saves.patch
similarity index 85%
rename from Spigot-Server-Patches/0142-Enforce-Sync-Player-Saves.patch
rename to Spigot-Server-Patches/0138-Enforce-Sync-Player-Saves.patch
index 102047ec3..bbe796348 100644
--- a/Spigot-Server-Patches/0142-Enforce-Sync-Player-Saves.patch
+++ b/Spigot-Server-Patches/0138-Enforce-Sync-Player-Saves.patch
@@ -1,4 +1,4 @@
-From 7b82841465226946c7984c2825385fe912d96c59 Mon Sep 17 00:00:00 2001
+From df4a5a4b9a37740c2ad02f8e9f51f4167f1257d6 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 7 Jan 2017 15:41:58 -0500
 Subject: [PATCH] Enforce Sync Player Saves
@@ -7,10 +7,10 @@ Saving players async is extremely dangerous. This will force it to main
 the same way we handle async chunk loads.
 
 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index ee5297dc3..ccf8b7c70 100644
+index b7012b5b6..ce5bd2229 100644
 --- a/src/main/java/net/minecraft/server/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/PlayerList.java
-@@ -930,11 +930,13 @@ public abstract class PlayerList {
+@@ -931,11 +931,13 @@ public abstract class PlayerList {
      }
  
      public void savePlayers() {
@@ -25,5 +25,5 @@ index ee5297dc3..ccf8b7c70 100644
  
      public WhiteList getWhitelist() {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0143-Don-t-allow-entities-to-ride-themselves-572.patch b/Spigot-Server-Patches/0139-Don-t-allow-entities-to-ride-themselves-572.patch
similarity index 82%
rename from Spigot-Server-Patches/0143-Don-t-allow-entities-to-ride-themselves-572.patch
rename to Spigot-Server-Patches/0139-Don-t-allow-entities-to-ride-themselves-572.patch
index 5d843238e..b0ae66362 100644
--- a/Spigot-Server-Patches/0143-Don-t-allow-entities-to-ride-themselves-572.patch
+++ b/Spigot-Server-Patches/0139-Don-t-allow-entities-to-ride-themselves-572.patch
@@ -1,14 +1,14 @@
-From ec3b684b139bf03519280a5324d5cf789fa9f1f6 Mon Sep 17 00:00:00 2001
+From d9e303b768837901e71e950b680879ca1ec734f4 Mon Sep 17 00:00:00 2001
 From: Alfie Cleveland <alfeh@me.com>
 Date: Sun, 8 Jan 2017 04:31:36 +0000
 Subject: [PATCH] Don't allow entities to ride themselves - #572
 
 
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 187fea130..f2be5b5a3 100644
+index 63d44401a..1619d9f41 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
-@@ -2043,6 +2043,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+@@ -2025,6 +2025,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
      }
  
      protected boolean addPassenger(Entity entity) { // CraftBukkit
@@ -17,5 +17,5 @@ index 187fea130..f2be5b5a3 100644
              throw new IllegalStateException("Use x.startRiding(y), not y.addPassenger(x)");
          } else {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0144-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/Spigot-Server-Patches/0140-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
similarity index 81%
rename from Spigot-Server-Patches/0144-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
rename to Spigot-Server-Patches/0140-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
index f915bdf36..12cc732ec 100644
--- a/Spigot-Server-Patches/0144-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
+++ b/Spigot-Server-Patches/0140-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
@@ -1,4 +1,4 @@
-From 81a7559230ad173c9c710bfbc2e21200b6218cc1 Mon Sep 17 00:00:00 2001
+From 72e3bfa7713a5deae4baf261a1fd63a6a5a7ef10 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 19 Dec 2017 16:31:46 -0500
 Subject: [PATCH] ExperienceOrbs API for Reason/Source/Triggering player
@@ -8,7 +8,7 @@ Adds lots of information about why this orb exists.
 Replaces isFromBottle() with logic that persists entity reloads too.
 
 diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
-index 1426bd01ad..880fc52703 100644
+index e485d4a82..3e4fc4ee5 100644
 --- a/src/main/java/net/minecraft/server/Block.java
 +++ b/src/main/java/net/minecraft/server/Block.java
 @@ -511,13 +511,13 @@ public class Block implements IMaterial {
@@ -28,7 +28,7 @@ index 1426bd01ad..880fc52703 100644
          }
  
 diff --git a/src/main/java/net/minecraft/server/ContainerGrindstone.java b/src/main/java/net/minecraft/server/ContainerGrindstone.java
-index 2d2cd09ad1..ed88e208d0 100644
+index 2d2cd09ad..ed88e208d 100644
 --- a/src/main/java/net/minecraft/server/ContainerGrindstone.java
 +++ b/src/main/java/net/minecraft/server/ContainerGrindstone.java
 @@ -81,7 +81,7 @@ public class ContainerGrindstone extends Container {
@@ -41,20 +41,20 @@ index 2d2cd09ad1..ed88e208d0 100644
  
                      world.triggerEffect(1042, blockposition, 0);
 diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
-index cf857b88de..5fae347db2 100644
+index e0d240a89..07abcc1e2 100644
 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
 +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
-@@ -607,7 +607,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
+@@ -616,7 +616,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
              int j = EntityExperienceOrb.getOrbValue(i);
  
              i -= j;
--            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j));
-+            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j, org.bukkit.entity.ExperienceOrb.SpawnReason.ENTITY_DEATH, this.killer, this)); // Paper
+-            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY(), this.locZ(), j));
++            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY(), this.locZ(), j, org.bukkit.entity.ExperienceOrb.SpawnReason.ENTITY_DEATH, this.killer, this)); // Paper
          }
  
      }
 diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
-index eec6de9ad7..35f03947d6 100644
+index 0447800d9..d4275e733 100644
 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 @@ -16,9 +16,59 @@ public class EntityExperienceOrb extends Entity {
@@ -134,102 +134,102 @@ index eec6de9ad7..35f03947d6 100644
  
      @Override
 diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
-index 758559d35d..2a351701b4 100644
+index 8ad0d0db1..8d48154e5 100644
 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java
 +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
-@@ -404,7 +404,7 @@ public class EntityFishingHook extends Entity {
+@@ -401,7 +401,7 @@ public class EntityFishingHook extends Entity {
                      this.world.addEntity(entityitem);
                      // CraftBukkit start - this.random.nextInt(6) + 1 -> playerFishEvent.getExpToDrop()
                      if (playerFishEvent.getExpToDrop() > 0) {
--                        this.owner.world.addEntity(new EntityExperienceOrb(this.owner.world, this.owner.locX, this.owner.locY + 0.5D, this.owner.locZ + 0.5D, playerFishEvent.getExpToDrop()));
-+                        this.owner.world.addEntity(new EntityExperienceOrb(this.owner.world, this.owner.locX, this.owner.locY + 0.5D, this.owner.locZ + 0.5D, playerFishEvent.getExpToDrop(), org.bukkit.entity.ExperienceOrb.SpawnReason.FISHING, this.owner, this)); // Paper
+-                        this.owner.world.addEntity(new EntityExperienceOrb(this.owner.world, this.owner.locX(), this.owner.locY() + 0.5D, this.owner.locZ() + 0.5D, playerFishEvent.getExpToDrop()));
++                        this.owner.world.addEntity(new EntityExperienceOrb(this.owner.world, this.owner.locX(), this.owner.locY() + 0.5D, this.owner.locZ() + 0.5D, playerFishEvent.getExpToDrop(), org.bukkit.entity.ExperienceOrb.SpawnReason.FISHING, this.owner, this)); // Paper
                      }
                      // CraftBukkit end
                      if (itemstack1.getItem().a(TagsItem.FISHES)) {
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 5fa937aeae..6ba5e98400 100644
+index 191e7dfaf..be85a76ac 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
-@@ -385,7 +385,8 @@ public abstract class EntityLiving extends Entity {
+@@ -1377,7 +1377,8 @@ public abstract class EntityLiving extends Entity {
                  int j = EntityExperienceOrb.getOrbValue(i);
  
                  i -= j;
--                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j));
+-                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY(), this.locZ(), j));
 +                EntityLiving attacker = killer != null ? killer : lastDamager; // Paper
-+                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j, this instanceof EntityPlayer ? org.bukkit.entity.ExperienceOrb.SpawnReason.PLAYER_DEATH : org.bukkit.entity.ExperienceOrb.SpawnReason.ENTITY_DEATH, attacker, this)); // Paper
++                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY(), this.locZ(), j, this instanceof EntityPlayer ? org.bukkit.entity.ExperienceOrb.SpawnReason.PLAYER_DEATH : org.bukkit.entity.ExperienceOrb.SpawnReason.ENTITY_DEATH, attacker, this)); // Paper
              }
              this.expToDrop = 0;
-             // CraftBukkit end
+         }
 diff --git a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
-index 4ac5cce062..05970c5644 100644
+index 0bfc0a773..ba2f90cc6 100644
 --- a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
 +++ b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
 @@ -43,7 +43,7 @@ public class EntityThrownExpBottle extends EntityProjectileThrowable {
                  int j = EntityExperienceOrb.getOrbValue(i);
  
                  i -= j;
--                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j));
-+                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j, org.bukkit.entity.ExperienceOrb.SpawnReason.EXP_BOTTLE, getShooter(), this)); // Paper
+-                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY(), this.locZ(), j));
++                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY(), this.locZ(), j, org.bukkit.entity.ExperienceOrb.SpawnReason.EXP_BOTTLE, getShooter(), this)); // Paper
              }
  
              this.die();
 diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java
-index 25c7214ded..594cc70def 100644
+index c73cc9ae4..76296119a 100644
 --- a/src/main/java/net/minecraft/server/EntityTurtle.java
 +++ b/src/main/java/net/minecraft/server/EntityTurtle.java
-@@ -508,7 +508,7 @@ public class EntityTurtle extends EntityAnimal {
+@@ -510,7 +510,7 @@ public class EntityTurtle extends EntityAnimal {
              Random random = this.animal.getRandom();
  
              if (this.b.getGameRules().getBoolean(GameRules.DO_MOB_LOOT)) {
--                this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX, this.animal.locY, this.animal.locZ, random.nextInt(7) + 1));
-+                this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX, this.animal.locY, this.animal.locZ, random.nextInt(7) + 1, org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer)); // Paper;
+-                this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX(), this.animal.locY(), this.animal.locZ(), random.nextInt(7) + 1));
++                this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX(), this.animal.locY(), this.animal.locZ(), random.nextInt(7) + 1, org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer)); // Paper;
              }
  
          }
 diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
-index dcd02930d9..8a5127c5d1 100644
+index 00300c6aa..4aa947e24 100644
 --- a/src/main/java/net/minecraft/server/EntityVillager.java
 +++ b/src/main/java/net/minecraft/server/EntityVillager.java
-@@ -504,7 +504,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
+@@ -506,7 +506,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
          }
  
          if (merchantrecipe.isRewardExp()) {
--            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY + 0.5D, this.locZ, i));
-+            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY + 0.5D, this.locZ, i, org.bukkit.entity.ExperienceOrb.SpawnReason.VILLAGER_TRADE, this.getTrader(), this)); // Paper
+-            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY() + 0.5D, this.locZ(), i));
++            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY() + 0.5D, this.locZ(), i, org.bukkit.entity.ExperienceOrb.SpawnReason.VILLAGER_TRADE, this.getTrader(), this)); // Paper
          }
  
      }
 diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
-index 1753c67aa9..a24e7127d7 100644
+index fa814814f..14ccf33c0 100644
 --- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
 +++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
 @@ -147,7 +147,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
          if (merchantrecipe.isRewardExp()) {
              int i = 3 + this.random.nextInt(4);
  
--            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY + 0.5D, this.locZ, i));
-+            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY + 0.5D, this.locZ, i, org.bukkit.entity.ExperienceOrb.SpawnReason.VILLAGER_TRADE, this.getTrader(), this)); // Paper
+-            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY() + 0.5D, this.locZ(), i));
++            this.world.addEntity(new EntityExperienceOrb(this.world, this.locX(), this.locY() + 0.5D, this.locZ(), i, org.bukkit.entity.ExperienceOrb.SpawnReason.VILLAGER_TRADE, this.getTrader(), this)); // Paper
          }
  
      }
 diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
-index 363a98bece..0cc34400be 100644
+index 1ab2668e9..2b708761d 100644
 --- a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
 +++ b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
 @@ -117,7 +117,7 @@ public class PathfinderGoalBreed extends PathfinderGoal {
              if (this.b.getGameRules().getBoolean(GameRules.DO_MOB_LOOT)) {
                  // CraftBukkit start - use event experience
                  if (experience > 0) {
--                    this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX, this.animal.locY, this.animal.locZ, experience));
-+                    this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX, this.animal.locY, this.animal.locZ, experience, org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer, entityageable)); // Paper
+-                    this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX(), this.animal.locY(), this.animal.locZ(), experience));
++                    this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX(), this.animal.locY(), this.animal.locZ(), experience, org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer, entityageable)); // Paper
                  }
                  // CraftBukkit end
              }
 diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
-index d4df766111..bce3844dd5 100644
+index 46154b281..56f249c43 100644
 --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
 +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
-@@ -364,7 +364,7 @@ public class PlayerInteractManager {
+@@ -374,7 +374,7 @@ public class PlayerInteractManager {
  
                  // Drop event experience
                  if (flag && event != null) {
@@ -239,7 +239,7 @@ index d4df766111..bce3844dd5 100644
  
                  return true;
 diff --git a/src/main/java/net/minecraft/server/SlotFurnaceResult.java b/src/main/java/net/minecraft/server/SlotFurnaceResult.java
-index d2698e847c..edc4a5c34e 100644
+index d2698e847..edc4a5c34 100644
 --- a/src/main/java/net/minecraft/server/SlotFurnaceResult.java
 +++ b/src/main/java/net/minecraft/server/SlotFurnaceResult.java
 @@ -2,7 +2,7 @@ package net.minecraft.server;
@@ -252,23 +252,23 @@ index d2698e847c..edc4a5c34e 100644
  
      public SlotFurnaceResult(EntityHuman entityhuman, IInventory iinventory, int i, int j, int k) {
 diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java
-index 0cb2e6d874..2bbd3663a7 100644
+index 2a51a241e..0419aea92 100644
 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java
 +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java
 @@ -554,7 +554,7 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I
          while (i > 0) {
              j = EntityExperienceOrb.getOrbValue(i);
              i -= j;
--            entityhuman.world.addEntity(new EntityExperienceOrb(entityhuman.world, entityhuman.locX, entityhuman.locY + 0.5D, entityhuman.locZ + 0.5D, j));
-+            entityhuman.world.addEntity(new EntityExperienceOrb(entityhuman.world, entityhuman.locX, entityhuman.locY + 0.5D, entityhuman.locZ + 0.5D, j, org.bukkit.entity.ExperienceOrb.SpawnReason.FURNACE, entityhuman)); // Paper
+-            entityhuman.world.addEntity(new EntityExperienceOrb(entityhuman.world, entityhuman.locX(), entityhuman.locY() + 0.5D, entityhuman.locZ() + 0.5D, j));
++            entityhuman.world.addEntity(new EntityExperienceOrb(entityhuman.world, entityhuman.locX(), entityhuman.locY() + 0.5D, entityhuman.locZ() + 0.5D, j, org.bukkit.entity.ExperienceOrb.SpawnReason.FURNACE, entityhuman)); // Paper
          }
  
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 63ef42d860..0e4f4cda0b 100644
+index ebe30cc21..b7db32833 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1733,7 +1733,7 @@ public class CraftWorld implements World {
+@@ -1749,7 +1749,7 @@ public class CraftWorld implements World {
          } else if (TNTPrimed.class.isAssignableFrom(clazz)) {
              entity = new EntityTNTPrimed(world, x, y, z, null);
          } else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
@@ -278,7 +278,7 @@ index 63ef42d860..0e4f4cda0b 100644
              entity = new EntityLightning(world, x, y, z, false);
          } else if (Firework.class.isAssignableFrom(clazz)) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
-index 1b512cc45c..fbad045675 100644
+index 1b512cc45..fbad04567 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
 @@ -20,6 +20,18 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb {
@@ -301,5 +301,5 @@ index 1b512cc45c..fbad045675 100644
      public EntityExperienceOrb getHandle() {
          return (EntityExperienceOrb) entity;
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0145-Cap-Entity-Collisions.patch b/Spigot-Server-Patches/0141-Cap-Entity-Collisions.patch
similarity index 87%
rename from Spigot-Server-Patches/0145-Cap-Entity-Collisions.patch
rename to Spigot-Server-Patches/0141-Cap-Entity-Collisions.patch
index 59af8b325..e10c637a5 100644
--- a/Spigot-Server-Patches/0145-Cap-Entity-Collisions.patch
+++ b/Spigot-Server-Patches/0141-Cap-Entity-Collisions.patch
@@ -1,4 +1,4 @@
-From e4d0e2c4c05de3b2d3f6554050f3e1cae9bce922 Mon Sep 17 00:00:00 2001
+From c667019226f7a78de46e1e18cdc92176f0b1044c Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 22 Jan 2017 18:07:56 -0500
 Subject: [PATCH] Cap Entity Collisions
@@ -12,7 +12,7 @@ just as it does in Vanilla, but entity pushing logic will be capped.
 You can set this to 0 to disable collisions.
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 0d2537ab8..2d01984f0 100644
+index bf11448bc..e00e1e8f6 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -320,4 +320,10 @@ public class PaperWorldConfig {
@@ -27,10 +27,10 @@ index 0d2537ab8..2d01984f0 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index f4188fc75..482864ac6 100644
+index 1619d9f41..fcfe8f550 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
-@@ -184,6 +184,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+@@ -189,6 +189,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
      public final boolean defaultActivationState;
      public long activatedTick = Integer.MIN_VALUE;
      public boolean fromMobSpawner;
@@ -39,10 +39,10 @@ index f4188fc75..482864ac6 100644
      // Spigot end
  
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 6ba5e9840..79edb3b3c 100644
+index be85a76ac..6379b361a 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
-@@ -2560,8 +2560,11 @@ public abstract class EntityLiving extends Entity {
+@@ -2621,8 +2621,11 @@ public abstract class EntityLiving extends Entity {
                  }
              }
  
@@ -53,8 +53,8 @@ index 6ba5e9840..79edb3b3c 100644
 +                entity.numCollisions++; // Paper
 +                numCollisions++; // Paper
  
-                 this.D(entity);
+                 this.C(entity);
              }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0146-Remove-CraftScheduler-Async-Task-Debugger.patch b/Spigot-Server-Patches/0142-Remove-CraftScheduler-Async-Task-Debugger.patch
similarity index 95%
rename from Spigot-Server-Patches/0146-Remove-CraftScheduler-Async-Task-Debugger.patch
rename to Spigot-Server-Patches/0142-Remove-CraftScheduler-Async-Task-Debugger.patch
index 87388f856..f4491eacf 100644
--- a/Spigot-Server-Patches/0146-Remove-CraftScheduler-Async-Task-Debugger.patch
+++ b/Spigot-Server-Patches/0142-Remove-CraftScheduler-Async-Task-Debugger.patch
@@ -1,4 +1,4 @@
-From 8a89d0054aa70d747bc10d9a0f546df94ab6bb3e Mon Sep 17 00:00:00 2001
+From 37411084342435f6aad5b3250a8c95300c63489c Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 5 Feb 2017 00:04:04 -0500
 Subject: [PATCH] Remove CraftScheduler Async Task Debugger
@@ -9,7 +9,7 @@ One report of a suspected memory leak with the system.
 This adds additional overhead to asynchronous task dispatching
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index 552daf4376..e102be583c 100644
+index 552daf437..e102be583 100644
 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
 +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
 @@ -414,7 +414,7 @@ public class CraftScheduler implements BukkitScheduler {
@@ -47,5 +47,5 @@ index 552daf4376..e102be583c 100644
  
      @Deprecated
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0147-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch b/Spigot-Server-Patches/0143-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch
similarity index 61%
rename from Spigot-Server-Patches/0147-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch
rename to Spigot-Server-Patches/0143-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch
index f581d9f8a..8c904589f 100644
--- a/Spigot-Server-Patches/0147-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch
+++ b/Spigot-Server-Patches/0143-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch
@@ -1,23 +1,23 @@
-From 3728f0b19240c5f228fb7caa3e467ab7f78f9155 Mon Sep 17 00:00:00 2001
+From ea0c748587a2f8db9942b79451971ba63d98d112 Mon Sep 17 00:00:00 2001
 From: Brokkonaut <hannos17@gmx.de>
 Date: Tue, 7 Feb 2017 16:55:35 -0600
 Subject: [PATCH] Make targetSize more aggressive in the chunk unload queue
 
 
 diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
-index 14b0875eee..63140fb642 100644
+index 1d4eddd93..492d1538f 100644
 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
 +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
-@@ -109,7 +109,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
-         this.v = new AtomicInteger();
+@@ -110,7 +110,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
+         this.u = new AtomicInteger();
          this.playerMap = new PlayerMap();
          this.trackedEntities = new Int2ObjectOpenHashMap();
--        this.A = Queues.newConcurrentLinkedQueue();
-+        this.A = new com.destroystokyo.paper.utils.CachedSizeConcurrentLinkedQueue<>(); // Paper
+-        this.z = Queues.newConcurrentLinkedQueue();
++        this.z = new com.destroystokyo.paper.utils.CachedSizeConcurrentLinkedQueue<>(); // Paper
          this.definedStructureManager = definedstructuremanager;
-         this.x = worldserver.getWorldProvider().getDimensionManager().a(file);
+         this.w = worldserver.getWorldProvider().getDimensionManager().a(file);
          this.world = worldserver;
-@@ -354,7 +354,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
+@@ -356,7 +356,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
          // Spigot start
          org.spigotmc.SlackActivityAccountant activityAccountant = this.world.getMinecraftServer().slackActivityAccountant;
          activityAccountant.startActivity(0.5);
@@ -26,17 +26,16 @@ index 14b0875eee..63140fb642 100644
          // Spigot end
          while (longiterator.hasNext()) { // Spigot
              long j = longiterator.nextLong();
-@@ -376,7 +376,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
+@@ -378,7 +378,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
  
          Runnable runnable;
  
--        while ((booleansupplier.getAsBoolean() || this.A.size() > 2000) && (runnable = (Runnable) this.A.poll()) != null) {
-+        int queueTarget = Math.min(this.A.size() - 100, (int) (this.A.size() * UNLOAD_QUEUE_RESIZE_FACTOR)); // Paper - Target this queue as well
-+
-+        while ((booleansupplier.getAsBoolean() || this.A.size() > queueTarget) && (runnable = (Runnable) this.A.poll()) != null) { // Paper - Target this queue as well
+-        while ((booleansupplier.getAsBoolean() || this.z.size() > 2000) && (runnable = (Runnable) this.z.poll()) != null) {
++        int queueTarget = Math.min(this.z.size() - 100, (int) (this.z.size() * UNLOAD_QUEUE_RESIZE_FACTOR)); // Paper - Target this queue as well
++        while ((booleansupplier.getAsBoolean() || this.z.size() > queueTarget) && (runnable = (Runnable) this.z.poll()) != null) { // Paper - Target this queue as well
              runnable.run();
          }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0148-Do-not-let-armorstands-drown.patch b/Spigot-Server-Patches/0144-Do-not-let-armorstands-drown.patch
similarity index 70%
rename from Spigot-Server-Patches/0148-Do-not-let-armorstands-drown.patch
rename to Spigot-Server-Patches/0144-Do-not-let-armorstands-drown.patch
index 2aac8c92e..053e16201 100644
--- a/Spigot-Server-Patches/0148-Do-not-let-armorstands-drown.patch
+++ b/Spigot-Server-Patches/0144-Do-not-let-armorstands-drown.patch
@@ -1,14 +1,14 @@
-From 2f2e638edbbacbf9356bc1679b56ac781e14df12 Mon Sep 17 00:00:00 2001
+From fb88fcc7b5baa69684dd4771823d7a4a8aa14ed2 Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sat, 18 Feb 2017 19:29:58 -0600
 Subject: [PATCH] Do not let armorstands drown
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
-index 3e78b152f..9e6633a1b 100644
+index 37ce4d48b..80bf58b05 100644
 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java
 +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
-@@ -810,5 +810,10 @@ public class EntityArmorStand extends EntityLiving {
+@@ -826,5 +826,10 @@ public class EntityArmorStand extends EntityLiving {
              super.move(moveType, vec3d);
          }
      }
@@ -20,26 +20,26 @@ index 3e78b152f..9e6633a1b 100644
      // Paper end
  }
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 79edb3b3c..a016cbb21 100644
+index 6379b361a..f6cb18639 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
-@@ -223,6 +223,7 @@ public abstract class EntityLiving extends Entity {
+@@ -227,6 +227,7 @@ public abstract class EntityLiving extends Entity {
          super.a(d0, flag, iblockdata, blockposition);
      }
  
-+    public boolean canBreatheUnderwater() { return this.cm(); } // Paper - OBFHELPER
-     public boolean cm() {
++    public boolean canBreatheUnderwater() { return this.cB(); } // Paper - OBFHELPER
+     public boolean cB() {
          return this.getMonsterType() == EnumMonsterType.UNDEAD;
      }
-@@ -262,7 +263,7 @@ public abstract class EntityLiving extends Entity {
+@@ -266,7 +267,7 @@ public abstract class EntityLiving extends Entity {
  
          if (this.isAlive()) {
-             if (this.a(TagsFluid.WATER) && this.world.getType(new BlockPosition(this.locX, this.locY + (double) this.getHeadHeight(), this.locZ)).getBlock() != Blocks.BUBBLE_COLUMN) {
--                if (!this.cm() && !MobEffectUtil.c(this) && !flag1) {
+             if (this.a(TagsFluid.WATER) && this.world.getType(new BlockPosition(this.locX(), this.getHeadY(), this.locZ())).getBlock() != Blocks.BUBBLE_COLUMN) {
+-                if (!this.cB() && !MobEffectUtil.c(this) && !flag1) {
 +                if (!this.canBreatheUnderwater() && !MobEffectUtil.c(this) && !flag1) {  // Paper - use OBFHELPER so it can be overridden
                      this.setAirTicks(this.l(this.getAirTicks()));
                      if (this.getAirTicks() == -20) {
                          this.setAirTicks(0);
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0149-Properly-handle-async-calls-to-restart-the-server.patch b/Spigot-Server-Patches/0145-Properly-handle-async-calls-to-restart-the-server.patch
similarity index 95%
rename from Spigot-Server-Patches/0149-Properly-handle-async-calls-to-restart-the-server.patch
rename to Spigot-Server-Patches/0145-Properly-handle-async-calls-to-restart-the-server.patch
index 24337dffb..dc74a535c 100644
--- a/Spigot-Server-Patches/0149-Properly-handle-async-calls-to-restart-the-server.patch
+++ b/Spigot-Server-Patches/0145-Properly-handle-async-calls-to-restart-the-server.patch
@@ -1,4 +1,4 @@
-From 7dc83c0fff37f349a9d529e535df8226404a49b2 Mon Sep 17 00:00:00 2001
+From 6be55762cf5ee4507a7f72325554765c96dc7d2c Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Fri, 12 May 2017 23:34:11 -0500
 Subject: [PATCH] Properly handle async calls to restart the server
@@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result
 in corruption/dataloss.
 
 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 6a2933f4ff..f621350ea6 100644
+index 38bf3ea44..a180ba6b0 100644
 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
 +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
 @@ -88,6 +88,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -41,7 +41,7 @@ index 6a2933f4ff..f621350ea6 100644
      private boolean isStopped;
      private int ticks;
      protected final Proxy proxy;
-@@ -714,7 +715,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -722,7 +723,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
          if (this.playerList != null) {
              MinecraftServer.LOGGER.info("Saving players");
              this.playerList.savePlayers();
@@ -50,7 +50,7 @@ index 6a2933f4ff..f621350ea6 100644
              try { Thread.sleep(100); } catch (InterruptedException ex) {} // CraftBukkit - SPIGOT-625 - give server at least a chance to send packets
          }
  
-@@ -768,8 +769,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -776,8 +777,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
          return this.isRunning;
      }
  
@@ -64,7 +64,7 @@ index 6a2933f4ff..f621350ea6 100644
          if (flag) {
              try {
                  this.serverThread.join();
-@@ -779,6 +785,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -787,6 +793,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
          }
  
      }
@@ -73,10 +73,10 @@ index 6a2933f4ff..f621350ea6 100644
      // Spigot Start
      private static double calcTps(double avg, double exp, double tps)
 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index ccf8b7c707..d23e4e5e3d 100644
+index ce5bd2229..1eb53f67e 100644
 --- a/src/main/java/net/minecraft/server/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/PlayerList.java
-@@ -1041,10 +1041,15 @@ public abstract class PlayerList {
+@@ -1042,10 +1042,15 @@ public abstract class PlayerList {
          entityplayer.playerInteractManager.b(generatoraccess.getWorldData().getGameType());
      }
  
@@ -92,8 +92,8 @@ index ccf8b7c707..d23e4e5e3d 100644
 +            player.playerConnection.disconnect(!isRestarting ? this.server.server.getShutdownMessage() : org.spigotmc.SpigotConfig.restartMessage); // CraftBukkit - add custom shutdown message // Paper - add isRestarting flag
          }
          // CraftBukkit end
-         // Paper start - Remove collideRule team if it exists
-@@ -1055,6 +1060,7 @@ public abstract class PlayerList {
+ 
+@@ -1057,6 +1062,7 @@ public abstract class PlayerList {
          }
          // Paper end
      }
@@ -102,7 +102,7 @@ index ccf8b7c707..d23e4e5e3d 100644
      // CraftBukkit start
      public void sendMessage(IChatBaseComponent[] iChatBaseComponents) {
 diff --git a/src/main/java/org/spigotmc/RestartCommand.java b/src/main/java/org/spigotmc/RestartCommand.java
-index ccea803f58..aefea3a9a8 100644
+index ccea803f5..aefea3a9a 100644
 --- a/src/main/java/org/spigotmc/RestartCommand.java
 +++ b/src/main/java/org/spigotmc/RestartCommand.java
 @@ -46,86 +46,134 @@ public class RestartCommand extends Command
@@ -307,5 +307,5 @@ index ccea803f58..aefea3a9a8 100644
 +
  }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0150-Add-system-property-to-disable-book-size-limits.patch b/Spigot-Server-Patches/0146-Add-system-property-to-disable-book-size-limits.patch
similarity index 96%
rename from Spigot-Server-Patches/0150-Add-system-property-to-disable-book-size-limits.patch
rename to Spigot-Server-Patches/0146-Add-system-property-to-disable-book-size-limits.patch
index a7917d710..fb060f2ad 100644
--- a/Spigot-Server-Patches/0150-Add-system-property-to-disable-book-size-limits.patch
+++ b/Spigot-Server-Patches/0146-Add-system-property-to-disable-book-size-limits.patch
@@ -1,4 +1,4 @@
-From bde502f65fe15b840f7ab6904827592d8dedd89c Mon Sep 17 00:00:00 2001
+From 2d1817280a0d11836091e26148edcc8ba09a689a Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sat, 13 May 2017 20:11:21 -0500
 Subject: [PATCH] Add system property to disable book size limits
@@ -11,7 +11,7 @@ to make books with as much data as they want. Do not use this without
 limiting incoming data from packets in some other way.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
-index 804fe9499..7262920c1 100644
+index 0e89025a0..1bf74bdae 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
 @@ -36,6 +36,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
@@ -57,5 +57,5 @@ index 804fe9499..7262920c1 100644
              }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0151-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/Spigot-Server-Patches/0147-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
similarity index 84%
rename from Spigot-Server-Patches/0151-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
rename to Spigot-Server-Patches/0147-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
index bfb46bd74..d623f91ed 100644
--- a/Spigot-Server-Patches/0151-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
+++ b/Spigot-Server-Patches/0147-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
@@ -1,4 +1,4 @@
-From 4e20ea037a039e8799ae11a8767bb7eb482b6865 Mon Sep 17 00:00:00 2001
+From 2efa7347f652e1e7343139018169984a046c3812 Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Tue, 16 May 2017 21:29:08 -0500
 Subject: [PATCH] Add option to make parrots stay on shoulders despite movement
@@ -11,7 +11,7 @@ I suspect Mojang may switch to this behavior before full release.
 To be converted into a Paper-API event at some point in the future?
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 2d01984f0..42c4a9445 100644
+index e00e1e8f6..f151e43c3 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -326,4 +326,10 @@ public class PaperWorldConfig {
@@ -26,25 +26,25 @@ index 2d01984f0..42c4a9445 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index 4ceac0a2f..c162c6b73 100644
+index 242d0df1c..673e2b79d 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
-@@ -451,7 +451,7 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -463,7 +463,7 @@ public abstract class EntityHuman extends EntityLiving {
          this.j(this.getShoulderEntityLeft());
          this.j(this.getShoulderEntityRight());
-         if (!this.world.isClientSide && (this.fallDistance > 0.5F || this.isInWater() || this.isPassenger()) || this.abilities.isFlying || this.isSleeping()) {
+         if (!this.world.isClientSide && (this.fallDistance > 0.5F || this.isInWater()) || this.abilities.isFlying || this.isSleeping()) {
 -            this.releaseShoulderEntities();
 +            if (!this.world.paperConfig.parrotsHangOnBetter) this.releaseShoulderEntities(); // Paper - Hang on!
          }
  
      }
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 068827e2e..579c551f9 100644
+index cc6a2aaeb..01ab2e151 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -1756,6 +1756,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1772,6 +1772,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
          switch (packetplayinentityaction.c()) {
-             case START_SNEAKING:
+             case PRESS_SHIFT_KEY:
                  this.player.setSneaking(true);
 +
 +            // Paper start - Hang on!
@@ -54,8 +54,8 @@ index 068827e2e..579c551f9 100644
 +            // Paper end
 +
                  break;
-             case STOP_SNEAKING:
+             case RELEASE_SHIFT_KEY:
                  this.player.setSneaking(false);
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0152-Add-configuration-option-to-prevent-player-names-fro.patch b/Spigot-Server-Patches/0148-Add-configuration-option-to-prevent-player-names-fro.patch
similarity index 87%
rename from Spigot-Server-Patches/0152-Add-configuration-option-to-prevent-player-names-fro.patch
rename to Spigot-Server-Patches/0148-Add-configuration-option-to-prevent-player-names-fro.patch
index d3b078c62..b923639f3 100644
--- a/Spigot-Server-Patches/0152-Add-configuration-option-to-prevent-player-names-fro.patch
+++ b/Spigot-Server-Patches/0148-Add-configuration-option-to-prevent-player-names-fro.patch
@@ -1,4 +1,4 @@
-From 047c0fb7c02a50bdd6e251d0d179adf2210b76c4 Mon Sep 17 00:00:00 2001
+From 0c7cb8c62714ae93958efc38d6b7a613fccc339c Mon Sep 17 00:00:00 2001
 From: kashike <kashike@vq.lc>
 Date: Fri, 9 Jun 2017 07:24:34 -0700
 Subject: [PATCH] Add configuration option to prevent player names from being
@@ -6,7 +6,7 @@ Subject: [PATCH] Add configuration option to prevent player names from being
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index b5a50afd24..11d2a1013b 100644
+index 5a83fc21c..295b8390c 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -259,4 +259,9 @@ public class PaperConfig {
@@ -20,10 +20,10 @@ index b5a50afd24..11d2a1013b 100644
 +    }
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index ca6158dc73..8e6f23d278 100644
+index 811c33b90..77bb68605 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2096,5 +2096,10 @@ public final class CraftServer implements Server {
+@@ -2099,5 +2099,10 @@ public final class CraftServer implements Server {
          commandMap.registerServerAliases();
          return true;
      }
@@ -35,5 +35,5 @@ index ca6158dc73..8e6f23d278 100644
      // Paper end
  }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0153-Use-TerminalConsoleAppender-for-console-improvements.patch b/Spigot-Server-Patches/0149-Use-TerminalConsoleAppender-for-console-improvements.patch
similarity index 97%
rename from Spigot-Server-Patches/0153-Use-TerminalConsoleAppender-for-console-improvements.patch
rename to Spigot-Server-Patches/0149-Use-TerminalConsoleAppender-for-console-improvements.patch
index 56dffe41b..b0121a0ce 100644
--- a/Spigot-Server-Patches/0153-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/Spigot-Server-Patches/0149-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -1,4 +1,4 @@
-From f00c943e438f24b1dc0c345a59fb52431b5a127d Mon Sep 17 00:00:00 2001
+From 9c98c9243d9cc8b495dce4ef15ed0df94c8d0df5 Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Fri, 9 Jun 2017 19:03:43 +0200
 Subject: [PATCH] Use TerminalConsoleAppender for console improvements
@@ -19,7 +19,7 @@ Other changes:
     configuration
 
 diff --git a/pom.xml b/pom.xml
-index 04b0dd9a7..58b14a740 100644
+index ae1de6d01..f716e9870 100644
 --- a/pom.xml
 +++ b/pom.xml
 @@ -41,10 +41,27 @@
@@ -143,7 +143,7 @@ index 000000000..685deaa0e
 +
 +}
 diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
-index 895049287..92d0aa6d6 100644
+index a5a8bad4f..dfe806291 100644
 --- a/src/main/java/net/minecraft/server/DedicatedServer.java
 +++ b/src/main/java/net/minecraft/server/DedicatedServer.java
 @@ -85,6 +85,9 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -185,7 +185,7 @@ index 895049287..92d0aa6d6 100644
          System.setOut(new PrintStream(new LoggerOutputStream(logger, Level.INFO), true));
          System.setErr(new PrintStream(new LoggerOutputStream(logger, Level.WARN), true));
 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 759c71397..6c9a43d66 100644
+index a180ba6b0..7df3ae0ec 100644
 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
 +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
 @@ -57,7 +57,7 @@ import org.apache.commons.lang3.Validate;
@@ -197,7 +197,7 @@ index 759c71397..6c9a43d66 100644
  import org.bukkit.Bukkit;
  import org.bukkit.craftbukkit.CraftServer;
  import org.bukkit.craftbukkit.Main;
-@@ -158,7 +158,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -161,7 +161,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
      public OptionSet options;
      public org.bukkit.command.ConsoleCommandSender console;
      public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
@@ -206,7 +206,7 @@ index 759c71397..6c9a43d66 100644
      public static int currentTick = 0; // Paper - Further improve tick loop
      public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
      public int autosavePeriod;
-@@ -207,7 +207,9 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -212,7 +212,9 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
          this.K = s;
          // CraftBukkit start
          this.options = options;
@@ -216,7 +216,7 @@ index 759c71397..6c9a43d66 100644
          if (System.console() == null && System.getProperty("jline.terminal") == null) {
              System.setProperty("jline.terminal", "jline.UnsupportedTerminal");
              Main.useJline = false;
-@@ -228,6 +230,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -233,6 +235,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
                  LOGGER.warn((String) null, ex);
              }
          }
@@ -225,7 +225,7 @@ index 759c71397..6c9a43d66 100644
          Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this));
      }
      // CraftBukkit end
-@@ -942,7 +946,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -950,7 +954,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
              } finally {
                  // CraftBukkit start - Restore terminal to original settings
                  try {
@@ -234,7 +234,7 @@ index 759c71397..6c9a43d66 100644
                  } catch (Exception ignored) {
                  }
                  // CraftBukkit end
-@@ -1446,7 +1450,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -1458,7 +1462,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
  
      @Override
      public void sendMessage(IChatBaseComponent ichatbasecomponent) {
@@ -244,7 +244,7 @@ index 759c71397..6c9a43d66 100644
  
      public KeyPair getKeyPair() {
 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index d23e4e5e3..6a7770798 100644
+index 1eb53f67e..308bc3baf 100644
 --- a/src/main/java/net/minecraft/server/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/PlayerList.java
 @@ -76,8 +76,7 @@ public abstract class PlayerList {
@@ -256,9 +256,9 @@ index d23e4e5e3..6a7770798 100644
 +        minecraftserver.console = new com.destroystokyo.paper.console.TerminalConsoleCommandSender(); // Paper
          // CraftBukkit end
  
-         this.k = new GameProfileBanList(PlayerList.a);
+         this.k = new GameProfileBanList(PlayerList.b);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8e6f23d27..4c94e85e4 100644
+index 77bb68605..cd58906ad 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 @@ -41,7 +41,6 @@ import java.util.function.Consumer;
@@ -269,7 +269,7 @@ index 8e6f23d27..4c94e85e4 100644
  import net.minecraft.server.Advancement;
  import net.minecraft.server.ArgumentEntity;
  import net.minecraft.server.Block;
-@@ -1093,9 +1092,13 @@ public final class CraftServer implements Server {
+@@ -1094,9 +1093,13 @@ public final class CraftServer implements Server {
          return logger;
      }
  
@@ -284,7 +284,7 @@ index 8e6f23d27..4c94e85e4 100644
      @Override
      public PluginCommand getPluginCommand(String name) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 78534c307..b0bb086a9 100644
+index 4a4e56e76..b562e95dc 100644
 --- a/src/main/java/org/bukkit/craftbukkit/Main.java
 +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
 @@ -13,7 +13,7 @@ import java.util.logging.Logger;
@@ -608,5 +608,5 @@ index 490a9acc7..08b6bb7f9 100644
              <AppenderRef ref="TerminalConsole" level="info"/>
          </Root>
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0154-provide-a-configurable-option-to-disable-creeper-lin.patch b/Spigot-Server-Patches/0150-provide-a-configurable-option-to-disable-creeper-lin.patch
similarity index 85%
rename from Spigot-Server-Patches/0154-provide-a-configurable-option-to-disable-creeper-lin.patch
rename to Spigot-Server-Patches/0150-provide-a-configurable-option-to-disable-creeper-lin.patch
index 75343920b..2dcae93ff 100644
--- a/Spigot-Server-Patches/0154-provide-a-configurable-option-to-disable-creeper-lin.patch
+++ b/Spigot-Server-Patches/0150-provide-a-configurable-option-to-disable-creeper-lin.patch
@@ -1,4 +1,4 @@
-From bf0e527e71fd52aa2bcc2fcd66a19a6fdbc90c5a Mon Sep 17 00:00:00 2001
+From 221b72d1ca538a47727288b31db4e4069ec289e7 Mon Sep 17 00:00:00 2001
 From: Shane Freeder <theboyetronic@gmail.com>
 Date: Sun, 11 Jun 2017 21:01:18 +0100
 Subject: [PATCH] provide a configurable option to disable creeper lingering
@@ -6,7 +6,7 @@ Subject: [PATCH] provide a configurable option to disable creeper lingering
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 42c4a9445..891a52b2a 100644
+index f151e43c3..c145e27cc 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -332,4 +332,10 @@ public class PaperWorldConfig {
@@ -21,18 +21,18 @@ index 42c4a9445..891a52b2a 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
-index 53b1e2ac0..100a1a10c 100644
+index 859b52845..dabe40c5f 100644
 --- a/src/main/java/net/minecraft/server/EntityCreeper.java
 +++ b/src/main/java/net/minecraft/server/EntityCreeper.java
-@@ -226,7 +226,7 @@ public class EntityCreeper extends EntityMonster {
+@@ -228,7 +228,7 @@ public class EntityCreeper extends EntityMonster {
      private void createEffectCloud() {
          Collection<MobEffect> collection = this.getEffects();
  
 -        if (!collection.isEmpty()) {
 +        if (!collection.isEmpty() && !world.paperConfig.disableCreeperLingeringEffect) { // Paper
-             EntityAreaEffectCloud entityareaeffectcloud = new EntityAreaEffectCloud(this.world, this.locX, this.locY, this.locZ);
+             EntityAreaEffectCloud entityareaeffectcloud = new EntityAreaEffectCloud(this.world, this.locX(), this.locY(), this.locZ());
  
              entityareaeffectcloud.setSource(this); // CraftBukkit
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0155-Item-canEntityPickup.patch b/Spigot-Server-Patches/0151-Item-canEntityPickup.patch
similarity index 85%
rename from Spigot-Server-Patches/0155-Item-canEntityPickup.patch
rename to Spigot-Server-Patches/0151-Item-canEntityPickup.patch
index c37986995..abbc303da 100644
--- a/Spigot-Server-Patches/0155-Item-canEntityPickup.patch
+++ b/Spigot-Server-Patches/0151-Item-canEntityPickup.patch
@@ -1,17 +1,17 @@
-From 4e73cb7abb2e428e3f77a0a75b9b45d63aa2c43d Mon Sep 17 00:00:00 2001
+From d5f7773be6ecef58bcea504533c3bb613ee1ceb5 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Fri, 5 May 2017 03:57:17 -0500
 Subject: [PATCH] Item#canEntityPickup
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
-index 6e304492cf..a14d490ade 100644
+index dac3540c6..eadac07f6 100644
 --- a/src/main/java/net/minecraft/server/EntityInsentient.java
 +++ b/src/main/java/net/minecraft/server/EntityInsentient.java
-@@ -511,6 +511,11 @@ public abstract class EntityInsentient extends EntityLiving {
+@@ -513,6 +513,11 @@ public abstract class EntityInsentient extends EntityLiving {
                  EntityItem entityitem = (EntityItem) iterator.next();
  
-                 if (!entityitem.dead && !entityitem.getItemStack().isEmpty() && !entityitem.q()) {
+                 if (!entityitem.dead && !entityitem.getItemStack().isEmpty() && !entityitem.p()) {
 +                    // Paper Start
 +                    if (!entityitem.canMobPickup) {
 +                        continue;
@@ -21,10 +21,10 @@ index 6e304492cf..a14d490ade 100644
                  }
              }
 diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
-index 0569ad9af8..c0b81223f1 100644
+index f657607a1..9973fc0b1 100644
 --- a/src/main/java/net/minecraft/server/EntityItem.java
 +++ b/src/main/java/net/minecraft/server/EntityItem.java
-@@ -19,6 +19,7 @@ public class EntityItem extends Entity {
+@@ -20,6 +20,7 @@ public class EntityItem extends Entity {
      private UUID owner;
      public final float b;
      private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit
@@ -33,7 +33,7 @@ index 0569ad9af8..c0b81223f1 100644
      public EntityItem(EntityTypes<? extends EntityItem> entitytypes, World world) {
          super(entitytypes, world);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
-index cc593fbc99..3f552b5905 100644
+index cc593fbc9..3f552b590 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
 @@ -48,6 +48,16 @@ public class CraftItem extends CraftEntity implements Item {
@@ -54,5 +54,5 @@ index cc593fbc99..3f552b5905 100644
      public String toString() {
          return "CraftItem";
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0156-PlayerPickupItemEvent-setFlyAtPlayer.patch b/Spigot-Server-Patches/0152-PlayerPickupItemEvent-setFlyAtPlayer.patch
similarity index 82%
rename from Spigot-Server-Patches/0156-PlayerPickupItemEvent-setFlyAtPlayer.patch
rename to Spigot-Server-Patches/0152-PlayerPickupItemEvent-setFlyAtPlayer.patch
index 19111064d..a9d79bc47 100644
--- a/Spigot-Server-Patches/0156-PlayerPickupItemEvent-setFlyAtPlayer.patch
+++ b/Spigot-Server-Patches/0152-PlayerPickupItemEvent-setFlyAtPlayer.patch
@@ -1,14 +1,14 @@
-From 9ebb4b20c387475c0154b08cfe1b769899387fee Mon Sep 17 00:00:00 2001
+From d564e48afbfbcf86f14ef7d91940a5fc82b7b9ee Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Sun, 7 May 2017 06:26:09 -0500
 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 27decbd06..17c291569 100644
+index 9973fc0b1..4b2e19f30 100644
 --- a/src/main/java/net/minecraft/server/EntityItem.java
 +++ b/src/main/java/net/minecraft/server/EntityItem.java
-@@ -318,6 +318,7 @@ public class EntityItem extends Entity {
+@@ -322,6 +322,7 @@ public class EntityItem extends Entity {
              // CraftBukkit start - fire PlayerPickupItemEvent
              int canHold = entityhuman.inventory.canHold(itemstack);
              int remaining = i - canHold;
@@ -16,7 +16,7 @@ index 27decbd06..17c291569 100644
  
              if (this.pickupDelay <= 0 && canHold > 0) {
                  itemstack.setCount(canHold);
-@@ -325,8 +326,14 @@ public class EntityItem extends Entity {
+@@ -329,8 +330,14 @@ public class EntityItem extends Entity {
                  PlayerPickupItemEvent playerEvent = new PlayerPickupItemEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), (org.bukkit.entity.Item) this.getBukkitEntity(), remaining);
                  playerEvent.setCancelled(!entityhuman.canPickUpLoot);
                  this.world.getServer().getPluginManager().callEvent(playerEvent);
@@ -31,10 +31,10 @@ index 27decbd06..17c291569 100644
                      return;
                  }
  
-@@ -350,7 +357,11 @@ public class EntityItem extends Entity {
+@@ -354,7 +361,11 @@ public class EntityItem extends Entity {
              // CraftBukkit end
  
-             if (this.pickupDelay == 0 && (this.owner == null || 6000 - this.age <= 200 || this.owner.equals(entityhuman.getUniqueID())) && entityhuman.inventory.pickup(itemstack)) {
+             if (this.pickupDelay == 0 && (this.owner == null || this.owner.equals(entityhuman.getUniqueID())) && entityhuman.inventory.pickup(itemstack)) {
 -                entityhuman.receive(this, i);
 +                // Paper Start
 +                if (flyAtPlayer) {
@@ -45,5 +45,5 @@ index 27decbd06..17c291569 100644
                      this.die();
                      itemstack.setCount(i);
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0157-PlayerAttemptPickupItemEvent.patch b/Spigot-Server-Patches/0153-PlayerAttemptPickupItemEvent.patch
similarity index 87%
rename from Spigot-Server-Patches/0157-PlayerAttemptPickupItemEvent.patch
rename to Spigot-Server-Patches/0153-PlayerAttemptPickupItemEvent.patch
index 645f47555..c8e051ded 100644
--- a/Spigot-Server-Patches/0157-PlayerAttemptPickupItemEvent.patch
+++ b/Spigot-Server-Patches/0153-PlayerAttemptPickupItemEvent.patch
@@ -1,14 +1,14 @@
-From 5908c0f26e8452837d9a92f7bf31821e27639437 Mon Sep 17 00:00:00 2001
+From 48df7a39fc7f335f7b3b6e7404156087612219af Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Sun, 11 Jun 2017 16:30:30 -0500
 Subject: [PATCH] PlayerAttemptPickupItemEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
-index 1baff88c4a..f1f86ef8b5 100644
+index 4b2e19f30..fcc1c0993 100644
 --- a/src/main/java/net/minecraft/server/EntityItem.java
 +++ b/src/main/java/net/minecraft/server/EntityItem.java
-@@ -8,6 +8,7 @@ import javax.annotation.Nullable;
+@@ -9,6 +9,7 @@ import javax.annotation.Nullable;
  import org.bukkit.event.entity.EntityPickupItemEvent;
  import org.bukkit.event.player.PlayerPickupItemEvent;
  // CraftBukkit end
@@ -16,7 +16,7 @@ index 1baff88c4a..f1f86ef8b5 100644
  
  public class EntityItem extends Entity {
  
-@@ -320,6 +321,22 @@ public class EntityItem extends Entity {
+@@ -324,6 +325,22 @@ public class EntityItem extends Entity {
              int remaining = i - canHold;
              boolean flyAtPlayer = false; // Paper
  
@@ -40,5 +40,5 @@ index 1baff88c4a..f1f86ef8b5 100644
                  itemstack.setCount(canHold);
                  // Call legacy event
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0158-Add-UnknownCommandEvent.patch b/Spigot-Server-Patches/0154-Add-UnknownCommandEvent.patch
similarity index 91%
rename from Spigot-Server-Patches/0158-Add-UnknownCommandEvent.patch
rename to Spigot-Server-Patches/0154-Add-UnknownCommandEvent.patch
index d3bd4335d..fc74e64bd 100644
--- a/Spigot-Server-Patches/0158-Add-UnknownCommandEvent.patch
+++ b/Spigot-Server-Patches/0154-Add-UnknownCommandEvent.patch
@@ -1,11 +1,11 @@
-From f4b1ac869326bd16b7c94847d5ece41e4dc896c8 Mon Sep 17 00:00:00 2001
+From 0da274f7c094ef3191d0881e7739d9109eb19975 Mon Sep 17 00:00:00 2001
 From: Sweepyoface <github@sweepy.pw>
 Date: Sat, 17 Jun 2017 18:48:21 -0400
 Subject: [PATCH] Add UnknownCommandEvent
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7179692e11..344c99d107 100644
+index cd58906ad..202f6ad68 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 @@ -77,6 +77,7 @@ import net.minecraft.server.WorldServer;
@@ -24,7 +24,7 @@ index 7179692e11..344c99d107 100644
  import org.bukkit.event.inventory.InventoryType;
  import org.bukkit.event.player.PlayerChatTabCompleteEvent;
  import org.bukkit.event.server.BroadcastMessageEvent;
-@@ -737,7 +739,13 @@ public final class CraftServer implements Server {
+@@ -738,7 +740,13 @@ public final class CraftServer implements Server {
  
          // Spigot start
          if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) {
@@ -40,5 +40,5 @@ index 7179692e11..344c99d107 100644
          // Spigot end
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0159-Basic-PlayerProfile-API.patch b/Spigot-Server-Patches/0155-Basic-PlayerProfile-API.patch
similarity index 96%
rename from Spigot-Server-Patches/0159-Basic-PlayerProfile-API.patch
rename to Spigot-Server-Patches/0155-Basic-PlayerProfile-API.patch
index 825f61411..c559b2f1f 100644
--- a/Spigot-Server-Patches/0159-Basic-PlayerProfile-API.patch
+++ b/Spigot-Server-Patches/0155-Basic-PlayerProfile-API.patch
@@ -1,4 +1,4 @@
-From de22020424bc3d2831d68f812df2172635cc433b Mon Sep 17 00:00:00 2001
+From abd5f22ee2480d2a88bb8d450e212b6788ea857c Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 15 Jan 2018 22:11:48 -0500
 Subject: [PATCH] Basic PlayerProfile API
@@ -7,7 +7,7 @@ Establishes base extension of profile systems for future edits too
 
 diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
 new file mode 100644
-index 0000000000..b151a13c1b
+index 000000000..b151a13c1
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
 @@ -0,0 +1,280 @@
@@ -293,7 +293,7 @@ index 0000000000..b151a13c1b
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java
 new file mode 100644
-index 0000000000..25836b975b
+index 000000000..25836b975
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java
 @@ -0,0 +1,30 @@
@@ -329,7 +329,7 @@ index 0000000000..25836b975b
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
 new file mode 100644
-index 0000000000..3bcdb8f93f
+index 000000000..3bcdb8f93
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
 @@ -0,0 +1,17 @@
@@ -352,7 +352,7 @@ index 0000000000..3bcdb8f93f
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
 new file mode 100644
-index 0000000000..4b2a67423f
+index 000000000..4b2a67423
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
 @@ -0,0 +1,29 @@
@@ -387,7 +387,7 @@ index 0000000000..4b2a67423f
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java
 new file mode 100644
-index 0000000000..3aceb0ea8a
+index 000000000..3aceb0ea8
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java
 @@ -0,0 +1,11 @@
@@ -403,7 +403,7 @@ index 0000000000..3aceb0ea8a
 +    }
 +}
 diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java
-index 1f6a126329..6d278a0da5 100644
+index 1f6a12632..6d278a0da 100644
 --- a/src/main/java/net/minecraft/server/MCUtil.java
 +++ b/src/main/java/net/minecraft/server/MCUtil.java
 @@ -1,7 +1,10 @@
@@ -429,10 +429,10 @@ index 1f6a126329..6d278a0da5 100644
       * Calculates distance between 2 entities
       * @param e1
 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 6c9a43d66b..6e6c662f95 100644
+index 7df3ae0ec..1ddb10741 100644
 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
 +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1277,7 +1277,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -1289,7 +1289,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
              DispenserRegistry.init();
              DispenserRegistry.c();
              String s = "."; // PAIL?
@@ -441,7 +441,7 @@ index 6c9a43d66b..6e6c662f95 100644
              MinecraftSessionService minecraftsessionservice = yggdrasilauthenticationservice.createMinecraftSessionService();
              GameProfileRepository gameprofilerepository = yggdrasilauthenticationservice.createProfileRepository();
              UserCache usercache = new UserCache(gameprofilerepository, new File(s, MinecraftServer.b.getName()));
-@@ -1737,6 +1737,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -1749,6 +1749,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
          this.H = i;
      }
  
@@ -450,7 +450,7 @@ index 6c9a43d66b..6e6c662f95 100644
          return this.minecraftSessionService;
      }
 diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java
-index b0d883d493..1d4bf64b1b 100644
+index e8143eff4..10935bcf3 100644
 --- a/src/main/java/net/minecraft/server/UserCache.java
 +++ b/src/main/java/net/minecraft/server/UserCache.java
 @@ -43,7 +43,7 @@ public class UserCache {
@@ -475,7 +475,7 @@ index b0d883d493..1d4bf64b1b 100644
 +
      @Nullable public GameProfile getProfile(UUID uuid) { return a(uuid);  } // Paper - OBFHELPER
      @Nullable
-     public GameProfile a(UUID uuid) {
+     public GameProfile getProfile(UUID uuid) {
 @@ -274,7 +281,7 @@ public class UserCache {
  
      class UserCacheEntry {
@@ -486,10 +486,10 @@ index b0d883d493..1d4bf64b1b 100644
  
          private UserCacheEntry(GameProfile gameprofile, Date date) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index f891b1346c..308ae2e157 100644
+index 202f6ad68..2f7769c00 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -196,6 +196,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -197,6 +197,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
  
  import net.md_5.bungee.api.chat.BaseComponent; // Spigot
  
@@ -499,7 +499,7 @@ index f891b1346c..308ae2e157 100644
  public final class CraftServer implements Server {
      private final String serverName = "Paper"; // Paper
      private final String serverVersion;
-@@ -2112,5 +2115,24 @@ public final class CraftServer implements Server {
+@@ -2115,5 +2118,24 @@ public final class CraftServer implements Server {
      public boolean suggestPlayerNamesWhenNullTabCompletions() {
          return com.destroystokyo.paper.PaperConfig.suggestPlayersWhenNullTabCompletions;
      }
@@ -525,5 +525,5 @@ index f891b1346c..308ae2e157 100644
      // Paper end
  }
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0160-Shoulder-Entities-Release-API.patch b/Spigot-Server-Patches/0156-Shoulder-Entities-Release-API.patch
similarity index 92%
rename from Spigot-Server-Patches/0160-Shoulder-Entities-Release-API.patch
rename to Spigot-Server-Patches/0156-Shoulder-Entities-Release-API.patch
index 25bcc825e..e7a38de6a 100644
--- a/Spigot-Server-Patches/0160-Shoulder-Entities-Release-API.patch
+++ b/Spigot-Server-Patches/0156-Shoulder-Entities-Release-API.patch
@@ -1,14 +1,14 @@
-From 13f64d403e4682edfec24772d8d52e3da5afedf5 Mon Sep 17 00:00:00 2001
+From d07f3a2beb5500decddbeece416426183bde9c91 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
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index 28a8cfdd3..6acab2b97 100644
+index 673e2b79d..2d982ce1e 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
-@@ -1801,20 +1801,44 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -1893,20 +1893,44 @@ public abstract class EntityHuman extends EntityLiving {
  
      }
  
@@ -42,7 +42,7 @@ index 28a8cfdd3..6acab2b97 100644
                      ((EntityTameableAnimal) entity).setOwnerUUID(this.uniqueID);
                  }
  
-                 entity.setPosition(this.locX, this.locY + 0.699999988079071D, this.locZ);
+                 entity.setPosition(this.locX(), this.locY() + 0.699999988079071D, this.locZ());
 -                return ((WorldServer) this.world).addEntitySerialized(entity, CreatureSpawnEvent.SpawnReason.SHOULDER_ENTITY); // CraftBukkit
 -            }).orElse(true); // CraftBukkit
 +                boolean addedToWorld = ((WorldServer) this.world).addEntitySerialized(entity, CreatureSpawnEvent.SpawnReason.SHOULDER_ENTITY); // CraftBukkit
@@ -58,7 +58,7 @@ index 28a8cfdd3..6acab2b97 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 027063239..37b057c51 100644
+index 66cd2db1e..a1397d142 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 @@ -665,6 +665,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -95,5 +95,5 @@ index 027063239..37b057c51 100644
      public boolean discoverRecipe(NamespacedKey recipe) {
          return discoverRecipes(Arrays.asList(recipe)) != 0;
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0161-Profile-Lookup-Events.patch b/Spigot-Server-Patches/0157-Profile-Lookup-Events.patch
similarity index 97%
rename from Spigot-Server-Patches/0161-Profile-Lookup-Events.patch
rename to Spigot-Server-Patches/0157-Profile-Lookup-Events.patch
index 8196fd523..48b544146 100644
--- a/Spigot-Server-Patches/0161-Profile-Lookup-Events.patch
+++ b/Spigot-Server-Patches/0157-Profile-Lookup-Events.patch
@@ -1,4 +1,4 @@
-From db5fd6216ff20d4670dc04f0222792982220196f Mon Sep 17 00:00:00 2001
+From 231e2f402814cd547155b82ee47531f0a81dfb97 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.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0162-Block-player-logins-during-server-shutdown.patch b/Spigot-Server-Patches/0158-Block-player-logins-during-server-shutdown.patch
similarity index 90%
rename from Spigot-Server-Patches/0162-Block-player-logins-during-server-shutdown.patch
rename to Spigot-Server-Patches/0158-Block-player-logins-during-server-shutdown.patch
index 2a7195817..1873f0dc9 100644
--- a/Spigot-Server-Patches/0162-Block-player-logins-during-server-shutdown.patch
+++ b/Spigot-Server-Patches/0158-Block-player-logins-during-server-shutdown.patch
@@ -1,11 +1,11 @@
-From f59189466e67ed2dd9a28bb8f55af3f6a6b57266 Mon Sep 17 00:00:00 2001
+From 94a516b0a57ec3612f96098903af158bff7ce867 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 49df63d6de..977a5009dd 100644
+index 3683fa298..6f7c71579 100644
 --- a/src/main/java/net/minecraft/server/LoginListener.java
 +++ b/src/main/java/net/minecraft/server/LoginListener.java
 @@ -49,6 +49,12 @@ public class LoginListener implements PacketLoginInListener {
@@ -22,5 +22,5 @@ index 49df63d6de..977a5009dd 100644
              this.c();
          } else if (this.g == LoginListener.EnumProtocolState.DELAY_ACCEPT) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0163-Entity-fromMobSpawner.patch b/Spigot-Server-Patches/0159-Entity-fromMobSpawner.patch
similarity index 85%
rename from Spigot-Server-Patches/0163-Entity-fromMobSpawner.patch
rename to Spigot-Server-Patches/0159-Entity-fromMobSpawner.patch
index 782a9ec0d..939148237 100644
--- a/Spigot-Server-Patches/0163-Entity-fromMobSpawner.patch
+++ b/Spigot-Server-Patches/0159-Entity-fromMobSpawner.patch
@@ -1,14 +1,14 @@
-From 84600057c686d41de05de42fa07a3c3285851bb2 Mon Sep 17 00:00:00 2001
+From 56e14834b23acaeffb94083b1e35cc7a40b98c33 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Sun, 18 Jun 2017 18:17:05 -0500
 Subject: [PATCH] Entity#fromMobSpawner()
 
 
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 482864ac6..be4ebcadb 100644
+index fcfe8f550..7c4ab7fe7 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
-@@ -184,6 +184,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+@@ -189,6 +189,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
      public final boolean defaultActivationState;
      public long activatedTick = Integer.MIN_VALUE;
      public boolean fromMobSpawner;
@@ -16,7 +16,7 @@ index 482864ac6..be4ebcadb 100644
      protected int numCollisions = 0; // Paper
      public void inactiveTick() { }
      // Spigot end
-@@ -1635,6 +1636,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+@@ -1621,6 +1622,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
              if (this.origin != null) {
                  nbttagcompound.set("Paper.Origin", this.createList(origin.getX(), origin.getY(), origin.getZ()));
              }
@@ -27,7 +27,7 @@ index 482864ac6..be4ebcadb 100644
              // Paper end
              return nbttagcompound;
          } catch (Throwable throwable) {
-@@ -1763,6 +1768,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+@@ -1741,6 +1746,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
              if (!originTag.isEmpty()) {
                  origin = new Location(world.getWorld(), originTag.getDoubleAt(0), originTag.getDoubleAt(1), originTag.getDoubleAt(2));
              }
@@ -37,10 +37,10 @@ index 482864ac6..be4ebcadb 100644
  
          } catch (Throwable throwable) {
 diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
-index 13e62e3d7..4bd511dd7 100644
+index deb32db2b..8384a2cbf 100644
 --- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
 +++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
-@@ -133,6 +133,7 @@ public abstract class MobSpawnerAbstract {
+@@ -134,6 +134,7 @@ public abstract class MobSpawnerAbstract {
                                  ((EntityInsentient) entity).prepare(world, world.getDamageScaler(new BlockPosition(entity)), EnumMobSpawn.SPAWNER, (GroupDataEntity) null, (NBTTagCompound) null);
                              }
                          }
@@ -49,10 +49,10 @@ index 13e62e3d7..4bd511dd7 100644
                          if ( entity.world.spigotConfig.nerfSpawnerMobs )
                          {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 91c5bb511..09ca9a3eb 100644
+index bb07dec3c..495a7c464 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1048,5 +1048,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1045,5 +1045,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          Location origin = getHandle().origin;
          return origin == null ? null : origin.clone();
      }
@@ -64,5 +64,5 @@ index 91c5bb511..09ca9a3eb 100644
      // Paper end
  }
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0164-Improve-the-Saddle-API-for-Horses.patch b/Spigot-Server-Patches/0160-Improve-the-Saddle-API-for-Horses.patch
similarity index 94%
rename from Spigot-Server-Patches/0164-Improve-the-Saddle-API-for-Horses.patch
rename to Spigot-Server-Patches/0160-Improve-the-Saddle-API-for-Horses.patch
index dac72bf5c..850386ea1 100644
--- a/Spigot-Server-Patches/0164-Improve-the-Saddle-API-for-Horses.patch
+++ b/Spigot-Server-Patches/0160-Improve-the-Saddle-API-for-Horses.patch
@@ -1,4 +1,4 @@
-From c7287c81488d289834b45064849790e3dac26be7 Mon Sep 17 00:00:00 2001
+From dca9dc7dc24627c6e09515251c1235d96365f14f Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 10 Dec 2016 16:24:06 -0500
 Subject: [PATCH] Improve the Saddle API for Horses
@@ -7,7 +7,7 @@ Not all horses with Saddles have armor. This lets us break up the horses with sa
 and access their saddle state separately from an interface shared with Armor.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-index 09016e3547..9952db3eb5 100644
+index 09016e354..9952db3eb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
 @@ -6,6 +6,7 @@ import net.minecraft.server.EntityHorseAbstract;
@@ -27,7 +27,7 @@ index 09016e3547..9952db3eb5 100644
      }
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryHorse.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryHorse.java
-index 63991bf4be..9a47a1adc1 100644
+index 63991bf4b..9a47a1adc 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryHorse.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryHorse.java
 @@ -4,7 +4,7 @@ import net.minecraft.server.IInventory;
@@ -41,7 +41,7 @@ index 63991bf4be..9a47a1adc1 100644
          super(inventory);
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSaddledInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSaddledInventory.java
 new file mode 100644
-index 0000000000..99cfbaf90b
+index 000000000..99cfbaf90
 --- /dev/null
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSaddledInventory.java
 @@ -0,0 +1,15 @@
@@ -61,5 +61,5 @@ index 0000000000..99cfbaf90b
 +
 +}
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0165-Implement-ensureServerConversions-API.patch b/Spigot-Server-Patches/0161-Implement-ensureServerConversions-API.patch
similarity index 85%
rename from Spigot-Server-Patches/0165-Implement-ensureServerConversions-API.patch
rename to Spigot-Server-Patches/0161-Implement-ensureServerConversions-API.patch
index e5af01365..ff11584a2 100644
--- a/Spigot-Server-Patches/0165-Implement-ensureServerConversions-API.patch
+++ b/Spigot-Server-Patches/0161-Implement-ensureServerConversions-API.patch
@@ -1,4 +1,4 @@
-From 2dc39a751a5a43ea381bbaf121d5ddee83cabacb Mon Sep 17 00:00:00 2001
+From 8529676f2d0453ba34b52228e3f97076a989b4a6 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 4 May 2016 22:43:12 -0400
 Subject: [PATCH] Implement ensureServerConversions API
@@ -7,10 +7,10 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr
 to ensure it meets latest minecraft expectations.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index b15406014..bd04174c3 100644
+index c9b59fd8d..57f50cccf 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -332,4 +332,10 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -334,4 +334,10 @@ public final class CraftItemFactory implements ItemFactory {
      public Material updateMaterial(ItemMeta meta, Material material) throws IllegalArgumentException {
          return ((CraftMetaItem) meta).updateMaterial(material);
      }
@@ -22,5 +22,5 @@ index b15406014..bd04174c3 100644
 +    // Paper end
  }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0166-Implement-getI18NDisplayName.patch b/Spigot-Server-Patches/0162-Implement-getI18NDisplayName.patch
similarity index 92%
rename from Spigot-Server-Patches/0166-Implement-getI18NDisplayName.patch
rename to Spigot-Server-Patches/0162-Implement-getI18NDisplayName.patch
index a165bebfc..258dc3f12 100644
--- a/Spigot-Server-Patches/0166-Implement-getI18NDisplayName.patch
+++ b/Spigot-Server-Patches/0162-Implement-getI18NDisplayName.patch
@@ -1,4 +1,4 @@
-From 1a37b18ef694433c929d94f2e4e5d197ac6c917b Mon Sep 17 00:00:00 2001
+From b1453ada4f219bce1fa153db344add1a5082d5ec Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 4 May 2016 23:59:38 -0400
 Subject: [PATCH] Implement getI18NDisplayName
@@ -25,10 +25,10 @@ index c0c13798f..601273933 100644
          return this.c(s);
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index bd04174c3..3cddf254a 100644
+index 57f50cccf..72cc4980e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -337,5 +337,18 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -339,5 +339,18 @@ public final class CraftItemFactory implements ItemFactory {
      public ItemStack ensureServerConversions(ItemStack item) {
          return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item));
      }
@@ -48,5 +48,5 @@ index bd04174c3..3cddf254a 100644
      // Paper end
  }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0167-ProfileWhitelistVerifyEvent.patch b/Spigot-Server-Patches/0163-ProfileWhitelistVerifyEvent.patch
similarity index 90%
rename from Spigot-Server-Patches/0167-ProfileWhitelistVerifyEvent.patch
rename to Spigot-Server-Patches/0163-ProfileWhitelistVerifyEvent.patch
index 92768324e..656dd2dc1 100644
--- a/Spigot-Server-Patches/0167-ProfileWhitelistVerifyEvent.patch
+++ b/Spigot-Server-Patches/0163-ProfileWhitelistVerifyEvent.patch
@@ -1,14 +1,14 @@
-From 9363bf8ee294b4e8687c4af786bd781e781ad95b Mon Sep 17 00:00:00 2001
+From 5823c5485f3d20cd2cd53ff1229f0243e79a774b Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 3 Jul 2017 18:11:10 -0500
 Subject: [PATCH] ProfileWhitelistVerifyEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index 6a77707983..a167843bfb 100644
+index 308bc3baf..002f7e844 100644
 --- a/src/main/java/net/minecraft/server/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/PlayerList.java
-@@ -521,9 +521,9 @@ public abstract class PlayerList {
+@@ -522,9 +522,9 @@ public abstract class PlayerList {
  
              // return chatmessage;
              if (!gameprofilebanentry.hasExpired()) event.disallow(PlayerLoginEvent.Result.KICK_BANNED, CraftChatMessage.fromComponent(chatmessage)); // Spigot
@@ -20,7 +20,7 @@ index 6a77707983..a167843bfb 100644
          } else if (getIPBans().isBanned(socketaddress) && !getIPBans().get(socketaddress).hasExpired()) {
              IpBanEntry ipbanentry = this.l.get(socketaddress);
  
-@@ -892,9 +892,25 @@ public abstract class PlayerList {
+@@ -893,9 +893,25 @@ public abstract class PlayerList {
          this.server.getCommandDispatcher().a(entityplayer);
      }
  
@@ -46,7 +46,7 @@ index 6a77707983..a167843bfb 100644
 +    // Paper end
  
      public boolean isOp(GameProfile gameprofile) {
-         return this.operators.d(gameprofile) || this.server.b(gameprofile) && this.server.getWorldServer(DimensionManager.OVERWORLD).getWorldData().t() || this.u;
+         return this.operators.d(gameprofile) || this.server.a(gameprofile) && this.server.getWorldServer(DimensionManager.OVERWORLD).getWorldData().t() || this.u;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0168-Fix-this-stupid-bullshit.patch b/Spigot-Server-Patches/0164-Fix-this-stupid-bullshit.patch
similarity index 90%
rename from Spigot-Server-Patches/0168-Fix-this-stupid-bullshit.patch
rename to Spigot-Server-Patches/0164-Fix-this-stupid-bullshit.patch
index 3e69069c9..c6086c385 100644
--- a/Spigot-Server-Patches/0168-Fix-this-stupid-bullshit.patch
+++ b/Spigot-Server-Patches/0164-Fix-this-stupid-bullshit.patch
@@ -1,4 +1,4 @@
-From ecb854e19a77c30ab24c008aa7b8568584c9a765 Mon Sep 17 00:00:00 2001
+From 1afac47b97ebd139492651cc002123164c99f701 Mon Sep 17 00:00:00 2001
 From: DemonWav <demonwav@gmail.com>
 Date: Sun, 6 Aug 2017 17:17:53 -0500
 Subject: [PATCH] Fix this stupid bullshit
@@ -9,12 +9,12 @@ modified in order to prevent merge conflicts when Spigot changes/disables the wa
 and to provide some level of hint without being disruptive.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 486629a6d..56ac679b2 100644
+index b562e95dc..140b82275 100644
 --- a/src/main/java/org/bukkit/craftbukkit/Main.java
 +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
 @@ -217,10 +217,12 @@ public class Main {
                      Calendar deadline = Calendar.getInstance();
-                     deadline.add(Calendar.DAY_OF_YEAR, -28);
+                     deadline.add(Calendar.DAY_OF_YEAR, -3);
                      if (buildDate.before(deadline.getTime())) {
 -                        System.err.println("*** Error, this build is outdated ***");
 +                        // Paper start - This is some stupid bullshit
@@ -29,5 +29,5 @@ index 486629a6d..56ac679b2 100644
                  }
  
 -- 
-2.24.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0169-Ocelot-despawns-should-honor-nametags-and-leash.patch b/Spigot-Server-Patches/0165-Ocelot-despawns-should-honor-nametags-and-leash.patch
similarity index 81%
rename from Spigot-Server-Patches/0169-Ocelot-despawns-should-honor-nametags-and-leash.patch
rename to Spigot-Server-Patches/0165-Ocelot-despawns-should-honor-nametags-and-leash.patch
index 7d750f387..f3154490e 100644
--- a/Spigot-Server-Patches/0169-Ocelot-despawns-should-honor-nametags-and-leash.patch
+++ b/Spigot-Server-Patches/0165-Ocelot-despawns-should-honor-nametags-and-leash.patch
@@ -1,14 +1,14 @@
-From 2e0688b36f97187cb8f065e164e5fd0fa9059935 Mon Sep 17 00:00:00 2001
+From 94586121247edbc9777d6629a0d18c3b8c386f53 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Mon, 31 Jul 2017 01:54:40 -0500
 Subject: [PATCH] Ocelot despawns should honor nametags and leash
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java
-index a6b15efd5d..edc5f696c0 100644
+index 062411455..d9a7b8ac1 100644
 --- a/src/main/java/net/minecraft/server/EntityOcelot.java
 +++ b/src/main/java/net/minecraft/server/EntityOcelot.java
-@@ -82,7 +82,7 @@ public class EntityOcelot extends EntityAnimal {
+@@ -81,7 +81,7 @@ public class EntityOcelot extends EntityAnimal {
  
      @Override
      public boolean isTypeNotPersistent(double d0) {
@@ -18,5 +18,5 @@ index a6b15efd5d..edc5f696c0 100644
  
      @Override
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0170-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/Spigot-Server-Patches/0166-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
similarity index 82%
rename from Spigot-Server-Patches/0170-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
rename to Spigot-Server-Patches/0166-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
index 840685bf7..0b666513b 100644
--- a/Spigot-Server-Patches/0170-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
+++ b/Spigot-Server-Patches/0166-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
@@ -1,14 +1,14 @@
-From 393e17f7fb0841095ec391a7a7192c6b81604ffb Mon Sep 17 00:00:00 2001
+From fc0c24008c1783f514a071176e2e159cfd820172 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Mon, 31 Jul 2017 01:45:19 -0500
 Subject: [PATCH] Reset spawner timer when spawner event is cancelled
 
 
 diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
-index 4bd511dd7c..59bd9ccd70 100644
+index 8384a2cbf..258e96ba5 100644
 --- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
 +++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
-@@ -139,6 +139,9 @@ public abstract class MobSpawnerAbstract {
+@@ -140,6 +140,9 @@ public abstract class MobSpawnerAbstract {
                          {
                              entity.fromMobSpawner = true;
                          }
@@ -18,7 +18,7 @@ index 4bd511dd7c..59bd9ccd70 100644
                          if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) {
                              Entity vehicle = entity.getVehicle();
                              if (vehicle != null) {
-@@ -156,7 +159,7 @@ public abstract class MobSpawnerAbstract {
+@@ -157,7 +160,7 @@ public abstract class MobSpawnerAbstract {
                              ((EntityInsentient) entity).doSpawnEffect();
                          }
  
@@ -28,5 +28,5 @@ index 4bd511dd7c..59bd9ccd70 100644
                  }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0171-Fix-MC-117075-TE-Unload-Lag-Spike.patch b/Spigot-Server-Patches/0167-Fix-MC-117075-TE-Unload-Lag-Spike.patch
similarity index 83%
rename from Spigot-Server-Patches/0171-Fix-MC-117075-TE-Unload-Lag-Spike.patch
rename to Spigot-Server-Patches/0167-Fix-MC-117075-TE-Unload-Lag-Spike.patch
index ed0f063ea..bff95a0ef 100644
--- a/Spigot-Server-Patches/0171-Fix-MC-117075-TE-Unload-Lag-Spike.patch
+++ b/Spigot-Server-Patches/0167-Fix-MC-117075-TE-Unload-Lag-Spike.patch
@@ -1,14 +1,14 @@
-From 71b39eb3328c1d4bb08e116a0410410bec249da8 Mon Sep 17 00:00:00 2001
+From cb98e4077354d4495e2a641196c2b4e4fee88bd9 Mon Sep 17 00:00:00 2001
 From: mezz <tehgeek@gmail.com>
 Date: Wed, 9 Aug 2017 17:51:22 -0500
 Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike
 
 
 diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index d6f04c823a..8add757cc8 100644
+index 312e32f1b..8cbad8362 100644
 --- a/src/main/java/net/minecraft/server/World.java
 +++ b/src/main/java/net/minecraft/server/World.java
-@@ -734,7 +734,11 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
+@@ -654,7 +654,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
          gameprofilerfiller.enter("blockEntities");
          timings.tileEntityTick.startTiming(); // Spigot
          if (!this.tileEntityListUnload.isEmpty()) {
@@ -22,5 +22,5 @@ index d6f04c823a..8add757cc8 100644
              this.tileEntityListUnload.clear();
          }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0172-Allow-specifying-a-custom-authentication-servers-dow.patch b/Spigot-Server-Patches/0168-Allow-specifying-a-custom-authentication-servers-dow.patch
similarity index 94%
rename from Spigot-Server-Patches/0172-Allow-specifying-a-custom-authentication-servers-dow.patch
rename to Spigot-Server-Patches/0168-Allow-specifying-a-custom-authentication-servers-dow.patch
index 12d01893f..fc484f20f 100644
--- a/Spigot-Server-Patches/0172-Allow-specifying-a-custom-authentication-servers-dow.patch
+++ b/Spigot-Server-Patches/0168-Allow-specifying-a-custom-authentication-servers-dow.patch
@@ -1,4 +1,4 @@
-From 3e8591beff5e88eda41d6790603446fbe00fe15c Mon Sep 17 00:00:00 2001
+From af7e3f0496ac4b7f4dd6f8b9b60329b68aa759cb Mon Sep 17 00:00:00 2001
 From: kashike <kashike@vq.lc>
 Date: Thu, 17 Aug 2017 16:08:20 -0700
 Subject: [PATCH] Allow specifying a custom "authentication servers down" kick
@@ -6,7 +6,7 @@ Subject: [PATCH] Allow specifying a custom "authentication servers down" kick
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index 11d2a1013b..11f08c2b73 100644
+index 295b8390c..5884b04f7 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -1,5 +1,6 @@
@@ -27,7 +27,7 @@ index 11d2a1013b..11f08c2b73 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
-index 977a5009dd..c3ff7a6b8f 100644
+index 6f7c71579..a1be28390 100644
 --- a/src/main/java/net/minecraft/server/LoginListener.java
 +++ b/src/main/java/net/minecraft/server/LoginListener.java
 @@ -247,6 +247,10 @@ public class LoginListener implements PacketLoginInListener {
@@ -42,5 +42,5 @@ index 977a5009dd..c3ff7a6b8f 100644
                              LoginListener.LOGGER.error("Couldn't verify username because servers are unavailable");
                          }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0173-LivingEntity-setKiller.patch b/Spigot-Server-Patches/0169-LivingEntity-setKiller.patch
similarity index 87%
rename from Spigot-Server-Patches/0173-LivingEntity-setKiller.patch
rename to Spigot-Server-Patches/0169-LivingEntity-setKiller.patch
index 8a13be77e..1b9678ae0 100644
--- a/Spigot-Server-Patches/0173-LivingEntity-setKiller.patch
+++ b/Spigot-Server-Patches/0169-LivingEntity-setKiller.patch
@@ -1,22 +1,22 @@
-From 3cc596d6759ac8ec57121500b9ddc72e0878c46d Mon Sep 17 00:00:00 2001
+From 0404dd95e23bd99fcf65b823dcf94cc16545caa5 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Mon, 31 Jul 2017 01:49:48 -0500
 Subject: [PATCH] LivingEntity#setKiller
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index a016cbb21..46dfb3c49 100644
+index f6cb18639..bf049bfc4 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
-@@ -76,7 +76,7 @@ public abstract class EntityLiving extends Entity {
-     public float aN;
-     public float aO;
+@@ -80,7 +80,7 @@ public abstract class EntityLiving extends Entity {
+     public float aL;
+     public float aM;
      public EntityHuman killer;
 -    protected int lastDamageByPlayerTime;
 +    public int lastDamageByPlayerTime; // Paper - protected -> public
      protected boolean killed;
      protected int ticksFarFromPlayer;
-     protected float aT;
+     protected float aR;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 index 7e9aff668..b8482c632 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -39,5 +39,5 @@ index 7e9aff668..b8482c632 100644
      public boolean addPotionEffect(PotionEffect effect) {
          return addPotionEffect(effect, false);
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0174-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch b/Spigot-Server-Patches/0170-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch
similarity index 93%
rename from Spigot-Server-Patches/0174-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch
rename to Spigot-Server-Patches/0170-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch
index 37269c3ae..78b193b71 100644
--- a/Spigot-Server-Patches/0174-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch
+++ b/Spigot-Server-Patches/0170-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch
@@ -1,4 +1,4 @@
-From 293d21b77ff488266b8137593bf35c8cb805ba94 Mon Sep 17 00:00:00 2001
+From 51f074f0e0f071356d81aace1d38ceaf4fe2a3e8 Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Mon, 18 Sep 2017 12:00:03 +0200
 Subject: [PATCH] Use Log4j IOStreams to redirect System.out/err to logger
@@ -12,7 +12,7 @@ results in a separate line, even though it should not result in
 a line break. Log4j's implementation handles it correctly.
 
 diff --git a/pom.xml b/pom.xml
-index 58b14a740e..a70c0ec07a 100644
+index f716e9870..e6395c773 100644
 --- a/pom.xml
 +++ b/pom.xml
 @@ -63,6 +63,11 @@
@@ -28,7 +28,7 @@ index 58b14a740e..a70c0ec07a 100644
              <groupId>org.ow2.asm</groupId>
              <artifactId>asm</artifactId>
 diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
-index 92d0aa6d66..c6eb88c34b 100644
+index dfe806291..6e95a0452 100644
 --- a/src/main/java/net/minecraft/server/DedicatedServer.java
 +++ b/src/main/java/net/minecraft/server/DedicatedServer.java
 @@ -147,8 +147,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -45,5 +45,5 @@ index 92d0aa6d66..c6eb88c34b 100644
  
          thread.setDaemon(true);
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0175-Handle-plugin-prefixes-using-Log4J-configuration.patch b/Spigot-Server-Patches/0171-Handle-plugin-prefixes-using-Log4J-configuration.patch
similarity index 95%
rename from Spigot-Server-Patches/0175-Handle-plugin-prefixes-using-Log4J-configuration.patch
rename to Spigot-Server-Patches/0171-Handle-plugin-prefixes-using-Log4J-configuration.patch
index 50c152f29..db95ff71c 100644
--- a/Spigot-Server-Patches/0175-Handle-plugin-prefixes-using-Log4J-configuration.patch
+++ b/Spigot-Server-Patches/0171-Handle-plugin-prefixes-using-Log4J-configuration.patch
@@ -1,4 +1,4 @@
-From d6a94ec50d3adf4c4c7ed9c15c680b40bab4f77e Mon Sep 17 00:00:00 2001
+From 8124c833fa4861c85f5451ca8e3e5033b0d83bde Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Thu, 21 Sep 2017 16:14:55 +0200
 Subject: [PATCH] Handle plugin prefixes using Log4J configuration
@@ -15,7 +15,7 @@ This may cause additional prefixes to be disabled for plugins bypassing
 the plugin logger.
 
 diff --git a/pom.xml b/pom.xml
-index a70c0ec07a..5ab1f29846 100644
+index e6395c773..026dcfdab 100644
 --- a/pom.xml
 +++ b/pom.xml
 @@ -61,7 +61,7 @@
@@ -28,7 +28,7 @@ index a70c0ec07a..5ab1f29846 100644
          <dependency>
              <groupId>org.apache.logging.log4j</groupId>
 diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
-index d873256c01..783aa6db1f 100644
+index d873256c0..783aa6db1 100644
 --- a/src/main/java/org/spigotmc/SpigotConfig.java
 +++ b/src/main/java/org/spigotmc/SpigotConfig.java
 @@ -286,7 +286,7 @@ public class SpigotConfig
@@ -41,7 +41,7 @@ index d873256c01..783aa6db1f 100644
  
      public static int playerShuffle;
 diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
-index 08b6bb7f97..9f8334376f 100644
+index 08b6bb7f9..9f8334376 100644
 --- a/src/main/resources/log4j2.xml
 +++ b/src/main/resources/log4j2.xml
 @@ -2,10 +2,22 @@
@@ -70,5 +70,5 @@ index 08b6bb7f97..9f8334376f 100644
                  <TimeBasedTriggeringPolicy />
                  <OnStartupTriggeringPolicy />
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0176-Include-Log4J2-SLF4J-implementation.patch b/Spigot-Server-Patches/0172-Include-Log4J2-SLF4J-implementation.patch
similarity index 86%
rename from Spigot-Server-Patches/0176-Include-Log4J2-SLF4J-implementation.patch
rename to Spigot-Server-Patches/0172-Include-Log4J2-SLF4J-implementation.patch
index 5ad16c664..0c8eec61b 100644
--- a/Spigot-Server-Patches/0176-Include-Log4J2-SLF4J-implementation.patch
+++ b/Spigot-Server-Patches/0172-Include-Log4J2-SLF4J-implementation.patch
@@ -1,11 +1,11 @@
-From bf759fa436ae169e7e28d17abdd048943a1d2e54 Mon Sep 17 00:00:00 2001
+From 81c4efd41672172bdc421347dfc9429c64348208 Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Thu, 21 Sep 2017 16:33:35 +0200
 Subject: [PATCH] Include Log4J2 SLF4J implementation
 
 
 diff --git a/pom.xml b/pom.xml
-index d955106433..b7db74c9ba 100644
+index 026dcfdab..dbc425524 100644
 --- a/pom.xml
 +++ b/pom.xml
 @@ -63,6 +63,12 @@
@@ -22,5 +22,5 @@ index d955106433..b7db74c9ba 100644
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-iostreams</artifactId>
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0177-Disable-logger-prefix-for-various-plugins-bypassing-.patch b/Spigot-Server-Patches/0173-Disable-logger-prefix-for-various-plugins-bypassing-.patch
similarity index 95%
rename from Spigot-Server-Patches/0177-Disable-logger-prefix-for-various-plugins-bypassing-.patch
rename to Spigot-Server-Patches/0173-Disable-logger-prefix-for-various-plugins-bypassing-.patch
index 08cfdb380..637972d22 100644
--- a/Spigot-Server-Patches/0177-Disable-logger-prefix-for-various-plugins-bypassing-.patch
+++ b/Spigot-Server-Patches/0173-Disable-logger-prefix-for-various-plugins-bypassing-.patch
@@ -1,4 +1,4 @@
-From 1950fa644d4c5e34543c88115d259bc2133591ef Mon Sep 17 00:00:00 2001
+From 60dfcd4e3f304e962558e5263c9e03c13b40058e Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Sat, 23 Sep 2017 21:07:20 +0200
 Subject: [PATCH] Disable logger prefix for various plugins bypassing the
@@ -11,7 +11,7 @@ log. Disable the logger prefix for these plugins so the messages
 show up correctly.
 
 diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
-index 9f8334376f..6711e6dff9 100644
+index 9f8334376..6711e6dff 100644
 --- a/src/main/resources/log4j2.xml
 +++ b/src/main/resources/log4j2.xml
 @@ -5,7 +5,8 @@
@@ -35,5 +35,5 @@ index 9f8334376f..6711e6dff9 100644
                  </LoggerNamePatternSelector>
              </PatternLayout>
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0178-Add-PlayerJumpEvent.patch b/Spigot-Server-Patches/0174-Add-PlayerJumpEvent.patch
similarity index 91%
rename from Spigot-Server-Patches/0178-Add-PlayerJumpEvent.patch
rename to Spigot-Server-Patches/0174-Add-PlayerJumpEvent.patch
index 79dc68457..ea59c788b 100644
--- a/Spigot-Server-Patches/0178-Add-PlayerJumpEvent.patch
+++ b/Spigot-Server-Patches/0174-Add-PlayerJumpEvent.patch
@@ -1,11 +1,11 @@
-From 246163fe2f7e4f715d94d4a759d31cc34fba3d75 Mon Sep 17 00:00:00 2001
+From 066208622cb57436c6e832f8b57820d4b9be3c8c Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Thu, 28 Sep 2017 17:21:44 -0400
 Subject: [PATCH] Add PlayerJumpEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 579c551f95..5e3ca96871 100644
+index 01ab2e151..399724d6a 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
 @@ -58,6 +58,8 @@ import org.bukkit.inventory.CraftingInventory;
@@ -17,9 +17,9 @@ index 579c551f95..5e3ca96871 100644
  import co.aikar.timings.MinecraftTimings; // Paper
  // CraftBukkit end
  
-@@ -913,7 +915,34 @@ public class PlayerConnection implements PacketListenerPlayIn {
-                             d8 = d5 - this.p;
-                             d9 = d6 - this.q;
+@@ -925,7 +927,34 @@ public class PlayerConnection implements PacketListenerPlayIn {
+                             }
+ 
                              if (this.player.onGround && !packetplayinflying.b() && d8 > 0.0D) {
 -                                this.player.jump();
 +                                // Paper start - Add player jump event
@@ -54,5 +54,5 @@ index 579c551f95..5e3ca96871 100644
  
                              this.player.move(EnumMoveType.PLAYER, new Vec3D(d7, d8, d9));
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0179-handle-PacketPlayInKeepAlive-async.patch b/Spigot-Server-Patches/0175-handle-PacketPlayInKeepAlive-async.patch
similarity index 92%
rename from Spigot-Server-Patches/0179-handle-PacketPlayInKeepAlive-async.patch
rename to Spigot-Server-Patches/0175-handle-PacketPlayInKeepAlive-async.patch
index 8e27d28ca..6890a4a24 100644
--- a/Spigot-Server-Patches/0179-handle-PacketPlayInKeepAlive-async.patch
+++ b/Spigot-Server-Patches/0175-handle-PacketPlayInKeepAlive-async.patch
@@ -1,4 +1,4 @@
-From 78d292bb028979a78ee9567c774e6d97f4aa24f7 Mon Sep 17 00:00:00 2001
+From 531d21dac3ed12422173380c48104e9c09248412 Mon Sep 17 00:00:00 2001
 From: Shane Freeder <theboyetronic@gmail.com>
 Date: Thu, 5 Oct 2017 01:54:07 +0100
 Subject: [PATCH] handle PacketPlayInKeepAlive async
@@ -15,10 +15,10 @@ also adding some additional logging in order to help work out what is causing
 random disconnections for clients.
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 5e3ca96871..0cb68a8553 100644
+index 399724d6a..a4660f2b8 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -2476,14 +2476,18 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2486,14 +2486,18 @@ public class PlayerConnection implements PacketListenerPlayIn {
  
      @Override
      public void a(PacketPlayInKeepAlive packetplayinkeepalive) {
@@ -40,5 +40,5 @@ index 5e3ca96871..0cb68a8553 100644
  
      }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0180-Expose-client-protocol-version-and-virtual-host.patch b/Spigot-Server-Patches/0176-Expose-client-protocol-version-and-virtual-host.patch
similarity index 94%
rename from Spigot-Server-Patches/0180-Expose-client-protocol-version-and-virtual-host.patch
rename to Spigot-Server-Patches/0176-Expose-client-protocol-version-and-virtual-host.patch
index 02083f02a..c534b3978 100644
--- a/Spigot-Server-Patches/0180-Expose-client-protocol-version-and-virtual-host.patch
+++ b/Spigot-Server-Patches/0176-Expose-client-protocol-version-and-virtual-host.patch
@@ -1,4 +1,4 @@
-From 7792dcfee7c0a9197d18e8cd965acffb0fa7e5f3 Mon Sep 17 00:00:00 2001
+From 710d05e1055a1d076ee3615b9a82256baba38b5e Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Tue, 10 Oct 2017 18:45:20 +0200
 Subject: [PATCH] Expose client protocol version and virtual host
@@ -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 +1,50 @@
@@ -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 078b711c47..740c8d2728 100644
+index d0b9c6e3d..8928d93e4 100644
 --- a/src/main/java/net/minecraft/server/HandshakeListener.java
 +++ b/src/main/java/net/minecraft/server/HandshakeListener.java
 @@ -15,6 +15,7 @@ public class HandshakeListener implements PacketHandshakingInListener {
@@ -84,7 +84,7 @@ index 078b711c47..740c8d2728 100644
  
      @Override
 diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
-index 3ccf166366..e2d8ed88f0 100644
+index 3ccf16636..e2d8ed88f 100644
 --- a/src/main/java/net/minecraft/server/NetworkManager.java
 +++ b/src/main/java/net/minecraft/server/NetworkManager.java
 @@ -60,6 +60,10 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -99,7 +99,7 @@ index 3ccf166366..e2d8ed88f0 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
 @@ -35,6 +35,7 @@ public class PacketHandshakingInSetProtocol implements Packet<PacketHandshakingI
@@ -111,10 +111,10 @@ 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 d554054e86..de43559647 100644
+index 1c5007015..cade504af 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -184,6 +184,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -183,6 +183,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
          }
      }
  
@@ -136,5 +136,5 @@ index d554054e86..de43559647 100644
      public double getEyeHeight(boolean ignorePose) {
          if (ignorePose) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0181-revert-serverside-behavior-of-keepalives.patch b/Spigot-Server-Patches/0177-revert-serverside-behavior-of-keepalives.patch
similarity index 96%
rename from Spigot-Server-Patches/0181-revert-serverside-behavior-of-keepalives.patch
rename to Spigot-Server-Patches/0177-revert-serverside-behavior-of-keepalives.patch
index 3693ed9a0..d98397430 100644
--- a/Spigot-Server-Patches/0181-revert-serverside-behavior-of-keepalives.patch
+++ b/Spigot-Server-Patches/0177-revert-serverside-behavior-of-keepalives.patch
@@ -1,4 +1,4 @@
-From 284e000b1ea70ce686594d35c360f4bde826515b Mon Sep 17 00:00:00 2001
+From a04915c0d944cae377ef56a079b1da1b840766fa Mon Sep 17 00:00:00 2001
 From: Shane Freeder <theboyetronic@gmail.com>
 Date: Sun, 15 Oct 2017 00:29:07 +0100
 Subject: [PATCH] revert serverside behavior of keepalives
@@ -17,7 +17,7 @@ from networking or during connections flood of chunk packets on slower clients,
  at the cost of dead connections being kept open for longer.
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 0cb68a8553..1d140b3fe7 100644
+index a4660f2b8..9af8e947e 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
 @@ -70,7 +70,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -37,7 +37,7 @@ index 0cb68a8553..1d140b3fe7 100644
  
      public PlayerConnection(MinecraftServer minecraftserver, NetworkManager networkmanager, EntityPlayer entityplayer) {
          this.minecraftServer = minecraftserver;
-@@ -179,18 +180,26 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -182,18 +183,26 @@ public class PlayerConnection implements PacketListenerPlayIn {
          }
  
          this.minecraftServer.getMethodProfiler().enter("keepAlive");
@@ -74,5 +74,5 @@ index 0cb68a8553..1d140b3fe7 100644
          this.minecraftServer.getMethodProfiler().exit();
          // CraftBukkit start
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0182-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/Spigot-Server-Patches/0178-Send-attack-SoundEffects-only-to-players-who-can-see.patch
similarity index 59%
rename from Spigot-Server-Patches/0182-Send-attack-SoundEffects-only-to-players-who-can-see.patch
rename to Spigot-Server-Patches/0178-Send-attack-SoundEffects-only-to-players-who-can-see.patch
index 1401c03fa..0713ce78f 100644
--- a/Spigot-Server-Patches/0182-Send-attack-SoundEffects-only-to-players-who-can-see.patch
+++ b/Spigot-Server-Patches/0178-Send-attack-SoundEffects-only-to-players-who-can-see.patch
@@ -1,4 +1,4 @@
-From b9256e9dff588622499e1f768a5ebefef50626db Mon Sep 17 00:00:00 2001
+From 23a78d79f6a374067ac84e4ac07d2160bf2e6614 Mon Sep 17 00:00:00 2001
 From: Brokkonaut <hannos17@gmx.de>
 Date: Tue, 31 Oct 2017 03:26:18 +0100
 Subject: [PATCH] Send attack SoundEffects only to players who can see the
@@ -6,11 +6,11 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index 6acab2b97..50ded7483 100644
+index 2d982ce1e..fd7de143e 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
-@@ -957,6 +957,15 @@ public abstract class EntityHuman extends EntityLiving {
-         return super.isFrozen() || this.isSleeping();
+@@ -1023,6 +1023,15 @@ public abstract class EntityHuman extends EntityLiving {
+         return vec3d;
      }
  
 +    // Paper start - send SoundEffect to everyone who can see fromEntity
@@ -23,59 +23,59 @@ index 6acab2b97..50ded7483 100644
 +    // Paper end
 +
      public void attack(Entity entity) {
-         if (entity.bs()) {
+         if (entity.bA()) {
              if (!entity.t(this)) {
-@@ -981,7 +990,7 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -1047,7 +1056,7 @@ public abstract class EntityHuman extends EntityLiving {
                      int i = b0 + EnchantmentManager.b((EntityLiving) this);
  
                      if (this.isSprinting() && flag) {
--                        this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_KNOCKBACK, this.getSoundCategory(), 1.0F, 1.0F);
-+                        sendSoundEffect(this, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_KNOCKBACK, this.getSoundCategory(), 1.0F, 1.0F);  // Paper - send while respecting visibility
+-                        this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_KNOCKBACK, this.getSoundCategory(), 1.0F, 1.0F);
++                        sendSoundEffect(this, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_KNOCKBACK, this.getSoundCategory(), 1.0F, 1.0F); // Paper - send while respecting visibility
                          ++i;
                          flag1 = true;
                      }
-@@ -1056,7 +1065,7 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -1122,7 +1131,7 @@ public abstract class EntityHuman extends EntityLiving {
                                  }
                              }
  
--                            this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_SWEEP, this.getSoundCategory(), 1.0F, 1.0F);
-+                            sendSoundEffect(this, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_SWEEP, this.getSoundCategory(), 1.0F, 1.0F);  // Paper - send while respecting visibility
-                             this.dE();
+-                            this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_SWEEP, this.getSoundCategory(), 1.0F, 1.0F);
++                            sendSoundEffect(this, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_SWEEP, this.getSoundCategory(), 1.0F, 1.0F); // Paper - send while respecting visibility
+                             this.ea();
                          }
  
-@@ -1084,15 +1093,15 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -1150,15 +1159,15 @@ public abstract class EntityHuman extends EntityLiving {
                          }
  
                          if (flag2) {
--                            this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_CRIT, this.getSoundCategory(), 1.0F, 1.0F);
-+                            sendSoundEffect(this, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_CRIT, this.getSoundCategory(), 1.0F, 1.0F);  // Paper - send while respecting visibility
+-                            this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_CRIT, this.getSoundCategory(), 1.0F, 1.0F);
++                            sendSoundEffect(this, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_CRIT, this.getSoundCategory(), 1.0F, 1.0F); // Paper - send while respecting visibility
                              this.a(entity);
                          }
  
                          if (!flag2 && !flag3) {
                              if (flag) {
--                                this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_STRONG, this.getSoundCategory(), 1.0F, 1.0F);
-+                                sendSoundEffect(this, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_STRONG, this.getSoundCategory(), 1.0F, 1.0F);  // Paper - send while respecting visibility
+-                                this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_STRONG, this.getSoundCategory(), 1.0F, 1.0F);
++                                sendSoundEffect(this, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_STRONG, this.getSoundCategory(), 1.0F, 1.0F); // Paper - send while respecting visibility
                              } else {
--                                this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_WEAK, this.getSoundCategory(), 1.0F, 1.0F);
-+                                sendSoundEffect(this, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_WEAK, this.getSoundCategory(), 1.0F, 1.0F);  // Paper - send while respecting visibility
+-                                this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_WEAK, this.getSoundCategory(), 1.0F, 1.0F);
++                                sendSoundEffect(this, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_WEAK, this.getSoundCategory(), 1.0F, 1.0F); // Paper - send while respecting visibility
                              }
                          }
  
-@@ -1144,7 +1153,7 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -1210,7 +1219,7 @@ public abstract class EntityHuman extends EntityLiving {
  
                          this.applyExhaustion(world.spigotConfig.combatExhaustion); // Spigot - Change to use configurable value
                      } else {
--                        this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_NODAMAGE, this.getSoundCategory(), 1.0F, 1.0F);
-+                        sendSoundEffect(this, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_NODAMAGE, this.getSoundCategory(), 1.0F, 1.0F); // Paper - send while respecting visibility
+-                        this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_NODAMAGE, this.getSoundCategory(), 1.0F, 1.0F);
++                        sendSoundEffect(this, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_PLAYER_ATTACK_NODAMAGE, this.getSoundCategory(), 1.0F, 1.0F); // Paper - send while respecting visibility
                          if (flag4) {
                              entity.extinguish();
                          }
 diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index 8add757cc..22f1d9e27 100644
+index 8cbad8362..117939bb7 100644
 --- a/src/main/java/net/minecraft/server/World.java
 +++ b/src/main/java/net/minecraft/server/World.java
-@@ -671,6 +671,11 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
+@@ -591,6 +591,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
          this.playSound(entityhuman, (double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, soundeffect, soundcategory, f, f1);
      }
  
@@ -88,5 +88,5 @@ index 8add757cc..22f1d9e27 100644
  
      public abstract void playSound(@Nullable EntityHuman entityhuman, Entity entity, SoundEffect soundeffect, SoundCategory soundcategory, float f, float f1);
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0183-Option-for-maximum-exp-value-when-merging-orbs.patch b/Spigot-Server-Patches/0179-Option-for-maximum-exp-value-when-merging-orbs.patch
similarity index 95%
rename from Spigot-Server-Patches/0183-Option-for-maximum-exp-value-when-merging-orbs.patch
rename to Spigot-Server-Patches/0179-Option-for-maximum-exp-value-when-merging-orbs.patch
index 8856b1ffa..86ff2f2ed 100644
--- a/Spigot-Server-Patches/0183-Option-for-maximum-exp-value-when-merging-orbs.patch
+++ b/Spigot-Server-Patches/0179-Option-for-maximum-exp-value-when-merging-orbs.patch
@@ -1,11 +1,11 @@
-From 3885f25d48d36b79204cfdd48b64c40227a54199 Mon Sep 17 00:00:00 2001
+From 2fceac6687db42c0f6c5fa45ee062a4d55722d6f Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Fri, 10 Nov 2017 23:03:12 -0500
 Subject: [PATCH] Option for maximum exp value when merging orbs
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 891a52b2a..063ba6a1d 100644
+index c145e27cc..671587631 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -338,4 +338,10 @@ public class PaperWorldConfig {
@@ -20,7 +20,7 @@ index 891a52b2a..063ba6a1d 100644
 +    }
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7f38d82a6..a438e4320 100644
+index 2bf53db88..e310f2afe 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -537,16 +537,32 @@ public class CraftEventFactory {
@@ -60,5 +60,5 @@ index 7f38d82a6..a438e4320 100644
          // Spigot end
          } else if (!(entity instanceof EntityPlayer)) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0184-Add-PlayerArmorChangeEvent.patch b/Spigot-Server-Patches/0180-Add-PlayerArmorChangeEvent.patch
similarity index 89%
rename from Spigot-Server-Patches/0184-Add-PlayerArmorChangeEvent.patch
rename to Spigot-Server-Patches/0180-Add-PlayerArmorChangeEvent.patch
index 90636c83c..b0a7ff463 100644
--- a/Spigot-Server-Patches/0184-Add-PlayerArmorChangeEvent.patch
+++ b/Spigot-Server-Patches/0180-Add-PlayerArmorChangeEvent.patch
@@ -1,11 +1,11 @@
-From d8089c4bf30144a196c0cea8306ef6d32899ce37 Mon Sep 17 00:00:00 2001
+From 353818a8456ac6461323ddb7ac6d1815cef712db Mon Sep 17 00:00:00 2001
 From: pkt77 <parkerkt77@gmail.com>
 Date: Fri, 10 Nov 2017 23:46:34 -0500
 Subject: [PATCH] Add PlayerArmorChangeEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 46dfb3c498..74c1f7c447 100644
+index bf049bfc4..c03fcd2d3 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
 @@ -1,5 +1,6 @@
@@ -14,8 +14,8 @@ index 46dfb3c498..74c1f7c447 100644
 +import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent;
  import com.google.common.base.Objects;
  import com.google.common.collect.ImmutableList;
- import com.google.common.collect.Maps;
-@@ -2276,6 +2277,13 @@ public abstract class EntityLiving extends Entity {
+ import com.google.common.collect.ImmutableSet;
+@@ -2334,6 +2335,13 @@ public abstract class EntityLiving extends Entity {
                  ItemStack itemstack1 = this.getEquipment(enumitemslot);
  
                  if (!ItemStack.matches(itemstack1, itemstack)) {
@@ -30,7 +30,7 @@ index 46dfb3c498..74c1f7c447 100644
                      if (!itemstack.isEmpty()) {
                          this.getAttributeMap().a(itemstack.a(enumitemslot));
 diff --git a/src/main/java/net/minecraft/server/EnumItemSlot.java b/src/main/java/net/minecraft/server/EnumItemSlot.java
-index 02a7ae6785..60b235f16f 100644
+index 02a7ae678..60b235f16 100644
 --- a/src/main/java/net/minecraft/server/EnumItemSlot.java
 +++ b/src/main/java/net/minecraft/server/EnumItemSlot.java
 @@ -16,6 +16,7 @@ public enum EnumItemSlot {
@@ -42,5 +42,5 @@ index 02a7ae6785..60b235f16f 100644
          return this.g;
      }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0185-Prevent-logins-from-being-processed-when-the-player-.patch b/Spigot-Server-Patches/0181-Prevent-logins-from-being-processed-when-the-player-.patch
similarity index 90%
rename from Spigot-Server-Patches/0185-Prevent-logins-from-being-processed-when-the-player-.patch
rename to Spigot-Server-Patches/0181-Prevent-logins-from-being-processed-when-the-player-.patch
index 76cd062f6..38c0f9fff 100644
--- a/Spigot-Server-Patches/0185-Prevent-logins-from-being-processed-when-the-player-.patch
+++ b/Spigot-Server-Patches/0181-Prevent-logins-from-being-processed-when-the-player-.patch
@@ -1,4 +1,4 @@
-From 1ef9c95d02515c643df7f8ac642186f4e81ade43 Mon Sep 17 00:00:00 2001
+From 02a7530a63a6e92cd283b0416021f7b128296ae5 Mon Sep 17 00:00:00 2001
 From: killme <killme-git@ibts.me>
 Date: Sun, 12 Nov 2017 19:40:01 +0100
 Subject: [PATCH] Prevent logins from being processed when the player has
@@ -6,7 +6,7 @@ Subject: [PATCH] Prevent logins from being processed when the player has
 
 
 diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
-index c3ff7a6b8f..a2af5b4b29 100644
+index a1be28390..828b64e41 100644
 --- a/src/main/java/net/minecraft/server/LoginListener.java
 +++ b/src/main/java/net/minecraft/server/LoginListener.java
 @@ -56,7 +56,11 @@ public class LoginListener implements PacketLoginInListener {
@@ -23,5 +23,5 @@ index c3ff7a6b8f..a2af5b4b29 100644
              EntityPlayer entityplayer = this.server.getPlayerList().a(this.i.getId());
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0186-use-CB-BlockState-implementations-for-captured-block.patch b/Spigot-Server-Patches/0182-use-CB-BlockState-implementations-for-captured-block.patch
similarity index 88%
rename from Spigot-Server-Patches/0186-use-CB-BlockState-implementations-for-captured-block.patch
rename to Spigot-Server-Patches/0182-use-CB-BlockState-implementations-for-captured-block.patch
index cbd2c9c65..873c05599 100644
--- a/Spigot-Server-Patches/0186-use-CB-BlockState-implementations-for-captured-block.patch
+++ b/Spigot-Server-Patches/0182-use-CB-BlockState-implementations-for-captured-block.patch
@@ -1,4 +1,4 @@
-From 73f423d4b038df91294e25f806ab2836b290bfbf Mon Sep 17 00:00:00 2001
+From 576298272c0aa61f8fd7f23d99c98bec4b5b2730 Mon Sep 17 00:00:00 2001
 From: Shane Freeder <theboyetronic@gmail.com>
 Date: Thu, 16 Nov 2017 12:12:41 +0000
 Subject: [PATCH] use CB BlockState implementations for captured blocks
@@ -18,10 +18,10 @@ the blockstate that will be valid for restoration, as opposed to dropping
 information on restoration when the event is cancelled.
 
 diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index 22f1d9e27b..e780f7af40 100644
+index 117939bb7..39b136935 100644
 --- a/src/main/java/net/minecraft/server/World.java
 +++ b/src/main/java/net/minecraft/server/World.java
-@@ -348,7 +348,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
+@@ -282,7 +282,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
              // CraftBukkit start - capture blockstates
              CraftBlockState blockstate = null;
              if (this.captureBlockStates) {
@@ -31,5 +31,5 @@ index 22f1d9e27b..e780f7af40 100644
              }
              // CraftBukkit end
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0187-API-to-get-a-BlockState-without-a-snapshot.patch b/Spigot-Server-Patches/0183-API-to-get-a-BlockState-without-a-snapshot.patch
similarity index 95%
rename from Spigot-Server-Patches/0187-API-to-get-a-BlockState-without-a-snapshot.patch
rename to Spigot-Server-Patches/0183-API-to-get-a-BlockState-without-a-snapshot.patch
index 1d908c753..7cc2472af 100644
--- a/Spigot-Server-Patches/0187-API-to-get-a-BlockState-without-a-snapshot.patch
+++ b/Spigot-Server-Patches/0183-API-to-get-a-BlockState-without-a-snapshot.patch
@@ -1,4 +1,4 @@
-From 3da7acd8b4c3fb3ae58fe3f8c2c3210ef0f1a790 Mon Sep 17 00:00:00 2001
+From 282a855337c9b21d88e3a025014d290aea141cf8 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 6 Nov 2017 21:08:22 -0500
 Subject: [PATCH] API to get a BlockState without a snapshot
@@ -13,10 +13,10 @@ also Avoid NPE during CraftBlockEntityState load if could not get TE
 If Tile Entity was null, correct Sign to return empty lines instead of null
 
 diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
-index af6977dcd..c72b01386 100644
+index 630b27915..958279249 100644
 --- a/src/main/java/net/minecraft/server/TileEntity.java
 +++ b/src/main/java/net/minecraft/server/TileEntity.java
-@@ -230,7 +230,12 @@ public abstract class TileEntity implements KeyedObject { // Paper
+@@ -231,7 +231,12 @@ public abstract class TileEntity implements KeyedObject { // Paper
      }
  
      // CraftBukkit start - add method
@@ -29,7 +29,7 @@ index af6977dcd..c72b01386 100644
          if (world == null) return null;
          // Spigot start
          org.bukkit.block.Block block = world.getWorld().getBlockAt(position.getX(), position.getY(), position.getZ());
-@@ -239,7 +244,7 @@ public abstract class TileEntity implements KeyedObject { // Paper
+@@ -240,7 +245,7 @@ public abstract class TileEntity implements KeyedObject { // Paper
              return null;
          }
          // Spigot end
@@ -39,7 +39,7 @@ index af6977dcd..c72b01386 100644
          return null;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index d3e524093..da3c50c70 100644
+index 3d632543b..887ade5e8 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 @@ -309,6 +309,20 @@ public class CraftBlock implements Block {
@@ -131,5 +131,5 @@ index 15022ada0..af15656cc 100644
  
      @Override
 -- 
-2.24.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0188-AsyncTabCompleteEvent.patch b/Spigot-Server-Patches/0184-AsyncTabCompleteEvent.patch
similarity index 95%
rename from Spigot-Server-Patches/0188-AsyncTabCompleteEvent.patch
rename to Spigot-Server-Patches/0184-AsyncTabCompleteEvent.patch
index 5857f3fea..5a1d21bc8 100644
--- a/Spigot-Server-Patches/0188-AsyncTabCompleteEvent.patch
+++ b/Spigot-Server-Patches/0184-AsyncTabCompleteEvent.patch
@@ -1,4 +1,4 @@
-From 8dc339d494ac04fa85ad7eca65213096c14c98f4 Mon Sep 17 00:00:00 2001
+From 78dda52d682ec67a2f8154d53b92ee578ae623e7 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 26 Nov 2017 13:19:58 -0500
 Subject: [PATCH] AsyncTabCompleteEvent
@@ -14,10 +14,10 @@ completion, such as offline players.
 Also adds isCommand and getLocation to the sync TabCompleteEvent
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 1d140b3fe7..6008613fae 100644
+index 9af8e947e..ad2a36627 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -521,10 +521,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -524,10 +524,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
  
      @Override
      public void a(PacketPlayInTabComplete packetplayintabcomplete) {
@@ -30,7 +30,7 @@ index 1d140b3fe7..6008613fae 100644
              return;
          }
          // CraftBukkit end
-@@ -534,12 +534,37 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -537,12 +537,37 @@ public class PlayerConnection implements PacketListenerPlayIn {
              stringreader.skip();
          }
  
@@ -72,10 +72,10 @@ index 1d140b3fe7..6008613fae 100644
  
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 308ae2e157..3938adf7c7 100644
+index 2f7769c00..9fe19fb59 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1668,7 +1668,7 @@ public final class CraftServer implements Server {
+@@ -1671,7 +1671,7 @@ public final class CraftServer implements Server {
              offers = tabCompleteChat(player, message);
          }
  
@@ -85,7 +85,7 @@ index 308ae2e157..3938adf7c7 100644
  
          return tabEvent.isCancelled() ? Collections.EMPTY_LIST : tabEvent.getCompletions();
 diff --git a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
-index 5510266fb1..a51202ed53 100644
+index 5510266fb..a51202ed5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
 +++ b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
 @@ -28,6 +28,39 @@ public class ConsoleCommandCompleter implements Completer {
@@ -129,5 +129,5 @@ index 5510266fb1..a51202ed53 100644
          Waitable<List<String>> waitable = new Waitable<List<String>>() {
              @Override
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0189-Avoid-NPE-in-PathfinderGoalTempt.patch b/Spigot-Server-Patches/0185-Avoid-NPE-in-PathfinderGoalTempt.patch
similarity index 88%
rename from Spigot-Server-Patches/0189-Avoid-NPE-in-PathfinderGoalTempt.patch
rename to Spigot-Server-Patches/0185-Avoid-NPE-in-PathfinderGoalTempt.patch
index 9c50e6284..2f25aa6e7 100644
--- a/Spigot-Server-Patches/0189-Avoid-NPE-in-PathfinderGoalTempt.patch
+++ b/Spigot-Server-Patches/0185-Avoid-NPE-in-PathfinderGoalTempt.patch
@@ -1,11 +1,11 @@
-From f28a5e2b34432128d6bed2ef1671bc526da11581 Mon Sep 17 00:00:00 2001
+From c72f85b26faae29bc8da82ed7ba569f479c5f427 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 29 Nov 2017 22:18:54 -0500
 Subject: [PATCH] Avoid NPE in PathfinderGoalTempt
 
 
 diff --git a/src/main/java/net/minecraft/server/PathfinderGoalTempt.java b/src/main/java/net/minecraft/server/PathfinderGoalTempt.java
-index fb395bcded..d1164dd682 100644
+index eafdcb916..d37a2fa0a 100644
 --- a/src/main/java/net/minecraft/server/PathfinderGoalTempt.java
 +++ b/src/main/java/net/minecraft/server/PathfinderGoalTempt.java
 @@ -55,7 +55,7 @@ public class PathfinderGoalTempt extends PathfinderGoal {
@@ -18,5 +18,5 @@ index fb395bcded..d1164dd682 100644
          }
      }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0190-PlayerPickupExperienceEvent.patch b/Spigot-Server-Patches/0186-PlayerPickupExperienceEvent.patch
similarity index 79%
rename from Spigot-Server-Patches/0190-PlayerPickupExperienceEvent.patch
rename to Spigot-Server-Patches/0186-PlayerPickupExperienceEvent.patch
index 50daa111a..68d6b514f 100644
--- a/Spigot-Server-Patches/0190-PlayerPickupExperienceEvent.patch
+++ b/Spigot-Server-Patches/0186-PlayerPickupExperienceEvent.patch
@@ -1,4 +1,4 @@
-From 0b8205b527e5acfa6d114903d7f2c5f322871e34 Mon Sep 17 00:00:00 2001
+From d658459a32f49fc117a6dd2af0355f472518ca05 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 19 Dec 2017 22:02:53 -0500
 Subject: [PATCH] PlayerPickupExperienceEvent
@@ -6,18 +6,18 @@ Subject: [PATCH] PlayerPickupExperienceEvent
 Allows plugins to cancel a player picking up an experience orb
 
 diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
-index 35f03947d..e6b810756 100644
+index d4275e733..b3edb69a9 100644
 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 @@ -222,7 +222,7 @@ public class EntityExperienceOrb extends Entity {
      @Override
      public void pickup(EntityHuman entityhuman) {
          if (!this.world.isClientSide) {
--            if (this.d == 0 && entityhuman.bF == 0) {
-+            if (this.d == 0 && entityhuman.bF == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((EntityPlayer) entityhuman).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper
-                 entityhuman.bF = 2;
+-            if (this.d == 0 && entityhuman.bC == 0) {
++            if (this.d == 0 && entityhuman.bC == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((EntityPlayer) entityhuman).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper
+                 entityhuman.bC = 2;
                  entityhuman.receive(this, 1);
                  Entry<EnumItemSlot, ItemStack> entry = EnchantmentManager.b(Enchantments.MENDING, (EntityLiving) entityhuman);
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0191-ExperienceOrbMergeEvent.patch b/Spigot-Server-Patches/0187-ExperienceOrbMergeEvent.patch
similarity index 93%
rename from Spigot-Server-Patches/0191-ExperienceOrbMergeEvent.patch
rename to Spigot-Server-Patches/0187-ExperienceOrbMergeEvent.patch
index 3e087581f..5f50f82bd 100644
--- a/Spigot-Server-Patches/0191-ExperienceOrbMergeEvent.patch
+++ b/Spigot-Server-Patches/0187-ExperienceOrbMergeEvent.patch
@@ -1,4 +1,4 @@
-From 782fe85c988f7dff4bd866321a742aad5865e93d Mon Sep 17 00:00:00 2001
+From f779071caff42d2a59ef762a8d39da9f3e0227e6 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 19 Dec 2017 22:57:26 -0500
 Subject: [PATCH] ExperienceOrbMergeEvent
@@ -8,7 +8,7 @@ Plugins can cancel this if they want to ensure experience orbs do not lose impor
 metadata such as spawn reason, or conditionally move data from source to target.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 5257941e9..489943410 100644
+index e310f2afe..9b314eacc 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -547,7 +547,7 @@ public class CraftEventFactory {
@@ -21,5 +21,5 @@ index 5257941e9..489943410 100644
                              if ((int) newTotal < 0) continue; // Overflow
                              if (maxValue > 0 && newTotal > (long)maxValue) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0192-Ability-to-apply-mending-to-XP-API.patch b/Spigot-Server-Patches/0188-Ability-to-apply-mending-to-XP-API.patch
similarity index 92%
rename from Spigot-Server-Patches/0192-Ability-to-apply-mending-to-XP-API.patch
rename to Spigot-Server-Patches/0188-Ability-to-apply-mending-to-XP-API.patch
index 216440a03..9b38dbc80 100644
--- a/Spigot-Server-Patches/0192-Ability-to-apply-mending-to-XP-API.patch
+++ b/Spigot-Server-Patches/0188-Ability-to-apply-mending-to-XP-API.patch
@@ -1,4 +1,4 @@
-From d5fb0d436ef69748430a2bd4aefd7d74ccc57ff0 Mon Sep 17 00:00:00 2001
+From 72ec0195082095bf3f6043846e3450dd66f06963 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 20 Dec 2017 17:36:49 -0500
 Subject: [PATCH] Ability to apply mending to XP API
@@ -10,10 +10,10 @@ 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 ed9aedc07..1d16919e6 100644
+index 1822178e8..fabc7a8dd 100644
 --- a/src/main/java/net/minecraft/server/EnchantmentManager.java
 +++ b/src/main/java/net/minecraft/server/EnchantmentManager.java
-@@ -241,6 +241,11 @@ public class EnchantmentManager {
+@@ -246,6 +246,11 @@ public class EnchantmentManager {
          return getEnchantmentLevel(Enchantments.CHANNELING, itemstack) > 0;
      }
  
@@ -26,7 +26,7 @@ index ed9aedc07..1d16919e6 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 e6b810756..ba3e66f9e 100644
+index b3edb69a9..87c6b77ce 100644
 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
 @@ -254,10 +254,12 @@ public class EntityExperienceOrb extends Entity {
@@ -43,10 +43,10 @@ index e6b810756..ba3e66f9e 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 3e8979dfe..a1481c5b8 100644
+index cade504af..c82de14eb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1063,8 +1063,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1047,8 +1047,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
          return GameMode.getByValue(getHandle().playerInteractManager.getGameMode().getId());
      }
  
@@ -88,5 +88,5 @@ index 3e8979dfe..a1481c5b8 100644
      }
  
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0193-Make-max-squid-spawn-height-configurable.patch b/Spigot-Server-Patches/0189-Make-max-squid-spawn-height-configurable.patch
similarity index 93%
rename from Spigot-Server-Patches/0193-Make-max-squid-spawn-height-configurable.patch
rename to Spigot-Server-Patches/0189-Make-max-squid-spawn-height-configurable.patch
index d4b6007f2..b318dcacb 100644
--- a/Spigot-Server-Patches/0193-Make-max-squid-spawn-height-configurable.patch
+++ b/Spigot-Server-Patches/0189-Make-max-squid-spawn-height-configurable.patch
@@ -1,4 +1,4 @@
-From c8322dca6d932724fccf3fdff4d06653ae0bdcae Mon Sep 17 00:00:00 2001
+From eaaf3357e4e96bf181c4f311f7e20ad9e798830c Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Thu, 11 Jan 2018 16:47:28 -0600
 Subject: [PATCH] Make max squid spawn height configurable
@@ -7,7 +7,7 @@ I don't know why upstream made only the minimum height configurable but
 whatever
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 063ba6a1d..aacce432b 100644
+index 671587631..e315a00cc 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -344,4 +344,9 @@ public class PaperWorldConfig {
@@ -21,7 +21,7 @@ index 063ba6a1d..aacce432b 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
-index f8fa64959..735d1879a 100644
+index 8c4f3b2c2..1c1ff2069 100644
 --- a/src/main/java/net/minecraft/server/EntitySquid.java
 +++ b/src/main/java/net/minecraft/server/EntitySquid.java
 @@ -171,7 +171,8 @@ public class EntitySquid extends EntityWaterAnimal {
@@ -35,5 +35,5 @@ index f8fa64959..735d1879a 100644
  
      public void a(float f, float f1, float f2) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0194-PreCreatureSpawnEvent.patch b/Spigot-Server-Patches/0190-PreCreatureSpawnEvent.patch
similarity index 70%
rename from Spigot-Server-Patches/0194-PreCreatureSpawnEvent.patch
rename to Spigot-Server-Patches/0190-PreCreatureSpawnEvent.patch
index 25c1e97c8..3906857f5 100644
--- a/Spigot-Server-Patches/0194-PreCreatureSpawnEvent.patch
+++ b/Spigot-Server-Patches/0190-PreCreatureSpawnEvent.patch
@@ -1,4 +1,4 @@
-From d12fdc3e162f3ed34415d5aab640a2c0dde75f70 Mon Sep 17 00:00:00 2001
+From 77f5f5b6b827dea777daf452900e3aea606e3cbd Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 14 Jan 2018 17:01:31 -0500
 Subject: [PATCH] PreCreatureSpawnEvent
@@ -15,40 +15,39 @@ instead and save a lot of server resources.
 See: https://github.com/PaperMC/Paper/issues/917
 
 diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
-index 59bd9ccd70..6f5d8b0315 100644
+index 258e96ba5..fe8bc7f75 100644
 --- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
 +++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
-@@ -104,6 +104,28 @@ public abstract class MobSpawnerAbstract {
+@@ -105,6 +105,27 @@ public abstract class MobSpawnerAbstract {
                      double d5 = j >= 3 ? nbttaglist.h(2) : (double) blockposition.getZ() + (world.random.nextDouble() - world.random.nextDouble()) * (double) this.spawnRange + 0.5D;
  
-                     if (world.c(((EntityTypes) optional.get()).a(d3, d4, d5)) && EntityPositionTypes.a((EntityTypes) optional.get(), world.getMinecraftWorld(), EnumMobSpawn.SPAWNER, new BlockPosition(d3, d4, d5), world.getRandom())) {
-+                    // Paper start
-+                    EntityTypes entityType = optional.get();
-+                    String key = EntityTypes.getName(entityType).getKey();
+                     if (world.a(((EntityTypes) optional.get()).a(d3, d4, d5)) && EntityPositionTypes.a((EntityTypes) optional.get(), world.getMinecraftWorld(), EnumMobSpawn.SPAWNER, new BlockPosition(d3, d4, d5), world.getRandom())) {
++                        // Paper start
++                        EntityTypes entityType = optional.get();
++                        String key = EntityTypes.getName(entityType).getKey();
 +
-+                    org.bukkit.entity.EntityType type = org.bukkit.entity.EntityType.fromName(key);
-+                    if (type != null) {
-+                        com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event;
-+                        event = new com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent(
-+                            MCUtil.toLocation(world, d3, d4, d5),
-+                            type,
-+                            org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.SPAWNER
-+                        );
-+                        if (!event.callEvent()) {
-+                            flag = true;
-+                            if (event.shouldAbortSpawn()) {
-+                                break;
++                        org.bukkit.entity.EntityType type = org.bukkit.entity.EntityType.fromName(key);
++                        if (type != null) {
++                            com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event;
++                            event = new com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent(
++                                MCUtil.toLocation(world, d3, d4, d5),
++                                type,
++                                org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.SPAWNER
++                            );
++                            if (!event.callEvent()) {
++                                flag = true;
++                                if (event.shouldAbortSpawn()) {
++                                    break;
++                                }
++                                continue;
 +                            }
-+                            continue;
 +                        }
-+                    }
-+                    // Paper end
-+
++                        // Paper end
                          Entity entity = EntityTypes.a(nbttagcompound, world, (entity1) -> {
                              entity1.setPositionRotation(d3, d4, d5, entity1.yaw, entity1.pitch);
                              return entity1;
 diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
-index 9c065c9997..30da877d53 100644
+index 02157d051..487114367 100644
 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java
 +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
 @@ -38,7 +38,7 @@ public final class SpawnerCreature {
@@ -61,7 +60,7 @@ index 9c065c9997..30da877d53 100644
  
                      while (true) {
 @@ -77,6 +77,25 @@ public final class SpawnerCreature {
-                                                     if (a(entitypositiontypes_surface, (IWorldReader) world, (BlockPosition) blockposition_mutableblockposition, entitytypes) && EntityPositionTypes.a(entitytypes, world, EnumMobSpawn.NATURAL, blockposition_mutableblockposition, world.random) && world.c(entitytypes.a((double) f, (double) k, (double) f1))) {
+                                                     if (a(entitypositiontypes_surface, (IWorldReader) worldserver, (BlockPosition) blockposition_mutableblockposition, entitytypes) && EntityPositionTypes.a(entitytypes, worldserver, EnumMobSpawn.NATURAL, blockposition_mutableblockposition, worldserver.random) && worldserver.a(entitytypes.a((double) f, (double) k, (double) f1))) {
                                                          EntityInsentient entityinsentient;
  
 +                                                    // Paper start
@@ -84,8 +83,8 @@ index 9c065c9997..30da877d53 100644
 +                                                    // Paper end
 +
                                                          try {
-                                                             Entity entity = entitytypes.a(world);
+                                                             Entity entity = entitytypes.a((World) worldserver);
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0195-PlayerNaturallySpawnCreaturesEvent.patch b/Spigot-Server-Patches/0191-PlayerNaturallySpawnCreaturesEvent.patch
similarity index 92%
rename from Spigot-Server-Patches/0195-PlayerNaturallySpawnCreaturesEvent.patch
rename to Spigot-Server-Patches/0191-PlayerNaturallySpawnCreaturesEvent.patch
index ebd5d32c8..9e8ad3d81 100644
--- a/Spigot-Server-Patches/0195-PlayerNaturallySpawnCreaturesEvent.patch
+++ b/Spigot-Server-Patches/0191-PlayerNaturallySpawnCreaturesEvent.patch
@@ -1,4 +1,4 @@
-From d13d8591c15acda5b1d6521ddad05834b9fbc65b Mon Sep 17 00:00:00 2001
+From 880e221e575862228c507b8f5dcb67ca4d78f2b0 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 14 Jan 2018 17:36:02 -0500
 Subject: [PATCH] PlayerNaturallySpawnCreaturesEvent
@@ -9,10 +9,10 @@ from triggering monster spawns on a server.
 Also a highly more effecient way to blanket block spawns in a world
 
 diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
-index 6a3a66e7d..649600b3e 100644
+index 492d1538f..df24bac3b 100644
 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
 +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
-@@ -842,12 +842,24 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
+@@ -843,12 +843,24 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
          chunkRange = (chunkRange > world.spigotConfig.viewDistance) ? (byte) world.spigotConfig.viewDistance : chunkRange;
          chunkRange = (chunkRange > 8) ? 8 : chunkRange;
  
@@ -40,5 +40,5 @@ index 6a3a66e7d..649600b3e 100644
      }
  
 -- 
-2.24.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0196-Add-setPlayerProfile-API-for-Skulls.patch b/Spigot-Server-Patches/0192-Add-setPlayerProfile-API-for-Skulls.patch
similarity index 96%
rename from Spigot-Server-Patches/0196-Add-setPlayerProfile-API-for-Skulls.patch
rename to Spigot-Server-Patches/0192-Add-setPlayerProfile-API-for-Skulls.patch
index eeac5570d..969a083ae 100644
--- a/Spigot-Server-Patches/0196-Add-setPlayerProfile-API-for-Skulls.patch
+++ b/Spigot-Server-Patches/0192-Add-setPlayerProfile-API-for-Skulls.patch
@@ -1,4 +1,4 @@
-From 2abab834a6150dde60c05f78153364368618be36 Mon Sep 17 00:00:00 2001
+From 2ef86bc0487e416d204b91b9fb1ca946971dbe13 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Fri, 19 Jan 2018 00:36:25 -0500
 Subject: [PATCH] Add setPlayerProfile API for Skulls
@@ -7,7 +7,7 @@ This allows you to create already filled textures on Skulls to avoid texture loo
 which commonly cause rate limit issues with Mojang API
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
-index a4bc7f9701..2dd2f476f0 100644
+index a4bc7f970..2dd2f476f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
 @@ -1,5 +1,7 @@
@@ -48,7 +48,7 @@ index a4bc7f9701..2dd2f476f0 100644
      public BlockFace getRotation() {
          BlockData blockData = getBlockData();
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
-index 0136e1bfe1..aee97b9f03 100644
+index a83abc722..c29a78fd3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
 @@ -3,6 +3,8 @@ package org.bukkit.craftbukkit.inventory;
@@ -89,5 +89,5 @@ index 0136e1bfe1..aee97b9f03 100644
      public OfflinePlayer getOwningPlayer() {
          if (hasOwner()) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0197-Fill-Profile-Property-Events.patch b/Spigot-Server-Patches/0193-Fill-Profile-Property-Events.patch
similarity index 94%
rename from Spigot-Server-Patches/0197-Fill-Profile-Property-Events.patch
rename to Spigot-Server-Patches/0193-Fill-Profile-Property-Events.patch
index 736171448..c25cb5f37 100644
--- a/Spigot-Server-Patches/0197-Fill-Profile-Property-Events.patch
+++ b/Spigot-Server-Patches/0193-Fill-Profile-Property-Events.patch
@@ -1,4 +1,4 @@
-From 983dc15ebbccfcee1a79c984189d6a20984b7223 Mon Sep 17 00:00:00 2001
+From 29b51a8a3a8baa13e34edeb2742e860244d98ccc Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 2 Jan 2018 00:31:26 -0500
 Subject: [PATCH] Fill Profile Property Events
@@ -11,7 +11,7 @@ If Mojang API does need to be hit, event fire so you can get the results.
 This is useful for implementing a ProfileCache for Player Skulls
 
 diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
-index 4b2a67423f..61cfdf73c8 100644
+index 4b2a67423..61cfdf73c 100644
 --- a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
 +++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
 @@ -1,5 +1,7 @@
@@ -40,5 +40,5 @@ index 4b2a67423f..61cfdf73c8 100644
  
      @Override
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0198-PlayerAdvancementCriterionGrantEvent.patch b/Spigot-Server-Patches/0194-PlayerAdvancementCriterionGrantEvent.patch
similarity index 90%
rename from Spigot-Server-Patches/0198-PlayerAdvancementCriterionGrantEvent.patch
rename to Spigot-Server-Patches/0194-PlayerAdvancementCriterionGrantEvent.patch
index 32e1260a5..b4922c8c3 100644
--- a/Spigot-Server-Patches/0198-PlayerAdvancementCriterionGrantEvent.patch
+++ b/Spigot-Server-Patches/0194-PlayerAdvancementCriterionGrantEvent.patch
@@ -1,11 +1,11 @@
-From 365884033fb92fc9c1f6c5ebbc4b1d73690de74b Mon Sep 17 00:00:00 2001
+From a995742255e4fdbd4865622b4047974b45b91b59 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Fri, 19 Jan 2018 08:15:29 -0600
 Subject: [PATCH] PlayerAdvancementCriterionGrantEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java
-index 4040eb3b3f..b7f1f39a16 100644
+index 4407e760c..fe5bea363 100644
 --- a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java
 +++ b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java
 @@ -276,6 +276,12 @@ public class AdvancementDataPlayer {
@@ -22,5 +22,5 @@ index 4040eb3b3f..b7f1f39a16 100644
              this.i.add(advancement);
              flag = true;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0199-Add-ArmorStand-Item-Meta.patch b/Spigot-Server-Patches/0195-Add-ArmorStand-Item-Meta.patch
similarity index 97%
rename from Spigot-Server-Patches/0199-Add-ArmorStand-Item-Meta.patch
rename to Spigot-Server-Patches/0195-Add-ArmorStand-Item-Meta.patch
index f178ac16a..574a34a38 100644
--- a/Spigot-Server-Patches/0199-Add-ArmorStand-Item-Meta.patch
+++ b/Spigot-Server-Patches/0195-Add-ArmorStand-Item-Meta.patch
@@ -1,4 +1,4 @@
-From 8566c6907149379db72cac436dc270dc320039e0 Mon Sep 17 00:00:00 2001
+From adffa3a0e999f6283f0c7cc41049bd40d3a7354c Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Sat, 27 Jan 2018 17:04:14 -0500
 Subject: [PATCH] Add ArmorStand Item Meta
@@ -13,7 +13,7 @@ starting point for future additions in this area.
 Fixes GH-559
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java
-index f700522840..3723faccac 100644
+index f70052284..3723facca 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java
 @@ -8,13 +8,39 @@ import org.bukkit.Material;
@@ -267,7 +267,7 @@ index f700522840..3723faccac 100644
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 479a5686aa..6a6b80b5bd 100644
+index 5ee968f2e..1eede4bcc 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 @@ -1428,7 +1428,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -288,7 +288,7 @@ index 479a5686aa..6a6b80b5bd 100644
              }
              return HANDLED_TAGS;
 diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
-index b07a3051ca..919f2ffa91 100644
+index 630233960..3a82bede7 100644
 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
 +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
 @@ -6,6 +6,7 @@ import java.util.ArrayList;
@@ -299,7 +299,7 @@ index b07a3051ca..919f2ffa91 100644
  import net.minecraft.server.Block;
  import net.minecraft.server.IRegistry;
  import net.minecraft.server.ITileEntity;
-@@ -351,6 +352,7 @@ public class ItemMetaTest extends AbstractTestingBase {
+@@ -313,6 +314,7 @@ public class ItemMetaTest extends AbstractTestingBase {
                      final CraftMetaArmorStand meta = (CraftMetaArmorStand) cleanStack.getItemMeta();
                      meta.entityTag = new NBTTagCompound();
                      meta.entityTag.setBoolean("Small", true);
@@ -308,5 +308,5 @@ index b07a3051ca..919f2ffa91 100644
                      return cleanStack;
                  }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0200-Extend-Player-Interact-cancellation.patch b/Spigot-Server-Patches/0196-Extend-Player-Interact-cancellation.patch
similarity index 94%
rename from Spigot-Server-Patches/0200-Extend-Player-Interact-cancellation.patch
rename to Spigot-Server-Patches/0196-Extend-Player-Interact-cancellation.patch
index e50f794d8..f50221c4b 100644
--- a/Spigot-Server-Patches/0200-Extend-Player-Interact-cancellation.patch
+++ b/Spigot-Server-Patches/0196-Extend-Player-Interact-cancellation.patch
@@ -1,4 +1,4 @@
-From 834cacda9a16782a8247a1e451c3debe61526423 Mon Sep 17 00:00:00 2001
+From cf5b0d2dad1db1eb4f84e52d537acdff1882a711 Mon Sep 17 00:00:00 2001
 From: Shane Freeder <theboyetronic@gmail.com>
 Date: Sun, 11 Feb 2018 10:43:46 +0000
 Subject: [PATCH] Extend Player Interact cancellation
@@ -13,10 +13,10 @@ Update adjacent blocks of doors, double plants, pistons and beds
 when cancelling interaction.
 
 diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
-index 10aa7da31f..aa139aee0e 100644
+index 56f249c43..18ff6dd68 100644
 --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
 +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
-@@ -136,6 +136,11 @@ public class PlayerInteractManager {
+@@ -137,6 +137,11 @@ public class PlayerInteractManager {
                  PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_BLOCK, blockposition, enumdirection, this.player.inventory.getItemInHand(), EnumHand.MAIN_HAND);
                  if (event.isCancelled()) {
                      // Let the client know the block still exists
@@ -28,7 +28,7 @@ index 10aa7da31f..aa139aee0e 100644
                      this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition));
                      // Update any tile entity data for this block
                      TileEntity tileentity = this.world.getTileEntity(blockposition);
-@@ -439,7 +444,25 @@ public class PlayerInteractManager {
+@@ -449,7 +454,25 @@ public class PlayerInteractManager {
                  ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, bottom ? blockposition.up() : blockposition.down()));
              } else if (iblockdata.getBlock() instanceof BlockCake) {
                  ((EntityPlayer) entityhuman).getBukkitEntity().sendHealthUpdate(); // SPIGOT-1341 - reset health for cake
@@ -55,5 +55,5 @@ index 10aa7da31f..aa139aee0e 100644
              enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? EnumInteractionResult.SUCCESS : EnumInteractionResult.PASS;
          } else if (this.gamemode == EnumGamemode.SPECTATOR) {
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0201-Tameable-getOwnerUniqueId-API.patch b/Spigot-Server-Patches/0197-Tameable-getOwnerUniqueId-API.patch
similarity index 91%
rename from Spigot-Server-Patches/0201-Tameable-getOwnerUniqueId-API.patch
rename to Spigot-Server-Patches/0197-Tameable-getOwnerUniqueId-API.patch
index c82dd95a5..7f8133802 100644
--- a/Spigot-Server-Patches/0201-Tameable-getOwnerUniqueId-API.patch
+++ b/Spigot-Server-Patches/0197-Tameable-getOwnerUniqueId-API.patch
@@ -1,4 +1,4 @@
-From e7671db0140d7ff978a3e1a2652aa527aebfb8fb Mon Sep 17 00:00:00 2001
+From eda073002e6ae458f54b520c7b6c600ab5bdad3a Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 24 Feb 2018 01:14:55 -0500
 Subject: [PATCH] Tameable#getOwnerUniqueId API
@@ -7,7 +7,7 @@ This is faster if all you need is the UUID, as .getOwner() will cause
 an OfflinePlayer to be loaded from disk.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-index 9952db3eb5..1aea5f3f05 100644
+index 9952db3eb..1aea5f3f0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
 @@ -90,6 +90,9 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
@@ -21,7 +21,7 @@ index 9952db3eb5..1aea5f3f05 100644
          return getHandle().getOwnerUUID();
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTameableAnimal.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTameableAnimal.java
-index 5dfa40dda1..407b95cafd 100644
+index 5dfa40dda..407b95caf 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTameableAnimal.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTameableAnimal.java
 @@ -17,6 +17,9 @@ public class CraftTameableAnimal extends CraftAnimals implements Tameable, Creat
@@ -35,5 +35,5 @@ index 5dfa40dda1..407b95cafd 100644
          try {
              return getHandle().getOwnerUUID();
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0202-Toggleable-player-crits-helps-mitigate-hacked-client.patch b/Spigot-Server-Patches/0198-Toggleable-player-crits-helps-mitigate-hacked-client.patch
similarity index 88%
rename from Spigot-Server-Patches/0202-Toggleable-player-crits-helps-mitigate-hacked-client.patch
rename to Spigot-Server-Patches/0198-Toggleable-player-crits-helps-mitigate-hacked-client.patch
index 068506ea0..d50d2b116 100644
--- a/Spigot-Server-Patches/0202-Toggleable-player-crits-helps-mitigate-hacked-client.patch
+++ b/Spigot-Server-Patches/0198-Toggleable-player-crits-helps-mitigate-hacked-client.patch
@@ -1,11 +1,11 @@
-From eead92b8e3668ecf3902d8ee6a2cfb96b21f45cb Mon Sep 17 00:00:00 2001
+From 7168d4b9d1760a2b192340f2b1d42c23eec90328 Mon Sep 17 00:00:00 2001
 From: MiniDigger <admin@minidigger.me>
 Date: Sat, 10 Mar 2018 00:50:24 +0100
 Subject: [PATCH] Toggleable player crits, helps mitigate hacked clients.
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index aacce432b..b87133fcf 100644
+index e315a00cc..2607c4e5f 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -187,6 +187,11 @@ public class PaperWorldConfig {
@@ -21,10 +21,10 @@ index aacce432b..b87133fcf 100644
      private void allChunksAreSlimeChunks() {
          allChunksAreSlimeChunks = getBoolean("all-chunks-are-slime-chunks", false);
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index 90e5dd3e7..570974024 100644
+index fd7de143e..eb8f3833e 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
-@@ -997,6 +997,7 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -1063,6 +1063,7 @@ public abstract class EntityHuman extends EntityLiving {
  
                      boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround && !this.isClimbing() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && entity instanceof EntityLiving;
  
@@ -33,5 +33,5 @@ index 90e5dd3e7..570974024 100644
                      if (flag2) {
                          f *= 1.5F;
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0203-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch b/Spigot-Server-Patches/0199-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch
similarity index 91%
rename from Spigot-Server-Patches/0203-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch
rename to Spigot-Server-Patches/0199-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch
index 104185041..af212d037 100644
--- a/Spigot-Server-Patches/0203-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch
+++ b/Spigot-Server-Patches/0199-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch
@@ -1,4 +1,4 @@
-From 500fdae1ef6a574bb8d2e19fe39cea0927a66a82 Mon Sep 17 00:00:00 2001
+From 32c5eda601084a43d756e78afb3b9f215a8dbcd0 Mon Sep 17 00:00:00 2001
 From: Shane Freeder <theboyetronic@gmail.com>
 Date: Sat, 10 Mar 2018 13:03:49 +0000
 Subject: [PATCH] Fix NPE when getting location from InventoryEnderChest opened
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix NPE when getting location from InventoryEnderChest opened
 
 
 diff --git a/src/main/java/net/minecraft/server/InventoryEnderChest.java b/src/main/java/net/minecraft/server/InventoryEnderChest.java
-index 5a9ac3960d..fd31b9a6dc 100644
+index 5a9ac3960..fd31b9a6d 100644
 --- a/src/main/java/net/minecraft/server/InventoryEnderChest.java
 +++ b/src/main/java/net/minecraft/server/InventoryEnderChest.java
 @@ -5,7 +5,7 @@ import org.bukkit.inventory.InventoryHolder;
@@ -27,5 +27,5 @@ index 5a9ac3960d..fd31b9a6dc 100644
      }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0204-Prevent-Frosted-Ice-from-loading-holding-chunks.patch b/Spigot-Server-Patches/0200-Prevent-Frosted-Ice-from-loading-holding-chunks.patch
similarity index 58%
rename from Spigot-Server-Patches/0204-Prevent-Frosted-Ice-from-loading-holding-chunks.patch
rename to Spigot-Server-Patches/0200-Prevent-Frosted-Ice-from-loading-holding-chunks.patch
index d0ddb07b9..fa7d678ad 100644
--- a/Spigot-Server-Patches/0204-Prevent-Frosted-Ice-from-loading-holding-chunks.patch
+++ b/Spigot-Server-Patches/0200-Prevent-Frosted-Ice-from-loading-holding-chunks.patch
@@ -1,24 +1,25 @@
-From 7e1d6381c1a8e2ab67ec801f5fbc8fc7ed1ba227 Mon Sep 17 00:00:00 2001
+From 220a60e8e84b4da22e86c2aed5f2da427ae2c721 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 10 Mar 2018 16:33:15 -0500
 Subject: [PATCH] Prevent Frosted Ice from loading/holding chunks
 
 
 diff --git a/src/main/java/net/minecraft/server/BlockIceFrost.java b/src/main/java/net/minecraft/server/BlockIceFrost.java
-index 39c3bbc9cf..881dfb1235 100644
+index 5e414138e..638a0aa5a 100644
 --- a/src/main/java/net/minecraft/server/BlockIceFrost.java
 +++ b/src/main/java/net/minecraft/server/BlockIceFrost.java
-@@ -26,7 +26,8 @@ public class BlockIceFrost extends BlockIce {
+@@ -26,8 +26,8 @@ public class BlockIceFrost extends BlockIce {
                      EnumDirection enumdirection = aenumdirection[j];
  
                      blockposition_pooledblockposition.g(blockposition).c(enumdirection);
--                    IBlockData iblockdata1 = world.getType(blockposition_pooledblockposition);
-+                    IBlockData iblockdata1 = world.getTypeIfLoaded(blockposition_pooledblockposition); // Paper - don't load chunks
+-                    IBlockData iblockdata1 = worldserver.getType(blockposition_pooledblockposition);
+-
++                    IBlockData iblockdata1 = worldserver.getTypeIfLoaded(blockposition_pooledblockposition); // Paper - don't load chunks
 +                    if (iblockdata1 == null) continue; // Paper
- 
-                     if (iblockdata1.getBlock() == this && !this.e(iblockdata1, world, blockposition_pooledblockposition)) {
-                         world.getBlockTickList().a(blockposition_pooledblockposition, this, MathHelper.nextInt(random, world.paperConfig.frostedIceDelayMin, world.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
-@@ -89,7 +90,7 @@ public class BlockIceFrost extends BlockIce {
+                     if (iblockdata1.getBlock() == this && !this.e(iblockdata1, (World) worldserver, blockposition_pooledblockposition)) {
+                         worldserver.getBlockTickList().a(blockposition_pooledblockposition, this, MathHelper.nextInt(random, worldserver.paperConfig.frostedIceDelayMin, worldserver.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
+                     }
+@@ -89,7 +89,7 @@ public class BlockIceFrost extends BlockIce {
                  EnumDirection enumdirection = aenumdirection[l];
  
                  blockposition_pooledblockposition.g(blockposition).c(enumdirection);
@@ -28,5 +29,5 @@ index 39c3bbc9cf..881dfb1235 100644
                      if (j >= i) {
                          boolean flag = false;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0205-Disable-Explicit-Network-Manager-Flushing.patch b/Spigot-Server-Patches/0201-Disable-Explicit-Network-Manager-Flushing.patch
similarity index 93%
rename from Spigot-Server-Patches/0205-Disable-Explicit-Network-Manager-Flushing.patch
rename to Spigot-Server-Patches/0201-Disable-Explicit-Network-Manager-Flushing.patch
index 83ed3e907..7fd8b7119 100644
--- a/Spigot-Server-Patches/0205-Disable-Explicit-Network-Manager-Flushing.patch
+++ b/Spigot-Server-Patches/0201-Disable-Explicit-Network-Manager-Flushing.patch
@@ -1,4 +1,4 @@
-From d57978e971969411eb0978aa748a96c14afb289a Mon Sep 17 00:00:00 2001
+From 39155da9b345372c1221b2d7850c7d7b0f2f8e26 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 11 Mar 2018 14:13:33 -0400
 Subject: [PATCH] Disable Explicit Network Manager Flushing
@@ -12,7 +12,7 @@ flushing on the netty event loop, so it won't do the flush on the main thread.
 Renable flushing by passing -Dpaper.explicit-flush=true
 
 diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
-index e2d8ed88f0..08e314af7c 100644
+index e2d8ed88f..08e314af7 100644
 --- a/src/main/java/net/minecraft/server/NetworkManager.java
 +++ b/src/main/java/net/minecraft/server/NetworkManager.java
 @@ -63,6 +63,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -33,5 +33,5 @@ index e2d8ed88f0..08e314af7c 100644
  
          if (this.t++ % 20 == 0) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0206-Implement-extended-PaperServerListPingEvent.patch b/Spigot-Server-Patches/0202-Implement-extended-PaperServerListPingEvent.patch
similarity index 96%
rename from Spigot-Server-Patches/0206-Implement-extended-PaperServerListPingEvent.patch
rename to Spigot-Server-Patches/0202-Implement-extended-PaperServerListPingEvent.patch
index 8ed7f0a1c..0c2c70d03 100644
--- a/Spigot-Server-Patches/0206-Implement-extended-PaperServerListPingEvent.patch
+++ b/Spigot-Server-Patches/0202-Implement-extended-PaperServerListPingEvent.patch
@@ -1,4 +1,4 @@
-From a48b6bb616cd974110b453c1d7fdd78ca31638f5 Mon Sep 17 00:00:00 2001
+From 85dd7c98b6fe9a8daaae06ce0aa84d6335381510 Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Wed, 11 Oct 2017 15:56:26 +0200
 Subject: [PATCH] Implement extended PaperServerListPingEvent
@@ -6,7 +6,7 @@ Subject: [PATCH] Implement extended PaperServerListPingEvent
 
 diff --git a/src/main/java/com/destroystokyo/paper/network/PaperServerListPingEventImpl.java b/src/main/java/com/destroystokyo/paper/network/PaperServerListPingEventImpl.java
 new file mode 100644
-index 0000000000..c1a8e295b6
+index 000000000..c1a8e295b
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/network/PaperServerListPingEventImpl.java
 @@ -0,0 +1,31 @@
@@ -43,7 +43,7 @@ index 0000000000..c1a8e295b6
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/network/PaperStatusClient.java b/src/main/java/com/destroystokyo/paper/network/PaperStatusClient.java
 new file mode 100644
-index 0000000000..a2a409e635
+index 000000000..a2a409e63
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/network/PaperStatusClient.java
 @@ -0,0 +1,11 @@
@@ -60,7 +60,7 @@ index 0000000000..a2a409e635
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java b/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java
 new file mode 100644
-index 0000000000..a85466bc7e
+index 000000000..a85466bc7
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java
 @@ -0,0 +1,112 @@
@@ -177,7 +177,7 @@ index 0000000000..a85466bc7e
 +
 +}
 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 6e6c662f95..8d2be704f9 100644
+index 1ddb10741..97a0a6924 100644
 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
 +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
 @@ -1,6 +1,9 @@
@@ -190,7 +190,7 @@ index 6e6c662f95..8d2be704f9 100644
  import com.google.common.collect.Lists;
  import com.google.common.collect.Maps;
  import com.google.gson.JsonElement;
-@@ -1075,7 +1078,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
+@@ -1083,7 +1086,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
          if (i - this.Z >= 5000000000L) {
              this.Z = i;
              this.serverPing.setPlayerSample(new ServerPing.ServerPingPlayerSample(this.getMaxPlayers(), this.getPlayerCount()));
@@ -200,7 +200,7 @@ index 6e6c662f95..8d2be704f9 100644
  
              for (int k = 0; k < agameprofile.length; ++k) {
 diff --git a/src/main/java/net/minecraft/server/PacketStatusListener.java b/src/main/java/net/minecraft/server/PacketStatusListener.java
-index 2b08f285d1..295c9ac22d 100644
+index 658ea609c..4bb21c48b 100644
 --- a/src/main/java/net/minecraft/server/PacketStatusListener.java
 +++ b/src/main/java/net/minecraft/server/PacketStatusListener.java
 @@ -37,6 +37,8 @@ public class PacketStatusListener implements PacketStatusInListener {
@@ -223,7 +223,7 @@ index 2b08f285d1..295c9ac22d 100644
          // CraftBukkit end
      }
 diff --git a/src/main/java/net/minecraft/server/ServerPing.java b/src/main/java/net/minecraft/server/ServerPing.java
-index aa125a52dc..ea52e89bd9 100644
+index aa125a52d..ea52e89bd 100644
 --- a/src/main/java/net/minecraft/server/ServerPing.java
 +++ b/src/main/java/net/minecraft/server/ServerPing.java
 @@ -29,6 +29,7 @@ public class ServerPing {
@@ -248,7 +248,7 @@ index aa125a52dc..ea52e89bd9 100644
              this.c = agameprofile;
          }
 diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
-index 783aa6db1f..33767c85ca 100644
+index 783aa6db1..33767c85c 100644
 --- a/src/main/java/org/spigotmc/SpigotConfig.java
 +++ b/src/main/java/org/spigotmc/SpigotConfig.java
 @@ -285,7 +285,7 @@ public class SpigotConfig
@@ -261,5 +261,5 @@ index 783aa6db1f..33767c85ca 100644
      }
  
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0207-Improved-Async-Task-Scheduler.patch b/Spigot-Server-Patches/0203-Improved-Async-Task-Scheduler.patch
similarity index 99%
rename from Spigot-Server-Patches/0207-Improved-Async-Task-Scheduler.patch
rename to Spigot-Server-Patches/0203-Improved-Async-Task-Scheduler.patch
index 2fcc7d815..f7a16e02d 100644
--- a/Spigot-Server-Patches/0207-Improved-Async-Task-Scheduler.patch
+++ b/Spigot-Server-Patches/0203-Improved-Async-Task-Scheduler.patch
@@ -1,4 +1,4 @@
-From 700bf6c53b2c7c155e4486f7955ae011dd02f092 Mon Sep 17 00:00:00 2001
+From cfad943ea663c283bb1f29e4873a882158d2c2d3 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Fri, 16 Mar 2018 22:59:43 -0400
 Subject: [PATCH] Improved Async Task Scheduler
@@ -32,7 +32,7 @@ operations are decoupled from the sync tasks queue.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncScheduler.java
 new file mode 100644
-index 0000000000..3c1992e212
+index 000000000..3c1992e21
 --- /dev/null
 +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncScheduler.java
 @@ -0,0 +1,122 @@
@@ -159,7 +159,7 @@ index 0000000000..3c1992e212
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index e102be583c..5db848de14 100644
+index e102be583..5db848de1 100644
 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
 +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
 @@ -62,7 +62,7 @@ public class CraftScheduler implements BukkitScheduler {
@@ -365,5 +365,5 @@ index e102be583c..5db848de14 100644
  
      private boolean isReady(final int currentTick) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0208-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch b/Spigot-Server-Patches/0204-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch
similarity index 95%
rename from Spigot-Server-Patches/0208-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch
rename to Spigot-Server-Patches/0204-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch
index 53de360e0..e4c82c4e4 100644
--- a/Spigot-Server-Patches/0208-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch
+++ b/Spigot-Server-Patches/0204-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch
@@ -1,4 +1,4 @@
-From 309034ed37f2220843b9b0ceecd7ecccc95e4258 Mon Sep 17 00:00:00 2001
+From 4a6a24dad2e9fbd89fd2843d554781ead788e13b Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 18 Mar 2018 11:45:57 -0400
 Subject: [PATCH] Ability to change PlayerProfile in AsyncPreLoginEvent
@@ -6,7 +6,7 @@ Subject: [PATCH] Ability to change PlayerProfile in AsyncPreLoginEvent
 This will allow you to change the players name or skin on login.
 
 diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
-index a2af5b4b29..a272a70303 100644
+index 828b64e41..0614976b8 100644
 --- a/src/main/java/net/minecraft/server/LoginListener.java
 +++ b/src/main/java/net/minecraft/server/LoginListener.java
 @@ -1,5 +1,7 @@
@@ -44,5 +44,5 @@ index a2af5b4b29..a272a70303 100644
                              if (PlayerPreLoginEvent.getHandlerList().getRegisteredListeners().length != 0) {
                                  final PlayerPreLoginEvent event = new PlayerPreLoginEvent(playerName, address, uniqueId);
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0209-Player.setPlayerProfile-API.patch b/Spigot-Server-Patches/0205-Player.setPlayerProfile-API.patch
similarity index 90%
rename from Spigot-Server-Patches/0209-Player.setPlayerProfile-API.patch
rename to Spigot-Server-Patches/0205-Player.setPlayerProfile-API.patch
index 12a1f6bdf..f8998ec1a 100644
--- a/Spigot-Server-Patches/0209-Player.setPlayerProfile-API.patch
+++ b/Spigot-Server-Patches/0205-Player.setPlayerProfile-API.patch
@@ -1,4 +1,4 @@
-From 73e8d2932986ca06676e887f4dc839cd86468fd1 Mon Sep 17 00:00:00 2001
+From f17990de6b39edf58fb96266d16b4492b731aa34 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 18 Mar 2018 12:29:48 -0400
 Subject: [PATCH] Player.setPlayerProfile API
@@ -6,20 +6,20 @@ 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 0ca5e7886b..778356381d 100644
+index eb8f3833e..205a842ee 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
 @@ -66,7 +66,7 @@ public abstract class EntityHuman extends EntityLiving {
-     protected int bR;
-     protected final float bS = 0.02F;
-     private int bV;
--    private final GameProfile bW;
-+    private GameProfile bW; public final void setProfile(final GameProfile profile) { this.bW = profile; } // Paper - OBFHELPER
-     private ItemStack bY;
-     private final ItemCooldown bZ;
+     protected int bO;
+     protected final float bP = 0.02F;
+     private int bS;
+-    private final GameProfile bT;
++    private GameProfile bT; public final void setProfile(final GameProfile profile) { this.bT = profile; } // Paper - OBFHELPER
+     private ItemStack bV;
+     private final ItemCooldown bW;
      @Nullable
 diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
-index a272a70303..d6befec184 100644
+index 0614976b8..a985ae7ba 100644
 --- a/src/main/java/net/minecraft/server/LoginListener.java
 +++ b/src/main/java/net/minecraft/server/LoginListener.java
 @@ -37,7 +37,7 @@ public class LoginListener implements PacketLoginInListener {
@@ -48,7 +48,7 @@ index a272a70303..d6befec184 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 854d6f7999..a2ef3f59ee 100644
+index c82de14eb..87b715d69 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1,6 +1,8 @@
@@ -60,7 +60,7 @@ index 854d6f7999..a2ef3f59ee 100644
  import com.google.common.base.Preconditions;
  import com.google.common.collect.ImmutableSet;
  import com.google.common.io.BaseEncoding;
-@@ -1203,8 +1205,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1187,8 +1189,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
          hiddenPlayers.put(player.getUniqueId(), hidingPlugins);
  
          // Remove this player from the hidden player's EntityTrackerEntry
@@ -75,7 +75,7 @@ index 854d6f7999..a2ef3f59ee 100644
          PlayerChunkMap.EntityTracker entry = tracker.trackedEntities.get(other.getId());
          if (entry != null) {
              entry.clear(getHandle());
-@@ -1245,8 +1252,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1229,8 +1236,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
          }
          hiddenPlayers.remove(player.getUniqueId());
  
@@ -90,7 +90,7 @@ index 854d6f7999..a2ef3f59ee 100644
  
          getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, other));
  
-@@ -1255,6 +1267,46 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1239,6 +1251,46 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
              entry.updatePlayer(getHandle());
          }
      }
@@ -138,5 +138,5 @@ index 854d6f7999..a2ef3f59ee 100644
      public void removeDisconnectingPlayer(Player player) {
          hiddenPlayers.remove(player.getUniqueId());
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0210-Fix-Dragon-Server-Crashes.patch b/Spigot-Server-Patches/0206-Fix-Dragon-Server-Crashes.patch
similarity index 71%
rename from Spigot-Server-Patches/0210-Fix-Dragon-Server-Crashes.patch
rename to Spigot-Server-Patches/0206-Fix-Dragon-Server-Crashes.patch
index 478608183..aafd068a5 100644
--- a/Spigot-Server-Patches/0210-Fix-Dragon-Server-Crashes.patch
+++ b/Spigot-Server-Patches/0206-Fix-Dragon-Server-Crashes.patch
@@ -1,4 +1,4 @@
-From 36ee48b6a551302d65c329ee8790f1d3c58e531b Mon Sep 17 00:00:00 2001
+From 98467daafc3c829fb77aa7b95d3eeb908cd43e4e Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 21 Mar 2018 20:52:07 -0400
 Subject: [PATCH] Fix Dragon Server Crashes
@@ -7,18 +7,18 @@ If the dragon tries to find "ground" and hits a hole, or off edge,
 it will infinitely keep looking for non air and eventually crash.
 
 diff --git a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
-index a75128f966..98e15834ab 100644
+index c42de9771..40a8beff5 100644
 --- a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
 +++ b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
-@@ -53,7 +53,7 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
-             double d2 = this.a.bA.locY + (double) (this.a.bA.getHeight() / 2.0F);
+@@ -54,7 +54,7 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
+             double d3 = d2;
              BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(d0, d2, d1);
  
 -            while (this.a.world.isEmpty(blockposition_mutableblockposition)) {
 +            while (this.a.world.isEmpty(blockposition_mutableblockposition ) && d2 > 0) { // Paper
-                 --d2;
-                 blockposition_mutableblockposition.c(d0, d2, d1);
-             }
+                 --d3;
+                 if (d3 < 0.0D) {
+                     d3 = d2;
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0211-getPlayerUniqueId-API.patch b/Spigot-Server-Patches/0207-getPlayerUniqueId-API.patch
similarity index 90%
rename from Spigot-Server-Patches/0211-getPlayerUniqueId-API.patch
rename to Spigot-Server-Patches/0207-getPlayerUniqueId-API.patch
index 3db5804e8..101134588 100644
--- a/Spigot-Server-Patches/0211-getPlayerUniqueId-API.patch
+++ b/Spigot-Server-Patches/0207-getPlayerUniqueId-API.patch
@@ -1,4 +1,4 @@
-From 5a68a156dd67d7290fb1dd4f2acfda61f0fe004d Mon Sep 17 00:00:00 2001
+From a8739afeb83ca2ccda5b6485ad3fba3702c1ccf5 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Thu, 22 Mar 2018 01:40:24 -0400
 Subject: [PATCH] getPlayerUniqueId API
@@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
 This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 3938adf7c7..8b5765e619 100644
+index 9fe19fb59..296a11f14 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1361,6 +1361,26 @@ public final class CraftServer implements Server {
+@@ -1364,6 +1364,26 @@ public final class CraftServer implements Server {
          return recipients.size();
      }
  
@@ -40,5 +40,5 @@ index 3938adf7c7..8b5765e619 100644
      @Deprecated
      public OfflinePlayer getOfflinePlayer(String name) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0212-Make-player-data-saving-configurable.patch b/Spigot-Server-Patches/0208-Make-player-data-saving-configurable.patch
similarity index 92%
rename from Spigot-Server-Patches/0212-Make-player-data-saving-configurable.patch
rename to Spigot-Server-Patches/0208-Make-player-data-saving-configurable.patch
index 1c23530d6..5c0c5ce8c 100644
--- a/Spigot-Server-Patches/0212-Make-player-data-saving-configurable.patch
+++ b/Spigot-Server-Patches/0208-Make-player-data-saving-configurable.patch
@@ -1,11 +1,11 @@
-From af649ec80359ef4ec3bb5288a046a86b77bbc6be Mon Sep 17 00:00:00 2001
+From 6f44e546f3bf909bfe8955e190a860fd1e7bf36e Mon Sep 17 00:00:00 2001
 From: Mark Vainomaa <mikroskeem@mikroskeem.eu>
 Date: Mon, 26 Mar 2018 18:30:53 +0300
 Subject: [PATCH] Make player data saving configurable
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index 11f08c2b73..4169ec9a58 100644
+index 5884b04f7..ba341e017 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -270,4 +270,13 @@ public class PaperConfig {
@@ -23,7 +23,7 @@ index 11f08c2b73..4169ec9a58 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java
-index a0254d8e51..e60e10c57d 100644
+index a0254d8e5..e60e10c57 100644
 --- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
 +++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java
 @@ -138,6 +138,7 @@ public class WorldNBTStorage implements IPlayerFileData {
@@ -35,5 +35,5 @@ index a0254d8e51..e60e10c57d 100644
              NBTTagCompound nbttagcompound = entityhuman.save(new NBTTagCompound());
              File file = new File(this.playerDir, entityhuman.getUniqueIDString() + ".dat.tmp");
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0213-Make-legacy-ping-handler-more-reliable.patch b/Spigot-Server-Patches/0209-Make-legacy-ping-handler-more-reliable.patch
similarity index 98%
rename from Spigot-Server-Patches/0213-Make-legacy-ping-handler-more-reliable.patch
rename to Spigot-Server-Patches/0209-Make-legacy-ping-handler-more-reliable.patch
index 32f6ac4ef..01dc0a213 100644
--- a/Spigot-Server-Patches/0213-Make-legacy-ping-handler-more-reliable.patch
+++ b/Spigot-Server-Patches/0209-Make-legacy-ping-handler-more-reliable.patch
@@ -1,4 +1,4 @@
-From 41860548562325970f808e9539bd993dc12a8147 Mon Sep 17 00:00:00 2001
+From ce39789a663bcb1d132ab10623b3535fd6680797 Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Wed, 11 Oct 2017 18:22:50 +0200
 Subject: [PATCH] Make legacy ping handler more reliable
@@ -28,7 +28,7 @@ respond to the request.
 [2]: https://netty.io/wiki/user-guide-for-4.x.html#wiki-h4-13
 
 diff --git a/src/main/java/net/minecraft/server/LegacyPingHandler.java b/src/main/java/net/minecraft/server/LegacyPingHandler.java
-index 9ee5a1ff02..063efe9bbe 100644
+index 9ee5a1ff0..063efe9bb 100644
 --- a/src/main/java/net/minecraft/server/LegacyPingHandler.java
 +++ b/src/main/java/net/minecraft/server/LegacyPingHandler.java
 @@ -14,6 +14,7 @@ public class LegacyPingHandler extends ChannelInboundHandlerAdapter {
@@ -167,5 +167,5 @@ index 9ee5a1ff02..063efe9bbe 100644
          channelhandlercontext.pipeline().firstContext().writeAndFlush(bytebuf).addListener(ChannelFutureListener.CLOSE);
      }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0214-Call-PaperServerListPingEvent-for-legacy-pings.patch b/Spigot-Server-Patches/0210-Call-PaperServerListPingEvent-for-legacy-pings.patch
similarity index 98%
rename from Spigot-Server-Patches/0214-Call-PaperServerListPingEvent-for-legacy-pings.patch
rename to Spigot-Server-Patches/0210-Call-PaperServerListPingEvent-for-legacy-pings.patch
index ccb79ab98..08b700151 100644
--- a/Spigot-Server-Patches/0214-Call-PaperServerListPingEvent-for-legacy-pings.patch
+++ b/Spigot-Server-Patches/0210-Call-PaperServerListPingEvent-for-legacy-pings.patch
@@ -1,4 +1,4 @@
-From 8c7a325ee7c4c95704f476ac9a7a24ad7606092e Mon Sep 17 00:00:00 2001
+From 828caedc08c05b4702952f1447f9a9e79e64586f Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Wed, 11 Oct 2017 19:30:51 +0200
 Subject: [PATCH] Call PaperServerListPingEvent for legacy pings
@@ -6,7 +6,7 @@ Subject: [PATCH] Call PaperServerListPingEvent for legacy pings
 
 diff --git a/src/main/java/com/destroystokyo/paper/network/PaperLegacyStatusClient.java b/src/main/java/com/destroystokyo/paper/network/PaperLegacyStatusClient.java
 new file mode 100644
-index 0000000000..74c012fd40
+index 000000000..74c012fd4
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/network/PaperLegacyStatusClient.java
 @@ -0,0 +1,73 @@
@@ -84,7 +84,7 @@ index 0000000000..74c012fd40
 +
 +}
 diff --git a/src/main/java/net/minecraft/server/LegacyPingHandler.java b/src/main/java/net/minecraft/server/LegacyPingHandler.java
-index 063efe9bbe..4a49fe4cc6 100644
+index 063efe9bb..4a49fe4cc 100644
 --- a/src/main/java/net/minecraft/server/LegacyPingHandler.java
 +++ b/src/main/java/net/minecraft/server/LegacyPingHandler.java
 @@ -1,5 +1,7 @@
@@ -153,5 +153,5 @@ index 063efe9bbe..4a49fe4cc6 100644
      }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0215-Flag-to-disable-the-channel-limit.patch b/Spigot-Server-Patches/0211-Flag-to-disable-the-channel-limit.patch
similarity index 87%
rename from Spigot-Server-Patches/0215-Flag-to-disable-the-channel-limit.patch
rename to Spigot-Server-Patches/0211-Flag-to-disable-the-channel-limit.patch
index b3685e922..dfd4355a5 100644
--- a/Spigot-Server-Patches/0215-Flag-to-disable-the-channel-limit.patch
+++ b/Spigot-Server-Patches/0211-Flag-to-disable-the-channel-limit.patch
@@ -1,4 +1,4 @@
-From aaed32a66b35384c79f908f48c76766c658f0f5c Mon Sep 17 00:00:00 2001
+From 346d3423305d7f19d3e2d5a1da0d5cdf45a528bd Mon Sep 17 00:00:00 2001
 From: Shane Freeder <theboyetronic@gmail.com>
 Date: Sat, 31 Mar 2018 17:04:26 +0100
 Subject: [PATCH] Flag to disable the channel limit
@@ -9,10 +9,10 @@ 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 a2ef3f59ee..2bba7f359d 100644
+index 87b715d69..4dc79ca4e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -139,6 +139,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -138,6 +138,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
      // Paper start
      private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus;
      private String resourcePackHash;
@@ -20,7 +20,7 @@ index a2ef3f59ee..2bba7f359d 100644
      // Paper end
  
      public CraftPlayer(CraftServer server, EntityPlayer entity) {
-@@ -1469,7 +1470,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1453,7 +1454,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
      }
  
      public void addChannel(String channel) {
@@ -30,5 +30,5 @@ index a2ef3f59ee..2bba7f359d 100644
          if (channels.add(channel)) {
              server.getPluginManager().callEvent(new PlayerRegisterChannelEvent(this, channel));
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0216-Add-method-to-open-already-placed-sign.patch b/Spigot-Server-Patches/0212-Add-method-to-open-already-placed-sign.patch
similarity index 92%
rename from Spigot-Server-Patches/0216-Add-method-to-open-already-placed-sign.patch
rename to Spigot-Server-Patches/0212-Add-method-to-open-already-placed-sign.patch
index 002206664..6d4bc81c0 100644
--- a/Spigot-Server-Patches/0216-Add-method-to-open-already-placed-sign.patch
+++ b/Spigot-Server-Patches/0212-Add-method-to-open-already-placed-sign.patch
@@ -1,11 +1,11 @@
-From a45f7597a04a99fe14cb4b041ddbbb720c6c8655 Mon Sep 17 00:00:00 2001
+From 97c9c6abb25684ca2eef0039ac1098d3cabf5941 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 6cce1928a..2f24b52dd 100644
+index a1397d142..cd8ad2704 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 @@ -764,4 +764,17 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -27,5 +27,5 @@ index 6cce1928a..2f24b52dd 100644
 +    // Paper end
  }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0217-Configurable-sprint-interruption-on-attack.patch b/Spigot-Server-Patches/0213-Configurable-sprint-interruption-on-attack.patch
similarity index 89%
rename from Spigot-Server-Patches/0217-Configurable-sprint-interruption-on-attack.patch
rename to Spigot-Server-Patches/0213-Configurable-sprint-interruption-on-attack.patch
index 06f925431..7cc321378 100644
--- a/Spigot-Server-Patches/0217-Configurable-sprint-interruption-on-attack.patch
+++ b/Spigot-Server-Patches/0213-Configurable-sprint-interruption-on-attack.patch
@@ -1,4 +1,4 @@
-From 9e61551040be429bd36b48e1b5f5f188903166c4 Mon Sep 17 00:00:00 2001
+From 40ca4c9ec73dd0d1d305f637e5f29588f16d9303 Mon Sep 17 00:00:00 2001
 From: Brokkonaut <hannos17@gmx.de>
 Date: Sat, 14 Apr 2018 20:20:46 +0200
 Subject: [PATCH] Configurable sprint interruption on attack
@@ -6,7 +6,7 @@ Subject: [PATCH] Configurable sprint interruption on attack
 If the sprint interruption is disabled players continue sprinting when they attack entities.
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index b87133fcf..c57f7e7e8 100644
+index 2607c4e5f..1d3120b9b 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -354,4 +354,9 @@ public class PaperWorldConfig {
@@ -20,10 +20,10 @@ index b87133fcf..c57f7e7e8 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index 9df182def..ec99fb62b 100644
+index 205a842ee..4e91fdd69 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
-@@ -1046,7 +1046,11 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -1112,7 +1112,11 @@ public abstract class EntityHuman extends EntityLiving {
                              }
  
                              this.setMot(this.getMot().d(0.6D, 1.0D, 0.6D));
@@ -37,5 +37,5 @@ index 9df182def..ec99fb62b 100644
  
                          if (flag3) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0218-Fix-exploit-that-allowed-colored-signs-to-be-created.patch b/Spigot-Server-Patches/0214-Fix-exploit-that-allowed-colored-signs-to-be-created.patch
similarity index 86%
rename from Spigot-Server-Patches/0218-Fix-exploit-that-allowed-colored-signs-to-be-created.patch
rename to Spigot-Server-Patches/0214-Fix-exploit-that-allowed-colored-signs-to-be-created.patch
index 9abc2dfa0..37ec41224 100644
--- a/Spigot-Server-Patches/0218-Fix-exploit-that-allowed-colored-signs-to-be-created.patch
+++ b/Spigot-Server-Patches/0214-Fix-exploit-that-allowed-colored-signs-to-be-created.patch
@@ -1,14 +1,14 @@
-From 88c638f67dcd3b367d2c759c77487c4d1419e92e Mon Sep 17 00:00:00 2001
+From ee33643447f7f46a805022cbc1e6ff9ae0025517 Mon Sep 17 00:00:00 2001
 From: 0x22 <0x22@futureclient.net>
 Date: Thu, 26 Apr 2018 04:41:11 -0400
 Subject: [PATCH] Fix exploit that allowed colored signs to be created
 
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 6008613fae..89beac63aa 100644
+index ad2a36627..8757b6751 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -2491,7 +2491,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2501,7 +2501,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
              String[] lines = new String[4];
  
              for (int i = 0; i < astring.length; ++i) {
@@ -18,5 +18,5 @@ index 6008613fae..89beac63aa 100644
              SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines);
              this.server.getPluginManager().callEvent(event);
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0219-EndermanEscapeEvent.patch b/Spigot-Server-Patches/0215-EndermanEscapeEvent.patch
similarity index 75%
rename from Spigot-Server-Patches/0219-EndermanEscapeEvent.patch
rename to Spigot-Server-Patches/0215-EndermanEscapeEvent.patch
index 441fb1748..5d15aadd7 100644
--- a/Spigot-Server-Patches/0219-EndermanEscapeEvent.patch
+++ b/Spigot-Server-Patches/0215-EndermanEscapeEvent.patch
@@ -1,4 +1,4 @@
-From 12535a1cf340d627583cbe58a5305d06b760260e Mon Sep 17 00:00:00 2001
+From 95f1d8935e27b90364050306fa692c00ad998f2f Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 30 Apr 2018 13:15:55 -0400
 Subject: [PATCH] EndermanEscapeEvent
@@ -8,7 +8,7 @@ Fires an event anytime an enderman intends to teleport away from the player
 You may cancel this, enabling ranged attacks to damage the enderman for example.
 
 diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
-index 99391c0562..de320f8885 100644
+index 4519be39a..60ff02770 100644
 --- a/src/main/java/net/minecraft/server/EntityEnderman.java
 +++ b/src/main/java/net/minecraft/server/EntityEnderman.java
 @@ -2,6 +2,7 @@ package net.minecraft.server;
@@ -19,7 +19,7 @@ index 99391c0562..de320f8885 100644
  import java.util.Random;
  import java.util.UUID;
  import java.util.function.Predicate;
-@@ -55,6 +56,12 @@ public class EntityEnderman extends EntityMonster {
+@@ -56,6 +57,12 @@ public class EntityEnderman extends EntityMonster {
          setGoalTarget(entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason.UNKNOWN, true);
      }
  
@@ -32,29 +32,29 @@ index 99391c0562..de320f8885 100644
      @Override
      public boolean setGoalTarget(EntityLiving entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason reason, boolean fireEvent) {
          if (!super.setGoalTarget(entityliving, reason, fireEvent)) {
-@@ -174,7 +181,7 @@ public class EntityEnderman extends EntityMonster {
-         if (this.world.J() && this.ticksLived >= this.bC + 600) {
-             float f = this.aF();
+@@ -177,7 +184,7 @@ public class EntityEnderman extends EntityMonster {
+         if (this.world.J() && this.ticksLived >= this.bA + 600) {
+             float f = this.aI();
  
 -            if (f > 0.5F && this.world.f(new BlockPosition(this)) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) {
 +            if (f > 0.5F && this.world.f(new BlockPosition(this)) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper
                  this.setGoalTarget((EntityLiving) null);
-                 this.dV();
+                 this.eq();
              }
-@@ -266,17 +273,19 @@ public class EntityEnderman extends EntityMonster {
+@@ -277,17 +284,19 @@ public class EntityEnderman extends EntityMonster {
          } else if (!(damagesource instanceof EntityDamageSourceIndirect) && damagesource != DamageSource.FIREWORKS) {
              boolean flag = super.damageEntity(damagesource, f);
  
--            if (damagesource.ignoresArmor() && this.random.nextInt(10) != 0) {
-+            if (damagesource.ignoresArmor() && this.random.nextInt(10) != 0 && this.tryEscape(damagesource == DamageSource.DROWN ? EndermanEscapeEvent.Reason.DROWN : EndermanEscapeEvent.Reason.CRITICAL_HIT)) { // Paper
-                 this.dV();
+-            if (!this.world.p_() && damagesource.ignoresArmor() && this.random.nextInt(10) != 0) {
++            if (!this.world.p_() && damagesource.ignoresArmor() && this.random.nextInt(10) != 0 && this.tryEscape(damagesource == DamageSource.DROWN ? EndermanEscapeEvent.Reason.DROWN : EndermanEscapeEvent.Reason.CRITICAL_HIT)) { // Paper
+                 this.eq();
              }
  
              return flag;
          } else {
 +            if (this.tryEscape(EndermanEscapeEvent.Reason.INDIRECT)) { // Paper start
              for (int i = 0; i < 64; ++i) {
-                 if (this.dV()) {
+                 if (this.eq()) {
                      return true;
                  }
              }
@@ -62,7 +62,7 @@ index 99391c0562..de320f8885 100644
  
              return false;
          }
-@@ -398,7 +407,7 @@ public class EntityEnderman extends EntityMonster {
+@@ -422,7 +431,7 @@ public class EntityEnderman extends EntityMonster {
  
      static class PathfinderGoalPlayerWhoLookedAtTarget extends PathfinderGoalNearestAttackableTarget<EntityHuman> {
  
@@ -71,15 +71,15 @@ index 99391c0562..de320f8885 100644
          private EntityHuman j;
          private int k;
          private int l;
-@@ -456,7 +465,7 @@ public class EntityEnderman extends EntityMonster {
+@@ -481,7 +490,7 @@ public class EntityEnderman extends EntityMonster {
              } else {
                  if (this.c != null && !this.i.isPassenger()) {
                      if (this.i.f((EntityHuman) this.c)) {
 -                        if (this.c.h((Entity) this.i) < 16.0D) {
 +                        if (this.c.h((Entity) this.i) < 16.0D && this.getEnderman().tryEscape(EndermanEscapeEvent.Reason.STARE)) {
-                             this.i.dV();
+                             this.i.eq();
                          }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0220-Enderman.teleportRandomly.patch b/Spigot-Server-Patches/0216-Enderman.teleportRandomly.patch
similarity index 71%
rename from Spigot-Server-Patches/0220-Enderman.teleportRandomly.patch
rename to Spigot-Server-Patches/0216-Enderman.teleportRandomly.patch
index 5b142c375..506aacbf8 100644
--- a/Spigot-Server-Patches/0220-Enderman.teleportRandomly.patch
+++ b/Spigot-Server-Patches/0216-Enderman.teleportRandomly.patch
@@ -1,4 +1,4 @@
-From 903cfd800fa9c272fb09ab51ff22ff6ea54e1f03 Mon Sep 17 00:00:00 2001
+From 918588265838ec621e001485b36f68a4af54becb Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 30 Apr 2018 13:29:44 -0400
 Subject: [PATCH] Enderman.teleportRandomly()
@@ -6,19 +6,19 @@ Subject: [PATCH] Enderman.teleportRandomly()
 Ability to trigger the vanilla "teleport randomly" mechanic of an enderman.
 
 diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
-index de320f8885..7d2e00085a 100644
+index 60ff02770..6868ca415 100644
 --- a/src/main/java/net/minecraft/server/EntityEnderman.java
 +++ b/src/main/java/net/minecraft/server/EntityEnderman.java
-@@ -190,6 +190,7 @@ public class EntityEnderman extends EntityMonster {
+@@ -193,6 +193,7 @@ public class EntityEnderman extends EntityMonster {
          super.mobTick();
      }
  
-+    public final boolean teleportRandomly() { return this.dV(); } // Paper - OBFHELPER
-     protected boolean dV() {
-         double d0 = this.locX + (this.random.nextDouble() - 0.5D) * 64.0D;
-         double d1 = this.locY + (double) (this.random.nextInt(64) - 32);
++    public final boolean teleportRandomly() { return this.eq(); } // Paper - OBFHELPER
+     protected boolean eq() {
+         if (!this.world.p_() && this.isAlive()) {
+             double d0 = this.locX() + (this.random.nextDouble() - 0.5D) * 64.0D;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
-index 970efabd37..0c5f359346 100644
+index 970efabd3..0c5f35934 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
 @@ -16,6 +16,7 @@ public class CraftEnderman extends CraftMonster implements Enderman {
@@ -30,5 +30,5 @@ index 970efabd37..0c5f359346 100644
      public MaterialData getCarriedMaterial() {
          IBlockData blockData = getHandle().getCarried();
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0221-Block-Enderpearl-Travel-Exploit.patch b/Spigot-Server-Patches/0217-Block-Enderpearl-Travel-Exploit.patch
similarity index 90%
rename from Spigot-Server-Patches/0221-Block-Enderpearl-Travel-Exploit.patch
rename to Spigot-Server-Patches/0217-Block-Enderpearl-Travel-Exploit.patch
index 2d139d357..e09aed1b6 100644
--- a/Spigot-Server-Patches/0221-Block-Enderpearl-Travel-Exploit.patch
+++ b/Spigot-Server-Patches/0217-Block-Enderpearl-Travel-Exploit.patch
@@ -1,4 +1,4 @@
-From 93ed3640c7b66d82bcdc6bec457caf6a5905af54 Mon Sep 17 00:00:00 2001
+From 36ce57946d39251b606722693561454b8b63e7a2 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 30 Apr 2018 17:15:26 -0400
 Subject: [PATCH] Block Enderpearl Travel Exploit
@@ -12,7 +12,7 @@ This disables that by not saving the thrower when the chunk is unloaded.
 This is mainly useful for survival servers that do not allow freeform teleporting.
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index c57f7e7e8..cb8922329 100644
+index 1d3120b9b..585646ded 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -359,4 +359,10 @@ public class PaperWorldConfig {
@@ -27,10 +27,10 @@ index c57f7e7e8..cb8922329 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java
-index 5f0cb4c33..f2f4b2d92 100644
+index 724b78b5d..9eed1dce3 100644
 --- a/src/main/java/net/minecraft/server/EntityProjectile.java
 +++ b/src/main/java/net/minecraft/server/EntityProjectile.java
-@@ -205,6 +205,7 @@ public abstract class EntityProjectile extends Entity implements IProjectile {
+@@ -201,6 +201,7 @@ public abstract class EntityProjectile extends Entity implements IProjectile {
          if (nbttagcompound.hasKeyOfType("owner", 10)) {
              this.shooterId = GameProfileSerializer.b(nbttagcompound.getCompound("owner"));
          }
@@ -39,5 +39,5 @@ index 5f0cb4c33..f2f4b2d92 100644
      }
  
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0222-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-Server-Patches/0218-Expand-World.spawnParticle-API-and-add-Builder.patch
similarity index 89%
rename from Spigot-Server-Patches/0222-Expand-World.spawnParticle-API-and-add-Builder.patch
rename to Spigot-Server-Patches/0218-Expand-World.spawnParticle-API-and-add-Builder.patch
index 6fd5ce096..a156bb1b7 100644
--- a/Spigot-Server-Patches/0222-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/Spigot-Server-Patches/0218-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -1,4 +1,4 @@
-From df81ea15793dde7a234a4e8941be57a3bab1d646 Mon Sep 17 00:00:00 2001
+From 895fce81accc650f3508d1131cc9d246f1b9c88d Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 15 Aug 2017 22:29:12 -0400
 Subject: [PATCH] Expand World.spawnParticle API and add Builder
@@ -10,10 +10,10 @@ Adds an option to control the force mode of the particle.
 This adds a new Builder API which is much friendlier to use.
 
 diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index 491c9c9170..b9015cb8a7 100644
+index 38e618c78..4a2e66977 100644
 --- a/src/main/java/net/minecraft/server/WorldServer.java
 +++ b/src/main/java/net/minecraft/server/WorldServer.java
-@@ -53,7 +53,7 @@ public class WorldServer extends World {
+@@ -55,7 +55,7 @@ public class WorldServer extends World {
      public final Int2ObjectMap<Entity> entitiesById = new Int2ObjectLinkedOpenHashMap();
      private final Map<UUID, Entity> entitiesByUUID = Maps.newHashMap();
      private final Queue<Entity> entitiesToAdd = Queues.newArrayDeque();
@@ -22,7 +22,7 @@ index 491c9c9170..b9015cb8a7 100644
      boolean tickingEntities;
      private final MinecraftServer server;
      private final WorldNBTStorage dataManager;
-@@ -1382,12 +1382,17 @@ public class WorldServer extends World {
+@@ -1390,12 +1390,17 @@ public class WorldServer extends World {
      }
  
      public <T extends ParticleParam> int sendParticles(EntityPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) {
@@ -31,7 +31,7 @@ index 491c9c9170..b9015cb8a7 100644
 +    }
 +    public <T extends ParticleParam> int sendParticles(List<EntityPlayer> receivers, EntityPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) {
 +        // Paper end
-         PacketPlayOutWorldParticles packetplayoutworldparticles = new PacketPlayOutWorldParticles(t0, force, (float) d0, (float) d1, (float) d2, (float) d3, (float) d4, (float) d5, (float) d6, i);
+         PacketPlayOutWorldParticles packetplayoutworldparticles = new PacketPlayOutWorldParticles(t0, force, d0, d1, d2, (float) d3, (float) d4, (float) d5, (float) d6, i);
          // CraftBukkit end
          int j = 0;
  
@@ -43,10 +43,10 @@ index 491c9c9170..b9015cb8a7 100644
  
              if (this.a(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 0e4f4cda0b..3726f240ce 100644
+index b7db32833..a66e4c3f1 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2199,11 +2199,17 @@ public class CraftWorld implements World {
+@@ -2209,11 +2209,17 @@ public class CraftWorld implements World {
  
      @Override
      public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
@@ -66,5 +66,5 @@ index 0e4f4cda0b..3726f240ce 100644
                  x, y, z, // Position
                  count,  // Count
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0223-EndermanAttackPlayerEvent.patch b/Spigot-Server-Patches/0219-EndermanAttackPlayerEvent.patch
similarity index 88%
rename from Spigot-Server-Patches/0223-EndermanAttackPlayerEvent.patch
rename to Spigot-Server-Patches/0219-EndermanAttackPlayerEvent.patch
index 015a88b11..099791ef7 100644
--- a/Spigot-Server-Patches/0223-EndermanAttackPlayerEvent.patch
+++ b/Spigot-Server-Patches/0219-EndermanAttackPlayerEvent.patch
@@ -1,4 +1,4 @@
-From 6643560be4e40630c36e03903e9d10324c9bcd36 Mon Sep 17 00:00:00 2001
+From 2525095dad65d3f653f2900049dabd95e9af773d Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 1 May 2018 20:18:54 -0400
 Subject: [PATCH] EndermanAttackPlayerEvent
@@ -8,10 +8,10 @@ Allow control over whether or not an enderman aggros a player.
 This allows you to override/extend the pumpkin/stare logic.
 
 diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
-index 7d2e00085a..639f55ed98 100644
+index 6868ca415..607d6da6a 100644
 --- a/src/main/java/net/minecraft/server/EntityEnderman.java
 +++ b/src/main/java/net/minecraft/server/EntityEnderman.java
-@@ -138,7 +138,15 @@ public class EntityEnderman extends EntityMonster {
+@@ -141,7 +141,15 @@ public class EntityEnderman extends EntityMonster {
          this.setCarried(iblockdata);
      }
  
@@ -28,5 +28,5 @@ index 7d2e00085a..639f55ed98 100644
  
          if (itemstack.getItem() == Blocks.CARVED_PUMPKIN.getItem()) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0224-WitchConsumePotionEvent.patch b/Spigot-Server-Patches/0220-WitchConsumePotionEvent.patch
similarity index 92%
rename from Spigot-Server-Patches/0224-WitchConsumePotionEvent.patch
rename to Spigot-Server-Patches/0220-WitchConsumePotionEvent.patch
index 2645b90a6..ec387dc52 100644
--- a/Spigot-Server-Patches/0224-WitchConsumePotionEvent.patch
+++ b/Spigot-Server-Patches/0220-WitchConsumePotionEvent.patch
@@ -1,4 +1,4 @@
-From e9a5ef45bd28700d89ae12366e546852377e52f7 Mon Sep 17 00:00:00 2001
+From e2e97b1806e88aecdbbaa983a3f1ec0eac102b39 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 16 May 2018 20:35:16 -0400
 Subject: [PATCH] WitchConsumePotionEvent
@@ -6,7 +6,7 @@ Subject: [PATCH] WitchConsumePotionEvent
 Fires when a witch consumes the potion in their hand
 
 diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
-index 6b50d5334d..189263bf75 100644
+index ddff0b578..aa9011171 100644
 --- a/src/main/java/net/minecraft/server/EntityWitch.java
 +++ b/src/main/java/net/minecraft/server/EntityWitch.java
 @@ -88,7 +88,11 @@ public class EntityWitch extends EntityRaider implements IRangedEntity {
@@ -23,5 +23,5 @@ index 6b50d5334d..189263bf75 100644
                          if (list != null) {
                              Iterator iterator = list.iterator();
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0225-WitchThrowPotionEvent.patch b/Spigot-Server-Patches/0221-WitchThrowPotionEvent.patch
similarity index 83%
rename from Spigot-Server-Patches/0225-WitchThrowPotionEvent.patch
rename to Spigot-Server-Patches/0221-WitchThrowPotionEvent.patch
index 2b3c9a08a..19205980c 100644
--- a/Spigot-Server-Patches/0225-WitchThrowPotionEvent.patch
+++ b/Spigot-Server-Patches/0221-WitchThrowPotionEvent.patch
@@ -1,4 +1,4 @@
-From 58c8d7cc70eec4baf44c06a6cea071b0f9b48a8c Mon Sep 17 00:00:00 2001
+From d752ec090fd564619e2e18a95ef1090909fdeb75 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 16 May 2018 20:44:58 -0400
 Subject: [PATCH] WitchThrowPotionEvent
@@ -6,7 +6,7 @@ Subject: [PATCH] WitchThrowPotionEvent
 Fired when a witch throws a potion at a player
 
 diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
-index 189263bf75..0a40e2ff1b 100644
+index aa9011171..1f2759e95 100644
 --- a/src/main/java/net/minecraft/server/EntityWitch.java
 +++ b/src/main/java/net/minecraft/server/EntityWitch.java
 @@ -185,9 +185,16 @@ public class EntityWitch extends EntityRaider implements IRangedEntity {
@@ -27,7 +27,7 @@ index 189263bf75..0a40e2ff1b 100644
 +            // Paper end
              entitypotion.pitch -= -20.0F;
              entitypotion.shoot(d0, d1 + (double) (f1 * 0.2F), d2, 0.75F, 8.0F);
-             this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_WITCH_THROW, this.getSoundCategory(), 1.0F, 0.8F + this.random.nextFloat() * 0.4F);
+             this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_WITCH_THROW, this.getSoundCategory(), 1.0F, 0.8F + this.random.nextFloat() * 0.4F);
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0226-Allow-spawning-Item-entities-with-World.spawnEntity.patch b/Spigot-Server-Patches/0222-Allow-spawning-Item-entities-with-World.spawnEntity.patch
similarity index 87%
rename from Spigot-Server-Patches/0226-Allow-spawning-Item-entities-with-World.spawnEntity.patch
rename to Spigot-Server-Patches/0222-Allow-spawning-Item-entities-with-World.spawnEntity.patch
index d99ef586d..20b7297d9 100644
--- a/Spigot-Server-Patches/0226-Allow-spawning-Item-entities-with-World.spawnEntity.patch
+++ b/Spigot-Server-Patches/0222-Allow-spawning-Item-entities-with-World.spawnEntity.patch
@@ -1,4 +1,4 @@
-From 415ac6f8e3ed38ff117a4acb97fcb0425a8244a0 Mon Sep 17 00:00:00 2001
+From 2d0626da9401ac4dd34483b139f05c4ef68e7536 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 4 Jun 2018 20:39:20 -0400
 Subject: [PATCH] Allow spawning Item entities with World.spawnEntity
@@ -8,10 +8,10 @@ This API has more capabilities than .dropItem with the Consumer function
 Item can be set inside of the Consumer pre spawn function.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 3726f240ce..515f94aa5d 100644
+index a66e4c3f1..6a7c088f9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1427,6 +1427,10 @@ public class CraftWorld implements World {
+@@ -1441,6 +1441,10 @@ public class CraftWorld implements World {
          if (Boat.class.isAssignableFrom(clazz)) {
              entity = new EntityBoat(world, x, y, z);
              entity.setPositionRotation(x, y, z, yaw, pitch);
@@ -23,5 +23,5 @@ index 3726f240ce..515f94aa5d 100644
              entity = new EntityFallingBlock(world, x, y, z, world.getType(new BlockPosition(x, y, z)));
          } else if (Projectile.class.isAssignableFrom(clazz)) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0227-WitchReadyPotionEvent.patch b/Spigot-Server-Patches/0223-WitchReadyPotionEvent.patch
similarity index 78%
rename from Spigot-Server-Patches/0227-WitchReadyPotionEvent.patch
rename to Spigot-Server-Patches/0223-WitchReadyPotionEvent.patch
index 4edc7dfd2..730b56ca4 100644
--- a/Spigot-Server-Patches/0227-WitchReadyPotionEvent.patch
+++ b/Spigot-Server-Patches/0223-WitchReadyPotionEvent.patch
@@ -1,11 +1,11 @@
-From 7b8e216c26c93b91bbec112feaf5037b903727fd Mon Sep 17 00:00:00 2001
+From 7822c66db3ab96c5b892428bd1c3a7df96645715 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 5 Jun 2018 22:47:26 -0400
 Subject: [PATCH] WitchReadyPotionEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
-index 0a40e2ff1b..ff4e73fff3 100644
+index 1f2759e95..be6ecfb08 100644
 --- a/src/main/java/net/minecraft/server/EntityWitch.java
 +++ b/src/main/java/net/minecraft/server/EntityWitch.java
 @@ -121,7 +121,11 @@ public class EntityWitch extends EntityRaider implements IRangedEntity {
@@ -18,9 +18,9 @@ index 0a40e2ff1b..ff4e73fff3 100644
 +                    org.bukkit.inventory.ItemStack bukkitStack = com.destroystokyo.paper.event.entity.WitchReadyPotionEvent.process((org.bukkit.entity.Witch) this.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(potion));
 +                    this.setSlot(EnumItemSlot.MAINHAND, org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(bukkitStack));
 +                    // Paper end
-                     this.bB = this.getItemInMainHand().k();
-                     this.s(true);
-                     this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_WITCH_DRINK, this.getSoundCategory(), 1.0F, 0.8F + this.random.nextFloat() * 0.4F);
+                     this.by = this.getItemInMainHand().k();
+                     this.t(true);
+                     this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_WITCH_DRINK, this.getSoundCategory(), 1.0F, 0.8F + this.random.nextFloat() * 0.4F);
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0228-ItemStack-getMaxItemUseDuration.patch b/Spigot-Server-Patches/0224-ItemStack-getMaxItemUseDuration.patch
similarity index 88%
rename from Spigot-Server-Patches/0228-ItemStack-getMaxItemUseDuration.patch
rename to Spigot-Server-Patches/0224-ItemStack-getMaxItemUseDuration.patch
index 3a79da9a8..3c19be054 100644
--- a/Spigot-Server-Patches/0228-ItemStack-getMaxItemUseDuration.patch
+++ b/Spigot-Server-Patches/0224-ItemStack-getMaxItemUseDuration.patch
@@ -1,4 +1,4 @@
-From 64ccf0a1e755d75f0f30780415ede6261ce9f2c8 Mon Sep 17 00:00:00 2001
+From 73e6994894a822b241cf0cc485ac9b8b1d6a8c76 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 5 Jun 2018 23:00:29 -0400
 Subject: [PATCH] ItemStack#getMaxItemUseDuration
@@ -6,10 +6,10 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration
 Allows you to determine how long it takes to use a usable/consumable item
 
 diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
-index d4ffaea7cb..f849a29e2a 100644
+index 2d0a8c58f..5fc7124dd 100644
 --- a/src/main/java/net/minecraft/server/ItemStack.java
 +++ b/src/main/java/net/minecraft/server/ItemStack.java
-@@ -545,6 +545,7 @@ public final class ItemStack {
+@@ -548,6 +548,7 @@ public final class ItemStack {
          this.getItem().b(this, world, entityhuman);
      }
  
@@ -18,7 +18,7 @@ index d4ffaea7cb..f849a29e2a 100644
          return this.getItem().f_(this);
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index c45fe35e03..e6aac0cff0 100644
+index 410444747..553f60987 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
 @@ -174,6 +174,13 @@ public final class CraftItemStack extends ItemStack {
@@ -36,5 +36,5 @@ index c45fe35e03..e6aac0cff0 100644
      public void addUnsafeEnchantment(Enchantment ench, int level) {
          Validate.notNull(ench, "Cannot add null enchantment");
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0229-Implement-EntityTeleportEndGatewayEvent.patch b/Spigot-Server-Patches/0225-Implement-EntityTeleportEndGatewayEvent.patch
similarity index 91%
rename from Spigot-Server-Patches/0229-Implement-EntityTeleportEndGatewayEvent.patch
rename to Spigot-Server-Patches/0225-Implement-EntityTeleportEndGatewayEvent.patch
index 811828cb1..a025f7a7d 100644
--- a/Spigot-Server-Patches/0229-Implement-EntityTeleportEndGatewayEvent.patch
+++ b/Spigot-Server-Patches/0225-Implement-EntityTeleportEndGatewayEvent.patch
@@ -1,14 +1,14 @@
-From d131147b250b5d04ac47721128a5af05f3f32a3a Mon Sep 17 00:00:00 2001
+From 72c985a2c8e569e9471edc10f46e5edd7e9e7cd9 Mon Sep 17 00:00:00 2001
 From: Shane Freeder <theboyetronic@gmail.com>
 Date: Sat, 9 Jun 2018 14:08:39 +0200
 Subject: [PATCH] Implement EntityTeleportEndGatewayEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/TileEntityEndGateway.java b/src/main/java/net/minecraft/server/TileEntityEndGateway.java
-index 7ca5f04733..15dccc905e 100644
+index 78fba7937..c71f76004 100644
 --- a/src/main/java/net/minecraft/server/TileEntityEndGateway.java
 +++ b/src/main/java/net/minecraft/server/TileEntityEndGateway.java
-@@ -144,8 +144,19 @@ public class TileEntityEndGateway extends TileEntityEnderPortal implements ITick
+@@ -145,8 +145,19 @@ public class TileEntityEndGateway extends TileEntityEnderPortal implements ITick
  
                  }
                  // CraftBukkit end
@@ -30,5 +30,5 @@ index 7ca5f04733..15dccc905e 100644
  
              this.h();
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0230-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/Spigot-Server-Patches/0226-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch
similarity index 87%
rename from Spigot-Server-Patches/0230-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch
rename to Spigot-Server-Patches/0226-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch
index f7c6b472d..daa218ba1 100644
--- a/Spigot-Server-Patches/0230-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch
+++ b/Spigot-Server-Patches/0226-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch
@@ -1,4 +1,4 @@
-From 2249fc498d9c064e9ad6d1b406fb4d7415adcb21 Mon Sep 17 00:00:00 2001
+From 29ec2e2ea3e8cc94fa15a4bdbd7f9fef3a4c3381 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 10 Jun 2018 01:18:49 -0400
 Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event
@@ -6,7 +6,7 @@ Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event
 Otherwise the creeper infinite explodes
 
 diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
-index 100a1a10c9..ae4dd98ee1 100644
+index dabe40c5f..317c1998e 100644
 --- a/src/main/java/net/minecraft/server/EntityCreeper.java
 +++ b/src/main/java/net/minecraft/server/EntityCreeper.java
 @@ -12,7 +12,7 @@ public class EntityCreeper extends EntityMonster {
@@ -15,10 +15,10 @@ index 100a1a10c9..ae4dd98ee1 100644
      private static final DataWatcherObject<Boolean> POWERED = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i);
 -    private static final DataWatcherObject<Boolean> d = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i);
 +    private static final DataWatcherObject<Boolean> d = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> isIgnitedDW = d; // Paper OBFHELPER
-     private int bz;
+     private int bw;
      private int fuseTicks;
      public int maxFuseTicks = 30;
-@@ -217,6 +217,7 @@ public class EntityCreeper extends EntityMonster {
+@@ -219,6 +219,7 @@ public class EntityCreeper extends EntityMonster {
                  this.createEffectCloud();
              } else {
                  fuseTicks = 0;
@@ -27,5 +27,5 @@ index 100a1a10c9..ae4dd98ee1 100644
              // CraftBukkit end
          }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0231-Fix-CraftEntity-hashCode.patch b/Spigot-Server-Patches/0227-Fix-CraftEntity-hashCode.patch
similarity index 90%
rename from Spigot-Server-Patches/0231-Fix-CraftEntity-hashCode.patch
rename to Spigot-Server-Patches/0227-Fix-CraftEntity-hashCode.patch
index e94305197..dd195de8b 100644
--- a/Spigot-Server-Patches/0231-Fix-CraftEntity-hashCode.patch
+++ b/Spigot-Server-Patches/0227-Fix-CraftEntity-hashCode.patch
@@ -1,4 +1,4 @@
-From c08536aeb0cb0387c9b623a5b4df96df67131771 Mon Sep 17 00:00:00 2001
+From 22b1f8bebd55c58a20f60090957dc3e8bd4fc9f7 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sun, 10 Jun 2018 20:20:15 -0400
 Subject: [PATCH] Fix CraftEntity hashCode
@@ -21,10 +21,10 @@ check is essentially the same as this.getHandle() == other.getHandle()
 However, replaced it too to make it clearer of intent.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 09ca9a3eb..517e42218 100644
+index 495a7c464..915ccb180 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -721,14 +721,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -723,14 +723,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
              return false;
          }
          final CraftEntity other = (CraftEntity) obj;
@@ -45,5 +45,5 @@ index 09ca9a3eb..517e42218 100644
  
      @Override
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0232-Configurable-Alternative-LootPool-Luck-Formula.patch b/Spigot-Server-Patches/0228-Configurable-Alternative-LootPool-Luck-Formula.patch
similarity index 94%
rename from Spigot-Server-Patches/0232-Configurable-Alternative-LootPool-Luck-Formula.patch
rename to Spigot-Server-Patches/0228-Configurable-Alternative-LootPool-Luck-Formula.patch
index 52652483c..ab45ae013 100644
--- a/Spigot-Server-Patches/0232-Configurable-Alternative-LootPool-Luck-Formula.patch
+++ b/Spigot-Server-Patches/0228-Configurable-Alternative-LootPool-Luck-Formula.patch
@@ -1,4 +1,4 @@
-From 5bfc8dd97d1150abe4bb21086f52c26791b5bc87 Mon Sep 17 00:00:00 2001
+From c15b1063aeb983155071258bb459b721206ddc95 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Fri, 15 Jun 2018 00:30:32 -0400
 Subject: [PATCH] Configurable Alternative LootPool Luck Formula
@@ -36,7 +36,7 @@ This change will result in some major changes to fishing formulas.
 I would love to see this change in Vanilla, so Mojang please pull :)
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index 4169ec9a58..eeef7d330b 100644
+index ba341e017..26ab855dc 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
 @@ -279,4 +279,12 @@ public class PaperConfig {
@@ -53,10 +53,10 @@ index 4169ec9a58..eeef7d330b 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/LootSelectorEntry.java b/src/main/java/net/minecraft/server/LootSelectorEntry.java
-index 1016325bd7..2c979e0b74 100644
+index 3ed6a1e78..03398ce8f 100644
 --- a/src/main/java/net/minecraft/server/LootSelectorEntry.java
 +++ b/src/main/java/net/minecraft/server/LootSelectorEntry.java
-@@ -13,8 +13,8 @@ import org.apache.commons.lang3.ArrayUtils;
+@@ -11,8 +11,8 @@ import org.apache.commons.lang3.ArrayUtils;
  
  public abstract class LootSelectorEntry extends LootEntryAbstract {
  
@@ -67,7 +67,7 @@ index 1016325bd7..2c979e0b74 100644
      protected final LootItemFunction[] g;
      private final BiFunction<ItemStack, LootTableInfo, ItemStack> c;
      private final LootEntry h = new LootSelectorEntry.c() {
-@@ -147,11 +147,38 @@ public abstract class LootSelectorEntry extends LootEntryAbstract {
+@@ -145,11 +145,38 @@ public abstract class LootSelectorEntry extends LootEntryAbstract {
  
      public abstract class c implements LootEntry {
  
@@ -109,5 +109,5 @@ index 1016325bd7..2c979e0b74 100644
 +        // Paper end
  }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0233-Print-Error-details-when-failing-to-save-player-data.patch b/Spigot-Server-Patches/0229-Print-Error-details-when-failing-to-save-player-data.patch
similarity index 88%
rename from Spigot-Server-Patches/0233-Print-Error-details-when-failing-to-save-player-data.patch
rename to Spigot-Server-Patches/0229-Print-Error-details-when-failing-to-save-player-data.patch
index 8949b7933..7fec825cc 100644
--- a/Spigot-Server-Patches/0233-Print-Error-details-when-failing-to-save-player-data.patch
+++ b/Spigot-Server-Patches/0229-Print-Error-details-when-failing-to-save-player-data.patch
@@ -1,11 +1,11 @@
-From b9d71ab51bf488d1eb7094d08329ccec6e04659c Mon Sep 17 00:00:00 2001
+From ca65176138244564301d2c5eefd88e0a47ccd942 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Fri, 15 Jun 2018 20:37:03 -0400
 Subject: [PATCH] Print Error details when failing to save player data
 
 
 diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java
-index e60e10c57d..350ac42d6b 100644
+index e60e10c57..350ac42d6 100644
 --- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
 +++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java
 @@ -151,7 +151,7 @@ public class WorldNBTStorage implements IPlayerFileData {
@@ -18,5 +18,5 @@ index e60e10c57d..350ac42d6b 100644
  
      }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0234-Make-shield-blocking-delay-configurable.patch b/Spigot-Server-Patches/0230-Make-shield-blocking-delay-configurable.patch
similarity index 87%
rename from Spigot-Server-Patches/0234-Make-shield-blocking-delay-configurable.patch
rename to Spigot-Server-Patches/0230-Make-shield-blocking-delay-configurable.patch
index df1deadf5..f7d720053 100644
--- a/Spigot-Server-Patches/0234-Make-shield-blocking-delay-configurable.patch
+++ b/Spigot-Server-Patches/0230-Make-shield-blocking-delay-configurable.patch
@@ -1,11 +1,11 @@
-From 583de78b3b0a8015292a358277c9a45eb458177c Mon Sep 17 00:00:00 2001
+From 7d065a2a08e59025bd4d81b8c2f63f18e66132a1 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Sat, 16 Jun 2018 01:18:16 -0500
 Subject: [PATCH] Make shield blocking delay configurable
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index cb8922329..6c3d074b8 100644
+index 585646ded..54bf1323e 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -365,4 +365,9 @@ public class PaperWorldConfig {
@@ -19,19 +19,19 @@ index cb8922329..6c3d074b8 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 74c1f7c44..a873685e4 100644
+index c03fcd2d3..3f493f415 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
-@@ -2922,7 +2922,7 @@ public abstract class EntityLiving extends Entity {
+@@ -2996,7 +2996,7 @@ public abstract class EntityLiving extends Entity {
          if (this.isHandRaised() && !this.activeItem.isEmpty()) {
              Item item = this.activeItem.getItem();
  
--            return item.e_(this.activeItem) != EnumAnimation.BLOCK ? false : item.f_(this.activeItem) - this.bo >= 5;
-+            return item.e_(this.activeItem) != EnumAnimation.BLOCK ? false : item.f_(this.activeItem) - this.bo >= getShieldBlockingDelay(); // Paper - shieldBlockingDelay
+-            return item.e_(this.activeItem) != EnumAnimation.BLOCK ? false : item.f_(this.activeItem) - this.bl >= 5;
++            return item.e_(this.activeItem) != EnumAnimation.BLOCK ? false : item.f_(this.activeItem) - this.bl >= getShieldBlockingDelay(); // Paper - shieldBlockingDelay
          } else {
              return false;
          }
-@@ -3158,4 +3158,15 @@ public abstract class EntityLiving extends Entity {
+@@ -3235,4 +3235,15 @@ public abstract class EntityLiving extends Entity {
      public void d(EnumHand enumhand) {
          this.c(enumhand == EnumHand.MAIN_HAND ? EnumItemSlot.MAINHAND : EnumItemSlot.OFFHAND);
      }
@@ -68,5 +68,5 @@ index b8482c632..67f275321 100644
      // Paper end
  }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0235-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch b/Spigot-Server-Patches/0231-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
similarity index 84%
rename from Spigot-Server-Patches/0235-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
rename to Spigot-Server-Patches/0231-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
index 349ad8c2b..5eca43a74 100644
--- a/Spigot-Server-Patches/0235-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
+++ b/Spigot-Server-Patches/0231-Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
@@ -1,4 +1,4 @@
-From 4db4d3c836ba7a2674d7b58bf4d46b8cc8d4e7e6 Mon Sep 17 00:00:00 2001
+From 18febd91f8f096df4f2ac1d8b426723d0bbee9bc 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,7 +6,7 @@ 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 121e1fd538..0e66bdda8c 100644
+index 0203e26ec..aa6e5681f 100644
 --- a/src/main/java/net/minecraft/server/RecipeBookServer.java
 +++ b/src/main/java/net/minecraft/server/RecipeBookServer.java
 @@ -79,6 +79,10 @@ public class RecipeBookServer extends RecipeBook {
@@ -18,7 +18,7 @@ index 121e1fd538..0e66bdda8c 100644
 +            if (!recipe.isPresent()) continue;
 +            // Paper end
  
-             nbttaglist.add(new NBTTagString(minecraftkey.toString()));
+             nbttaglist.add(NBTTagString.a(minecraftkey.toString()));
          }
 @@ -89,6 +93,10 @@ public class RecipeBookServer extends RecipeBook {
  
@@ -29,8 +29,8 @@ index 121e1fd538..0e66bdda8c 100644
 +            if (!recipe.isPresent()) continue;
 +            // Paper end
  
-             nbttaglist1.add(new NBTTagString(minecraftkey1.toString()));
+             nbttaglist1.add(NBTTagString.a(minecraftkey1.toString()));
          }
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0236-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch b/Spigot-Server-Patches/0232-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
similarity index 94%
rename from Spigot-Server-Patches/0236-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
rename to Spigot-Server-Patches/0232-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
index 6494bb56f..a987dd2a4 100644
--- a/Spigot-Server-Patches/0236-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
+++ b/Spigot-Server-Patches/0232-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
@@ -1,4 +1,4 @@
-From e7101a32d4ccec5fe80bcf9578bc6abea64e56ec Mon Sep 17 00:00:00 2001
+From fb58d6a90beadd6594463b3e6bb929f9b30a4fd2 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
@@ -6,7 +6,7 @@ Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API
 Adds ability to get what arrow was shot, and control if it should be consumed.
 
 diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
-index 5c3628035..8f1b5a550 100644
+index d97558da3..fdeb8980d 100644
 --- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
 +++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
 @@ -157,7 +157,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR
@@ -19,7 +19,7 @@ index 5c3628035..8f1b5a550 100644
              event.getProjectile().remove();
              return;
 diff --git a/src/main/java/net/minecraft/server/ItemBow.java b/src/main/java/net/minecraft/server/ItemBow.java
-index 0ea1bf4dc..90592fd38 100644
+index 4b07e18c7..71800b34b 100644
 --- a/src/main/java/net/minecraft/server/ItemBow.java
 +++ b/src/main/java/net/minecraft/server/ItemBow.java
 @@ -36,6 +36,7 @@ public class ItemBow extends ItemProjectileWeapon {
@@ -52,14 +52,14 @@ index 0ea1bf4dc..90592fd38 100644
 @@ -88,7 +90,7 @@ public class ItemBow extends ItemProjectileWeapon {
                      }
  
-                     world.playSound((EntityHuman) null, entityhuman.locX, entityhuman.locY, entityhuman.locZ, SoundEffects.ENTITY_ARROW_SHOOT, SoundCategory.PLAYERS, 1.0F, 1.0F / (ItemBow.i.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
+                     world.playSound((EntityHuman) null, entityhuman.locX(), entityhuman.locY(), entityhuman.locZ(), SoundEffects.ENTITY_ARROW_SHOOT, SoundCategory.PLAYERS, 1.0F, 1.0F / (ItemBow.i.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
 -                    if (!flag1 && !entityhuman.abilities.canInstantlyBuild) {
 +                    if (!flag1 && !entityhuman.abilities.canInstantlyBuild && consumeArrow) { // Paper
                          itemstack1.subtract(1);
                          if (itemstack1.isEmpty()) {
                              entityhuman.inventory.f(itemstack1);
 diff --git a/src/main/java/net/minecraft/server/ItemCrossbow.java b/src/main/java/net/minecraft/server/ItemCrossbow.java
-index 874d9f500..f0d784108 100644
+index 608be9e70..011efc6f5 100644
 --- a/src/main/java/net/minecraft/server/ItemCrossbow.java
 +++ b/src/main/java/net/minecraft/server/ItemCrossbow.java
 @@ -221,7 +221,7 @@ public class ItemCrossbow extends ItemProjectileWeapon {
@@ -72,7 +72,7 @@ index 874d9f500..f0d784108 100644
                  event.getProjectile().remove();
                  return;
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 489943410..e58dac2c8 100644
+index 9b314eacc..94fbac5e4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -51,6 +51,7 @@ import net.minecraft.server.GeneratorAccess;
@@ -104,5 +104,5 @@ index 489943410..e58dac2c8 100644
  
          return event;
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0237-PlayerReadyArrowEvent.patch b/Spigot-Server-Patches/0233-PlayerReadyArrowEvent.patch
similarity index 86%
rename from Spigot-Server-Patches/0237-PlayerReadyArrowEvent.patch
rename to Spigot-Server-Patches/0233-PlayerReadyArrowEvent.patch
index 694befaf4..b77818d8d 100644
--- a/Spigot-Server-Patches/0237-PlayerReadyArrowEvent.patch
+++ b/Spigot-Server-Patches/0233-PlayerReadyArrowEvent.patch
@@ -1,4 +1,4 @@
-From 8a68fc4ca19693cb47e182ac21fb3e1db11c2512 Mon Sep 17 00:00:00 2001
+From 87f3926a3b2fc53691d6e4a5490abfafd18728f2 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 18 Jun 2018 01:12:53 -0400
 Subject: [PATCH] PlayerReadyArrowEvent
@@ -7,11 +7,11 @@ Called when a player is firing a bow and the server is choosing an arrow to use.
 Plugins can skip selection of certain arrows and control which is used.
 
 diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
-index dfd004f02..5a95fe160 100644
+index 4e91fdd69..3917980b7 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
-@@ -2052,6 +2052,17 @@ public abstract class EntityHuman extends EntityLiving {
-         return (EntitySize) EntityHuman.b.getOrDefault(entitypose, EntityHuman.bs);
+@@ -2149,6 +2149,17 @@ public abstract class EntityHuman extends EntityLiving {
+         return (EntitySize) EntityHuman.b.getOrDefault(entitypose, EntityHuman.bp);
      }
  
 +    // Paper start
@@ -28,7 +28,7 @@ index dfd004f02..5a95fe160 100644
      @Override
      public ItemStack f(ItemStack itemstack) {
          if (!(itemstack.getItem() instanceof ItemProjectileWeapon)) {
-@@ -2068,7 +2079,7 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -2165,7 +2176,7 @@ public abstract class EntityHuman extends EntityLiving {
                  for (int i = 0; i < this.inventory.getSize(); ++i) {
                      ItemStack itemstack2 = this.inventory.getItem(i);
  
@@ -38,5 +38,5 @@ index dfd004f02..5a95fe160 100644
                      }
                  }
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0238-Fire-EntityShootBowEvent-for-Illusioner.patch b/Spigot-Server-Patches/0234-Fire-EntityShootBowEvent-for-Illusioner.patch
similarity index 93%
rename from Spigot-Server-Patches/0238-Fire-EntityShootBowEvent-for-Illusioner.patch
rename to Spigot-Server-Patches/0234-Fire-EntityShootBowEvent-for-Illusioner.patch
index d2946d34d..71c7133d0 100644
--- a/Spigot-Server-Patches/0238-Fire-EntityShootBowEvent-for-Illusioner.patch
+++ b/Spigot-Server-Patches/0234-Fire-EntityShootBowEvent-for-Illusioner.patch
@@ -1,11 +1,11 @@
-From 5ce1d4e9b773db23978cde160a4abd46b019319f Mon Sep 17 00:00:00 2001
+From a4bdbe606b3b17f6e5e756b434130f15815427ea Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Mon, 18 Jun 2018 22:19:36 -0400
 Subject: [PATCH] Fire EntityShootBowEvent for Illusioner
 
 
 diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
-index 2c320c8a43..cc37b5ff16 100644
+index 2ea0583a3..81b7cd06f 100644
 --- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
 +++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
 @@ -138,8 +138,18 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
@@ -29,5 +29,5 @@ index 2c320c8a43..cc37b5ff16 100644
  
      class a extends EntityIllagerWizard.c {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0239-Implement-EntityKnockbackByEntityEvent.patch b/Spigot-Server-Patches/0235-Implement-EntityKnockbackByEntityEvent.patch
similarity index 89%
rename from Spigot-Server-Patches/0239-Implement-EntityKnockbackByEntityEvent.patch
rename to Spigot-Server-Patches/0235-Implement-EntityKnockbackByEntityEvent.patch
index 72c3b056c..e47684a80 100644
--- a/Spigot-Server-Patches/0239-Implement-EntityKnockbackByEntityEvent.patch
+++ b/Spigot-Server-Patches/0235-Implement-EntityKnockbackByEntityEvent.patch
@@ -1,4 +1,4 @@
-From ad8b55ff30923ed0f1e1422f1f7abbfa1e5448d5 Mon Sep 17 00:00:00 2001
+From df6bfa902abdf629a7cdef8d789da60a3a0ed5b0 Mon Sep 17 00:00:00 2001
 From: Brokkonaut <hannos17@gmx.de>
 Date: Mon, 18 Jun 2018 15:46:23 +0200
 Subject: [PATCH] Implement EntityKnockbackByEntityEvent
@@ -6,10 +6,10 @@ Subject: [PATCH] Implement EntityKnockbackByEntityEvent
 This event is called when an entity receives knockback by another entity.
 
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index a873685e47..dfbd40a997 100644
+index 3f493f415..855afcd64 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
-@@ -1431,6 +1431,16 @@ public abstract class EntityLiving extends Entity {
+@@ -1419,6 +1419,16 @@ public abstract class EntityLiving extends Entity {
              Vec3D vec3d1 = (new Vec3D(d0, 0.0D, d1)).d().a((double) f);
  
              this.setMot(vec3d.x / 2.0D - vec3d1.x, this.onGround ? Math.min(0.4D, vec3d.y / 2.0D + (double) f) : vec3d.y, vec3d.z / 2.0D - vec3d1.z);
@@ -27,5 +27,5 @@ index a873685e47..dfbd40a997 100644
      }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0240-Expand-Explosions-API.patch b/Spigot-Server-Patches/0236-Expand-Explosions-API.patch
similarity index 88%
rename from Spigot-Server-Patches/0240-Expand-Explosions-API.patch
rename to Spigot-Server-Patches/0236-Expand-Explosions-API.patch
index cd20622e1..9d54e4b69 100644
--- a/Spigot-Server-Patches/0240-Expand-Explosions-API.patch
+++ b/Spigot-Server-Patches/0236-Expand-Explosions-API.patch
@@ -1,4 +1,4 @@
-From 5e701e3ec843d8589968c7e24eb5708c1cb89a97 Mon Sep 17 00:00:00 2001
+From e06c5edc8f85e500fa445188e2a64df7505d8193 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 20 Jun 2018 23:17:24 -0400
 Subject: [PATCH] Expand Explosions API
@@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API
 Add Entity as a Source capability, and add more API choices, and on Location.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 515f94aa5d..5db2a4cca2 100644
+index 6a7c088f9..a062e10fc 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -859,6 +859,11 @@ public class CraftWorld implements World {
+@@ -874,6 +874,11 @@ public class CraftWorld implements World {
      public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) {
          return !world.createExplosion(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? Explosion.Effect.BREAK : Explosion.Effect.NONE).wasCanceled;
      }
@@ -22,5 +22,5 @@ index 515f94aa5d..5db2a4cca2 100644
      @Override
      public boolean createExplosion(Location loc, float power) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0241-LivingEntity-Hand-Raised-Item-Use-API.patch b/Spigot-Server-Patches/0237-LivingEntity-Hand-Raised-Item-Use-API.patch
similarity index 76%
rename from Spigot-Server-Patches/0241-LivingEntity-Hand-Raised-Item-Use-API.patch
rename to Spigot-Server-Patches/0237-LivingEntity-Hand-Raised-Item-Use-API.patch
index b939d27fb..17d26fccc 100644
--- a/Spigot-Server-Patches/0241-LivingEntity-Hand-Raised-Item-Use-API.patch
+++ b/Spigot-Server-Patches/0237-LivingEntity-Hand-Raised-Item-Use-API.patch
@@ -1,4 +1,4 @@
-From 404dfaf1316cf2354fa664407478f5cd0085a1e6 Mon Sep 17 00:00:00 2001
+From 5b7335774bdd0fd92d6917afc94144b618d4ea7b Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Fri, 29 Jun 2018 00:21:28 -0400
 Subject: [PATCH] LivingEntity Hand Raised/Item Use API
@@ -6,30 +6,30 @@ Subject: [PATCH] LivingEntity Hand Raised/Item Use API
 How long an entity has raised hands to charge an attack or use an item
 
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index dfbd40a99..e1972f793 100644
+index 855afcd64..470cbddeb 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
-@@ -109,7 +109,7 @@ public abstract class EntityLiving extends Entity {
-     private float bD;
+@@ -112,7 +112,7 @@ public abstract class EntityLiving extends Entity {
+     private float bB;
      private int jumpTicks;
-     private float bF;
+     private float bD;
 -    protected ItemStack activeItem;
 +    public ItemStack activeItem; // Paper - public
-     protected int bo;
-     protected int bp;
-     private BlockPosition bG;
-@@ -2900,10 +2900,12 @@ public abstract class EntityLiving extends Entity {
+     protected int bl;
+     protected int bm;
+     private BlockPosition bE;
+@@ -2974,10 +2974,12 @@ public abstract class EntityLiving extends Entity {
          return this.activeItem;
      }
  
-+    public int getItemUseRemainingTime() { return this.dm(); } // Paper - OBFHELPER
-     public int dm() {
-         return this.bo;
++    public int getItemUseRemainingTime() { return this.dE(); } // Paper - OBFHELPER
+     public int dE() {
+         return this.bl;
      }
  
-+    public int getHandRaisedTime() { return this.dn(); } // Paper - OBFHELPER
-     public int dn() {
-         return this.isHandRaised() ? this.activeItem.k() - this.dm() : 0;
++    public int getHandRaisedTime() { return this.dF(); } // Paper - OBFHELPER
+     public int dF() {
+         return this.isHandRaised() ? this.activeItem.k() - this.dE() : 0;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 index 67f275321..379239567 100644
@@ -62,5 +62,5 @@ index 67f275321..379239567 100644
      // Paper end
  }
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0242-RangedEntity-API.patch b/Spigot-Server-Patches/0238-RangedEntity-API.patch
similarity index 95%
rename from Spigot-Server-Patches/0242-RangedEntity-API.patch
rename to Spigot-Server-Patches/0238-RangedEntity-API.patch
index a43508fe7..05ed838ca 100644
--- a/Spigot-Server-Patches/0242-RangedEntity-API.patch
+++ b/Spigot-Server-Patches/0238-RangedEntity-API.patch
@@ -1,4 +1,4 @@
-From eccbb9755b0bf9d49533524423a17a899730db53 Mon Sep 17 00:00:00 2001
+From 2573811027012f44f42576a77ad445e0b7b480b5 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Tue, 26 Jun 2018 22:00:49 -0400
 Subject: [PATCH] RangedEntity API
@@ -8,7 +8,7 @@ and to perform an attack.
 
 diff --git a/src/main/java/com/destroystokyo/paper/entity/CraftRangedEntity.java b/src/main/java/com/destroystokyo/paper/entity/CraftRangedEntity.java
 new file mode 100644
-index 0000000000..696660b089
+index 000000000..696660b08
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/entity/CraftRangedEntity.java
 @@ -0,0 +1,19 @@
@@ -32,7 +32,7 @@ index 0000000000..696660b089
 +    }
 +}
 diff --git a/src/main/java/net/minecraft/server/IRangedEntity.java b/src/main/java/net/minecraft/server/IRangedEntity.java
-index b4178ce1e8..9b79ac77db 100644
+index b4178ce1e..9b79ac77d 100644
 --- a/src/main/java/net/minecraft/server/IRangedEntity.java
 +++ b/src/main/java/net/minecraft/server/IRangedEntity.java
 @@ -2,5 +2,8 @@ package net.minecraft.server;
@@ -46,7 +46,7 @@ index b4178ce1e8..9b79ac77db 100644
 +    void q(boolean flag); default void setChargingAttack(boolean charging) { q(charging); }; // Paper
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java
-index 2ec1af8be4..f31d3eed3a 100644
+index 2ec1af8be..f31d3eed3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java
 @@ -1,11 +1,12 @@
@@ -64,7 +64,7 @@ index 2ec1af8be4..f31d3eed3a 100644
      public CraftIllusioner(CraftServer server, EntityIllagerIllusioner entity) {
          super(server, entity);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
-index 23ab78da15..3f94c5a920 100644
+index 23ab78da1..3f94c5a92 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
 @@ -1,5 +1,6 @@
@@ -84,7 +84,7 @@ index 23ab78da15..3f94c5a920 100644
      public CraftLlama(CraftServer server, EntityLlama entity) {
          super(server, entity);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java
-index b4ae898401..02df66ecfe 100644
+index b4ae89840..02df66ecf 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java
 @@ -1,11 +1,12 @@
@@ -102,7 +102,7 @@ index b4ae898401..02df66ecfe 100644
      public CraftSkeleton(CraftServer server, EntitySkeletonAbstract entity) {
          super(server, entity);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java
-index 27460c59e3..e482b1c9dc 100644
+index 27460c59e..e482b1c9d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java
 @@ -1,11 +1,12 @@
@@ -120,7 +120,7 @@ index 27460c59e3..e482b1c9dc 100644
          super(server, entity);
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java
-index 244e4dc8ec..bae107e76e 100644
+index 244e4dc8e..bae107e76 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java
 @@ -1,11 +1,12 @@
@@ -138,7 +138,7 @@ index 244e4dc8ec..bae107e76e 100644
          super(server, entity);
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
-index 38b555cc7e..03cf6136e6 100644
+index 38b555cc7..03cf6136e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
 @@ -1,5 +1,6 @@
@@ -158,5 +158,5 @@ index 38b555cc7e..03cf6136e6 100644
      private BossBar bossBar;
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0243-Add-config-to-disable-ender-dragon-legacy-check.patch b/Spigot-Server-Patches/0239-Add-config-to-disable-ender-dragon-legacy-check.patch
similarity index 94%
rename from Spigot-Server-Patches/0243-Add-config-to-disable-ender-dragon-legacy-check.patch
rename to Spigot-Server-Patches/0239-Add-config-to-disable-ender-dragon-legacy-check.patch
index 63ff22a77..ded69bf89 100644
--- a/Spigot-Server-Patches/0243-Add-config-to-disable-ender-dragon-legacy-check.patch
+++ b/Spigot-Server-Patches/0239-Add-config-to-disable-ender-dragon-legacy-check.patch
@@ -1,11 +1,11 @@
-From 24d1262ccbd9493d25537b1dd8f780752b8e5ef5 Mon Sep 17 00:00:00 2001
+From 866ce8f74164ffc502a506ad8c7d98f1c3a17937 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Fri, 22 Jun 2018 10:38:31 -0500
 Subject: [PATCH] Add config to disable ender dragon legacy check
 
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index 6c3d074b8..bf08deb25 100644
+index 54bf1323e..f5cafbeca 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -370,4 +370,9 @@ public class PaperWorldConfig {
@@ -19,7 +19,7 @@ index 6c3d074b8..bf08deb25 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java
-index 88a8e4abd..6700c8c65 100644
+index f2c0e06ba..032561f51 100644
 --- a/src/main/java/net/minecraft/server/EnderDragonBattle.java
 +++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java
 @@ -28,10 +28,10 @@ public class EnderDragonBattle {
@@ -47,5 +47,5 @@ index 88a8e4abd..6700c8c65 100644
          if (nbttagcompound.hasKeyOfType("DragonKilled", 99)) {
              if (nbttagcompound.b("DragonUUID")) {
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0244-Implement-World.getEntity-UUID-API.patch b/Spigot-Server-Patches/0240-Implement-World.getEntity-UUID-API.patch
similarity index 83%
rename from Spigot-Server-Patches/0244-Implement-World.getEntity-UUID-API.patch
rename to Spigot-Server-Patches/0240-Implement-World.getEntity-UUID-API.patch
index 93f9361f9..5e7e86fc6 100644
--- a/Spigot-Server-Patches/0244-Implement-World.getEntity-UUID-API.patch
+++ b/Spigot-Server-Patches/0240-Implement-World.getEntity-UUID-API.patch
@@ -1,14 +1,14 @@
-From 045ec7846dc1a311822fa3e963365fc2f41d070e Mon Sep 17 00:00:00 2001
+From bc01b8c3f3db147945c1de837ea3b838f68a85ee Mon Sep 17 00:00:00 2001
 From: Brokkonaut <hannos17@gmx.de>
 Date: Tue, 3 Jul 2018 16:08:14 +0200
 Subject: [PATCH] Implement World.getEntity(UUID) API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 5db2a4cca2..67137d69c1 100644
+index a062e10fc..96ff39e13 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1229,6 +1229,15 @@ public class CraftWorld implements World {
+@@ -1243,6 +1243,15 @@ public class CraftWorld implements World {
          return list;
      }
  
@@ -25,5 +25,5 @@ index 5db2a4cca2..67137d69c1 100644
      public void save() {
          org.spigotmc.AsyncCatcher.catchOp("world save"); // Spigot
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0245-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0241-InventoryCloseEvent-Reason-API.patch
similarity index 90%
rename from Spigot-Server-Patches/0245-InventoryCloseEvent-Reason-API.patch
rename to Spigot-Server-Patches/0241-InventoryCloseEvent-Reason-API.patch
index d3521c98a..4eb444dc5 100644
--- a/Spigot-Server-Patches/0245-InventoryCloseEvent-Reason-API.patch
+++ b/Spigot-Server-Patches/0241-InventoryCloseEvent-Reason-API.patch
@@ -1,4 +1,4 @@
-From b9340661c573f178bfcce53125e5a3346d06a830 Mon Sep 17 00:00:00 2001
+From 667b89b151281f6d14e6abae5a052ab4538013c5 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
@@ -7,11 +7,11 @@ 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 e1bd10579e..89915b3599 100644
+index 3917980b7..007934d8c 100644
 --- a/src/main/java/net/minecraft/server/EntityHuman.java
 +++ b/src/main/java/net/minecraft/server/EntityHuman.java
 @@ -164,7 +164,7 @@ public abstract class EntityHuman extends EntityLiving {
-         this.dA();
+         this.dW();
          super.tick();
          if (!this.world.isClientSide && this.activeContainer != null && !this.activeContainer.canUse(this)) {
 -            this.closeInventory();
@@ -19,7 +19,7 @@ index e1bd10579e..89915b3599 100644
              this.activeContainer = this.defaultContainer;
          }
  
-@@ -351,6 +351,13 @@ public abstract class EntityHuman extends EntityLiving {
+@@ -363,6 +363,13 @@ public abstract class EntityHuman extends EntityLiving {
          return 20;
      }
  
@@ -34,7 +34,7 @@ index e1bd10579e..89915b3599 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 88bc8b5312..1bb580e0e7 100644
+index 4e6601617..bb2a0b7e6 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -362,7 +362,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -55,7 +55,7 @@ index 88bc8b5312..1bb580e0e7 100644
          }
  
          String deathMessage = event.getDeathMessage();
-@@ -1058,7 +1058,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+@@ -1027,7 +1027,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
              return OptionalInt.empty();
          } else {
              if (this.activeContainer != this.defaultContainer) {
@@ -64,7 +64,7 @@ index 88bc8b5312..1bb580e0e7 100644
              }
  
              this.nextContainerCounter();
-@@ -1118,7 +1118,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+@@ -1087,7 +1087,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
          }
          // CraftBukkit end
          if (this.activeContainer != this.defaultContainer) {
@@ -73,7 +73,7 @@ index 88bc8b5312..1bb580e0e7 100644
          }
  
          // this.nextContainerCounter(); // CraftBukkit - moved up
-@@ -1182,7 +1182,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
+@@ -1151,7 +1151,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
  
      @Override
      public void closeInventory() {
@@ -88,10 +88,10 @@ index 88bc8b5312..1bb580e0e7 100644
          this.m();
      }
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 89beac63aa..b9793d4cc6 100644
+index 8757b6751..4f04410f9 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -2025,7 +2025,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2039,7 +2039,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
          PlayerConnectionUtils.ensureMainThread(packetplayinclosewindow, this, this.player.getWorldServer());
  
          if (this.player.isFrozen()) return; // CraftBukkit
@@ -101,10 +101,10 @@ index 89beac63aa..b9793d4cc6 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 a167843bfb..9e5cd22d7d 100644
+index 002f7e844..fd0f5c6f2 100644
 --- a/src/main/java/net/minecraft/server/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/PlayerList.java
-@@ -402,7 +402,7 @@ public abstract class PlayerList {
+@@ -403,7 +403,7 @@ public abstract class PlayerList {
          entityplayer.a(StatisticList.LEAVE_GAME);
  
          // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it
@@ -114,10 +114,10 @@ index a167843bfb..9e5cd22d7d 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 b9015cb8a7..6ca7c88583 100644
+index 4a2e66977..004a06b4b 100644
 --- a/src/main/java/net/minecraft/server/WorldServer.java
 +++ b/src/main/java/net/minecraft/server/WorldServer.java
-@@ -1028,7 +1028,7 @@ public class WorldServer extends World {
+@@ -1036,7 +1036,7 @@ public class WorldServer extends World {
                  {
                      if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity )
                      {
@@ -126,7 +126,7 @@ index b9015cb8a7..6ca7c88583 100644
                      }
                  }
              }
-@@ -1051,7 +1051,7 @@ public class WorldServer extends World {
+@@ -1059,7 +1059,7 @@ public class WorldServer extends World {
                      {
                          if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity )
                          {
@@ -136,7 +136,7 @@ index b9015cb8a7..6ca7c88583 100644
                      }
                  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 77efc43a5d..81cf5f47a7 100644
+index cd8ad2704..e169679c8 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
 @@ -619,8 +619,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -155,10 +155,10 @@ index 77efc43a5d..81cf5f47a7 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 e610c8aaed..ce35e6bbc2 100644
+index 4dc79ca4e..e45dd6cd4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -781,7 +781,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -780,7 +780,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
  
          // Close any foreign inventory
          if (getHandle().activeContainer != getHandle().defaultContainer) {
@@ -168,7 +168,7 @@ index e610c8aaed..ce35e6bbc2 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 8bd1dedcca..ade1d42f7e 100644
+index 94fbac5e4..7967222d9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1288,8 +1288,19 @@ public class CraftEventFactory {
@@ -193,5 +193,5 @@ index 8bd1dedcca..ade1d42f7e 100644
          human.activeContainer.transferTo(human.defaultContainer, human.getBukkitEntity());
      }
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0246-Configurable-Bed-Search-Radius.patch b/Spigot-Server-Patches/0242-Configurable-Bed-Search-Radius.patch
similarity index 96%
rename from Spigot-Server-Patches/0246-Configurable-Bed-Search-Radius.patch
rename to Spigot-Server-Patches/0242-Configurable-Bed-Search-Radius.patch
index 9f2a59ce0..5a6b598ae 100644
--- a/Spigot-Server-Patches/0246-Configurable-Bed-Search-Radius.patch
+++ b/Spigot-Server-Patches/0242-Configurable-Bed-Search-Radius.patch
@@ -1,4 +1,4 @@
-From b82b0677d8284ed9c9a6821b37d695cf40b1d33f Mon Sep 17 00:00:00 2001
+From defe39819444dcf2df2e3543d531ecd429ee464f Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 4 Jul 2018 15:22:06 -0400
 Subject: [PATCH] Configurable Bed Search Radius
@@ -10,7 +10,7 @@ player at their bed should it of became obstructed.
 Defaults to vanilla 1.
 
 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
-index bf08deb25..1ffcebd3c 100644
+index f5cafbeca..b4e5948cc 100644
 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
 @@ -375,4 +375,15 @@ public class PaperWorldConfig {
@@ -30,10 +30,10 @@ index bf08deb25..1ffcebd3c 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/BlockBed.java b/src/main/java/net/minecraft/server/BlockBed.java
-index 43b5d00b0..b2525e2a2 100644
+index 794756342..06a35629a 100644
 --- a/src/main/java/net/minecraft/server/BlockBed.java
 +++ b/src/main/java/net/minecraft/server/BlockBed.java
-@@ -171,6 +171,10 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity {
+@@ -196,6 +196,10 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity {
  
      public static Optional<Vec3D> a(EntityTypes<?> entitytypes, IWorldReader iworldreader, BlockPosition blockposition, int i) {
          EnumDirection enumdirection = (EnumDirection) iworldreader.getType(blockposition).get(BlockBed.FACING);
@@ -44,7 +44,7 @@ index 43b5d00b0..b2525e2a2 100644
          int j = blockposition.getX();
          int k = blockposition.getY();
          int l = blockposition.getZ();
-@@ -199,7 +203,103 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity {
+@@ -224,7 +228,103 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity {
  
          return Optional.empty();
      }
@@ -149,5 +149,5 @@ index 43b5d00b0..b2525e2a2 100644
          VoxelShape voxelshape = iworldreader.getType(blockposition).getCollisionShape(iworldreader, blockposition);
  
 -- 
-2.23.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0247-Vex-getSummoner-API.patch b/Spigot-Server-Patches/0243-Vex-getSummoner-API.patch
similarity index 91%
rename from Spigot-Server-Patches/0247-Vex-getSummoner-API.patch
rename to Spigot-Server-Patches/0243-Vex-getSummoner-API.patch
index 4369f6043..9743cfda3 100644
--- a/Spigot-Server-Patches/0247-Vex-getSummoner-API.patch
+++ b/Spigot-Server-Patches/0243-Vex-getSummoner-API.patch
@@ -1,4 +1,4 @@
-From 39ae0187fdc652e7896d692d5da0266671873ed5 Mon Sep 17 00:00:00 2001
+From 5f41049c8d0a8e4958ca592e35e10d9b63549039 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Wed, 4 Jul 2018 15:30:22 -0400
 Subject: [PATCH] Vex#getSummoner API
@@ -6,7 +6,7 @@ Subject: [PATCH] Vex#getSummoner API
 Get's the NPC that summoned this Vex
 
 diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
-index 7c164531b3..25aea53150 100644
+index cd9fb3aab..a46730460 100644
 --- a/src/main/java/net/minecraft/server/EntityVex.java
 +++ b/src/main/java/net/minecraft/server/EntityVex.java
 @@ -92,6 +92,7 @@ public class EntityVex extends EntityMonster {
@@ -18,7 +18,7 @@ index 7c164531b3..25aea53150 100644
          return this.c;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
-index 737a37b6fe..169c951ec3 100644
+index 737a37b6f..169c951ec 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
 @@ -1,8 +1,10 @@
@@ -47,5 +47,5 @@ index 737a37b6fe..169c951ec3 100644
      public String toString() {
          return "CraftVex";
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0248-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/Spigot-Server-Patches/0244-Refresh-player-inventory-when-cancelling-PlayerInter.patch
similarity index 87%
rename from Spigot-Server-Patches/0248-Refresh-player-inventory-when-cancelling-PlayerInter.patch
rename to Spigot-Server-Patches/0244-Refresh-player-inventory-when-cancelling-PlayerInter.patch
index 72ee8c5dd..298c51518 100644
--- a/Spigot-Server-Patches/0248-Refresh-player-inventory-when-cancelling-PlayerInter.patch
+++ b/Spigot-Server-Patches/0244-Refresh-player-inventory-when-cancelling-PlayerInter.patch
@@ -1,4 +1,4 @@
-From 444c84a9b153f9b5cfc94e21175a881a9c84d6c4 Mon Sep 17 00:00:00 2001
+From 92d4c5567ba80219f1bfd171f500d5a10dd54ac0 Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Fri, 13 Jul 2018 14:54:43 +0200
 Subject: [PATCH] Refresh player inventory when cancelling
@@ -16,10 +16,10 @@ Refresh the player inventory when PlayerInteractEntityEvent is
 cancelled to avoid this problem.
 
 diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index b9793d4cc6..f2de19b9b4 100644
+index 4f04410f9..3a7e197e3 100644
 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
 +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
-@@ -1939,6 +1939,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1949,6 +1949,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
                      }
  
                      if (event.isCancelled()) {
@@ -28,5 +28,5 @@ index b9793d4cc6..f2de19b9b4 100644
                      }
                      // CraftBukkit end
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0249-Don-t-change-the-Entity-Random-seed-for-squids.patch b/Spigot-Server-Patches/0245-Don-t-change-the-Entity-Random-seed-for-squids.patch
similarity index 80%
rename from Spigot-Server-Patches/0249-Don-t-change-the-Entity-Random-seed-for-squids.patch
rename to Spigot-Server-Patches/0245-Don-t-change-the-Entity-Random-seed-for-squids.patch
index c3b6f1a89..f7f3d33ce 100644
--- a/Spigot-Server-Patches/0249-Don-t-change-the-Entity-Random-seed-for-squids.patch
+++ b/Spigot-Server-Patches/0245-Don-t-change-the-Entity-Random-seed-for-squids.patch
@@ -1,11 +1,11 @@
-From 9886f0270859ce331fa76821ad2d2253dffcc22a Mon Sep 17 00:00:00 2001
+From f8ebae1f5b873604cd8d96076d556f66f14b16e9 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Thu, 19 Jul 2018 01:05:00 -0400
 Subject: [PATCH] Don't change the Entity Random seed for squids
 
 
 diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
-index 735d1879a8..a4d2ff64d8 100644
+index 1c1ff2069..92efe4e7f 100644
 --- a/src/main/java/net/minecraft/server/EntitySquid.java
 +++ b/src/main/java/net/minecraft/server/EntitySquid.java
 @@ -21,7 +21,7 @@ public class EntitySquid extends EntityWaterAnimal {
@@ -14,9 +14,9 @@ index 735d1879a8..a4d2ff64d8 100644
          super(entitytypes, world);
 -        this.random.setSeed((long) this.getId());
 +        //this.random.setSeed((long) this.getId()); // Paper
-         this.bF = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
+         this.bC = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
      }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0250-Re-add-vanilla-entity-warnings-for-duplicates.patch b/Spigot-Server-Patches/0246-Re-add-vanilla-entity-warnings-for-duplicates.patch
similarity index 86%
rename from Spigot-Server-Patches/0250-Re-add-vanilla-entity-warnings-for-duplicates.patch
rename to Spigot-Server-Patches/0246-Re-add-vanilla-entity-warnings-for-duplicates.patch
index 650630a11..d5070e211 100644
--- a/Spigot-Server-Patches/0250-Re-add-vanilla-entity-warnings-for-duplicates.patch
+++ b/Spigot-Server-Patches/0246-Re-add-vanilla-entity-warnings-for-duplicates.patch
@@ -1,4 +1,4 @@
-From 6b56755e6bff6f4dab389d70ca877f4b0d2ee376 Mon Sep 17 00:00:00 2001
+From 72a0585532fc4fe8636e7544559888371ea398eb Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Thu, 19 Jul 2018 01:08:05 -0400
 Subject: [PATCH] Re-add vanilla entity warnings for duplicates
@@ -8,10 +8,10 @@ These are a critical sign that somethin went wrong, and you've lost some data...
 We should kind of know about these things you know.
 
 diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index 6ca7c88583..3671b44feb 100644
+index 004a06b4b..5e6601d0f 100644
 --- a/src/main/java/net/minecraft/server/WorldServer.java
 +++ b/src/main/java/net/minecraft/server/WorldServer.java
-@@ -1013,7 +1013,8 @@ public class WorldServer extends World {
+@@ -1021,7 +1021,8 @@ public class WorldServer extends World {
          if (entity1 == null) {
              return false;
          } else {
@@ -22,5 +22,5 @@ index 6ca7c88583..3671b44feb 100644
          }
      }
 -- 
-2.22.1
+2.17.1
 
diff --git a/Spigot-Server-Patches/0247-Avoid-item-merge-if-stack-size-above-max-stack-size.patch b/Spigot-Server-Patches/0247-Avoid-item-merge-if-stack-size-above-max-stack-size.patch
new file mode 100644
index 000000000..531da210e
--- /dev/null
+++ b/Spigot-Server-Patches/0247-Avoid-item-merge-if-stack-size-above-max-stack-size.patch
@@ -0,0 +1,24 @@
+From e21c5266e93f3fb2d2400ea7fb2be5729f267837 Mon Sep 17 00:00:00 2001
+From: Hugo Manrique <hugmanrique@gmail.com>
+Date: Mon, 16 Jul 2018 12:42:20 +0200
+Subject: [PATCH] Avoid item merge if stack size above max stack size
+
+
+diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
+index fcc1c0993..5f46c7f86 100644
+--- a/src/main/java/net/minecraft/server/EntityItem.java
++++ b/src/main/java/net/minecraft/server/EntityItem.java
+@@ -170,6 +170,10 @@ public class EntityItem extends Entity {
+ 
+     private void mergeNearby() {
+         if (this.w()) {
++            // Paper start - avoid item merge if stack size above max stack size
++            ItemStack stack = getItemStack();
++            if (stack.getCount() >= stack.getMaxStackSize()) return;
++            // Paper end
+             // Spigot start
+             double radius = world.spigotConfig.itemMerge;
+             List<EntityItem> list = this.world.a(EntityItem.class, this.getBoundingBox().grow(radius, radius, radius), (entityitem) -> {
+-- 
+2.17.1
+
diff --git a/Spigot-Server-Patches/0252-Use-asynchronous-Log4j-2-loggers.patch b/Spigot-Server-Patches/0248-Use-asynchronous-Log4j-2-loggers.patch
similarity index 94%
rename from Spigot-Server-Patches/0252-Use-asynchronous-Log4j-2-loggers.patch
rename to Spigot-Server-Patches/0248-Use-asynchronous-Log4j-2-loggers.patch
index fad1b8675..840e2eb9a 100644
--- a/Spigot-Server-Patches/0252-Use-asynchronous-Log4j-2-loggers.patch
+++ b/Spigot-Server-Patches/0248-Use-asynchronous-Log4j-2-loggers.patch
@@ -1,11 +1,11 @@
-From d337a8321181811a8901b9a4c63c78474acb6db6 Mon Sep 17 00:00:00 2001
+From c99b1ee74fe52fec1b2c67725e2168e25fcba5b2 Mon Sep 17 00:00:00 2001
 From: Minecrell <minecrell@minecrell.net>
 Date: Tue, 17 Jul 2018 16:42:17 +0200
 Subject: [PATCH] Use asynchronous Log4j 2 loggers
 
 
 diff --git a/pom.xml b/pom.xml
-index 2990c04b8..beda5dc8a 100644
+index dbc425524..d10c219e3 100644
 --- a/pom.xml
 +++ b/pom.xml
 @@ -74,6 +74,13 @@
@@ -54,5 +54,5 @@ index 0694b2146..30efeb5fa 100644
 +log4j2.AsyncQueueFullPolicy="com.destroystokyo.paper.log.LogFullPolicy"
  log4j.skipJansi=true
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0253-add-more-information-to-Entity.toString.patch b/Spigot-Server-Patches/0249-add-more-information-to-Entity.toString.patch
similarity index 83%
rename from Spigot-Server-Patches/0253-add-more-information-to-Entity.toString.patch
rename to Spigot-Server-Patches/0249-add-more-information-to-Entity.toString.patch
index 9fe7836cc..7a4eeef40 100644
--- a/Spigot-Server-Patches/0253-add-more-information-to-Entity.toString.patch
+++ b/Spigot-Server-Patches/0249-add-more-information-to-Entity.toString.patch
@@ -1,4 +1,4 @@
-From e42167f12d63b5a2c17300b544da4739b22fb114 Mon Sep 17 00:00:00 2001
+From a6c05645c938d3b1d5ea09f5f0a71f82b7f1df81 Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Thu, 19 Jul 2018 01:13:28 -0400
 Subject: [PATCH] add more information to Entity.toString()
@@ -6,18 +6,18 @@ Subject: [PATCH] add more information to Entity.toString()
 UUID, ticks lived, valid, dead
 
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index be4ebcadb7..6ada923797 100644
+index 7c4ab7fe7..5823b3740 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
-@@ -2492,7 +2492,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+@@ -2499,7 +2499,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
      }
  
      public String toString() {
--        return String.format(Locale.ROOT, "%s['%s'/%d, l='%s', x=%.2f, y=%.2f, z=%.2f]", this.getClass().getSimpleName(), this.getDisplayName().getText(), this.id, this.world == null ? "~NULL~" : this.world.getWorldData().getName(), this.locX, this.locY, this.locZ);
+-        return String.format(Locale.ROOT, "%s['%s'/%d, l='%s', x=%.2f, y=%.2f, z=%.2f]", this.getClass().getSimpleName(), this.getDisplayName().getText(), this.id, this.world == null ? "~NULL~" : this.world.getWorldData().getName(), this.locX(), this.locY(), this.locZ());
 +        return String.format(Locale.ROOT, "%s[\'%s\'/%d, uuid=\'%s\', l=\'%s\', x=%.2f, y=%.2f, z=%.2f, cx=%d, cz=%d, tl=%d, v=%b, d=%b]", new Object[] { this.getClass().getSimpleName(), this.getDisplayName().getText(), Integer.valueOf(this.id), this.uniqueID.toString(), this.world == null ? "~NULL~" : this.world.getWorldData().getName(), Double.valueOf(this.locX), Double.valueOf(this.locY), Double.valueOf(this.locZ), getChunkX(), getChunkZ(), this.ticksLived, this.valid, this.dead}); // Paper - add more information
      }
  
      public boolean isInvulnerable(DamageSource damagesource) {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0254-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/Spigot-Server-Patches/0250-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
similarity index 89%
rename from Spigot-Server-Patches/0254-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
rename to Spigot-Server-Patches/0250-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
index c84a8169d..188c29d29 100644
--- a/Spigot-Server-Patches/0254-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
+++ b/Spigot-Server-Patches/0250-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
@@ -1,4 +1,4 @@
-From 5cb60c4b7e17203bd071de97545634cdd037c2d7 Mon Sep 17 00:00:00 2001
+From ce5103ceb32a7b68f5c419fa1de27f12b29c2b5a Mon Sep 17 00:00:00 2001
 From: Aikar <aikar@aikar.co>
 Date: Sat, 21 Jul 2018 08:25:40 -0400
 Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues
@@ -6,10 +6,10 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues
 Add -Ddebug.entities=true to your JVM flags to gain more information
 
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 6ada92379..924187413 100644
+index 5823b3740..3458333c9 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
-@@ -75,6 +75,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
+@@ -76,6 +76,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
      public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper
      private CraftEntity bukkitEntity;
  
@@ -19,10 +19,10 @@ index 6ada92379..924187413 100644
          if (bukkitEntity == null) {
              bukkitEntity = CraftEntity.getEntity(world.getServer(), this);
 diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
-index 649600b3e..db938da25 100644
+index df24bac3b..a2b09597f 100644
 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
 +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
-@@ -1021,6 +1021,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
+@@ -1022,6 +1022,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
                  } else {
                      PlayerChunkMap.EntityTracker playerchunkmap_entitytracker = new PlayerChunkMap.EntityTracker(entity, i, j, entitytypes.isDeltaTracking());
  
@@ -30,7 +30,7 @@ index 649600b3e..db938da25 100644
                      this.trackedEntities.put(entity.getId(), playerchunkmap_entitytracker);
                      playerchunkmap_entitytracker.track(this.world.getPlayers());
                      if (entity instanceof EntityPlayer) {
-@@ -1063,7 +1064,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
+@@ -1064,7 +1065,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
          if (playerchunkmap_entitytracker1 != null) {
              playerchunkmap_entitytracker1.a();
          }
@@ -40,10 +40,10 @@ index 649600b3e..db938da25 100644
  
      protected void g() {
 diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index 6226a8c1a..95c809ba9 100644
+index 39b136935..7fcc8c52d 100644
 --- a/src/main/java/net/minecraft/server/World.java
 +++ b/src/main/java/net/minecraft/server/World.java
-@@ -68,6 +68,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
+@@ -67,6 +67,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
      public boolean pvpMode;
      public boolean keepSpawnInMemory = true;
      public org.bukkit.generator.ChunkGenerator generator;
@@ -52,10 +52,10 @@ index 6226a8c1a..95c809ba9 100644
      public boolean captureBlockStates = false;
      public boolean captureTreeGeneration = false;
 diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index 3671b44fe..a5ba64a4c 100644
+index 5e6601d0f..110d6e571 100644
 --- a/src/main/java/net/minecraft/server/WorldServer.java
 +++ b/src/main/java/net/minecraft/server/WorldServer.java
-@@ -73,6 +73,9 @@ public class WorldServer extends World {
+@@ -75,6 +75,9 @@ public class WorldServer extends World {
      // CraftBukkit start
      private int tickPosition;
      boolean hasPhysicsEvent = true; // Paper
@@ -65,7 +65,7 @@ index 3671b44fe..a5ba64a4c 100644
  
      // Add env and gen to constructor
      public WorldServer(MinecraftServer minecraftserver, Executor executor, WorldNBTStorage worldnbtstorage, WorldData worlddata, DimensionManager dimensionmanager, GameProfilerFiller gameprofilerfiller, WorldLoadListener worldloadlistener, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) {
-@@ -975,8 +978,28 @@ public class WorldServer extends World {
+@@ -983,8 +986,28 @@ public class WorldServer extends World {
      // CraftBukkit start
      private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) {
          org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot
@@ -95,7 +95,7 @@ index 3671b44fe..a5ba64a4c 100644
              // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getName(entity.getEntityType())); // CraftBukkit
              return false;
          } else if (this.isUUIDTaken(entity)) {
-@@ -1148,7 +1171,24 @@ public class WorldServer extends World {
+@@ -1156,7 +1179,24 @@ public class WorldServer extends World {
                  }
              }
  
@@ -122,5 +122,5 @@ index 3671b44fe..a5ba64a4c 100644
              // CraftBukkit start - SPIGOT-5278
              if (entity instanceof EntityDrowned) {
 -- 
-2.24.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0251-Avoid-item-merge-if-stack-size-above-max-stack-size.patch b/Spigot-Server-Patches/0251-Avoid-item-merge-if-stack-size-above-max-stack-size.patch
deleted file mode 100644
index 06a5fa12b..000000000
--- a/Spigot-Server-Patches/0251-Avoid-item-merge-if-stack-size-above-max-stack-size.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 444aae394eee9b07bdf916b350d7508b5f995634 Mon Sep 17 00:00:00 2001
-From: Hugo Manrique <hugmanrique@gmail.com>
-Date: Mon, 16 Jul 2018 12:42:20 +0200
-Subject: [PATCH] Avoid item merge if stack size above max stack size
-
-
-diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
-index f1f86ef8b5..6e026d34f0 100644
---- a/src/main/java/net/minecraft/server/EntityItem.java
-+++ b/src/main/java/net/minecraft/server/EntityItem.java
-@@ -168,6 +168,10 @@ public class EntityItem extends Entity {
-     }
- 
-     private void mergeNearby() {
-+        // Paper start - avoid item merge if stack size above max stack size
-+        ItemStack stack = getItemStack();
-+        if (stack.getCount() >= stack.getMaxStackSize()) return;
-+        // Paper end
-         // Spigot start
-         double radius = world.spigotConfig.itemMerge;
-         List<EntityItem> list = this.world.a(EntityItem.class, this.getBoundingBox().grow(radius, radius, radius), (entityitem) -> {
--- 
-2.22.0
-
diff --git a/Spigot-Server-Patches/0255-EnderDragon-Events.patch b/Spigot-Server-Patches/0251-EnderDragon-Events.patch
similarity index 88%
rename from Spigot-Server-Patches/0255-EnderDragon-Events.patch
rename to Spigot-Server-Patches/0251-EnderDragon-Events.patch
index 7afb8600b..add365b15 100644
--- a/Spigot-Server-Patches/0255-EnderDragon-Events.patch
+++ b/Spigot-Server-Patches/0251-EnderDragon-Events.patch
@@ -1,14 +1,14 @@
-From bd3ed37e90eaf8ea43b8517228e594167904744a Mon Sep 17 00:00:00 2001
+From 81f46b2f9721098c4ef7cad5ee8e2121e0f2d64d Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Sat, 21 Jul 2018 01:51:27 -0500
 Subject: [PATCH] EnderDragon Events
 
 
 diff --git a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
-index 98e15834ab..577d1d2070 100644
+index 40a8beff5..18fdcd453 100644
 --- a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
 +++ b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
-@@ -65,7 +65,11 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
+@@ -71,7 +71,11 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
              this.d.setDuration(200);
              this.d.setParticle(Particles.DRAGON_BREATH);
              this.d.addEffect(new MobEffect(MobEffects.HARM));
@@ -20,7 +20,7 @@ index 98e15834ab..577d1d2070 100644
          }
  
      }
-@@ -76,6 +80,7 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
+@@ -82,6 +86,7 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
          ++this.c;
      }
  
@@ -29,7 +29,7 @@ index 98e15834ab..577d1d2070 100644
      public void e() {
          if (this.d != null) {
 diff --git a/src/main/java/net/minecraft/server/DragonControllerStrafe.java b/src/main/java/net/minecraft/server/DragonControllerStrafe.java
-index 14e20f4961..0b0815e113 100644
+index a2c36548c..a9d20ee3b 100644
 --- a/src/main/java/net/minecraft/server/DragonControllerStrafe.java
 +++ b/src/main/java/net/minecraft/server/DragonControllerStrafe.java
 @@ -68,7 +68,9 @@ public class DragonControllerStrafe extends AbstractDragonController {
@@ -43,20 +43,20 @@ index 14e20f4961..0b0815e113 100644
                          if (this.d != null) {
                              while (!this.d.b()) {
 diff --git a/src/main/java/net/minecraft/server/EntityDragonFireball.java b/src/main/java/net/minecraft/server/EntityDragonFireball.java
-index 9dfa15fe2a..547698a2d4 100644
+index bc08b53fc..db43ac1cc 100644
 --- a/src/main/java/net/minecraft/server/EntityDragonFireball.java
 +++ b/src/main/java/net/minecraft/server/EntityDragonFireball.java
-@@ -40,8 +40,10 @@ public class EntityDragonFireball extends EntityFireball {
+@@ -41,8 +41,10 @@ public class EntityDragonFireball extends EntityFireball {
                      }
                  }
  
 +                if (new com.destroystokyo.paper.event.entity.EnderDragonFireballHitEvent((org.bukkit.entity.DragonFireball) this.getBukkitEntity(), list.stream().map(EntityLiving::getBukkitLivingEntity).collect(java.util.stream.Collectors.toList()), (org.bukkit.entity.AreaEffectCloud) entityareaeffectcloud.getBukkitEntity()).callEvent()) { // Paper
-                 this.world.triggerEffect(2006, new BlockPosition(this.locX, this.locY, this.locZ), 0);
+                 this.world.triggerEffect(2006, new BlockPosition(this), 0);
                  this.world.addEntity(entityareaeffectcloud);
 +                } else entityareaeffectcloud.die(); // Paper
                  this.die();
              }
  
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0256-PlayerElytraBoostEvent.patch b/Spigot-Server-Patches/0252-PlayerElytraBoostEvent.patch
similarity index 86%
rename from Spigot-Server-Patches/0256-PlayerElytraBoostEvent.patch
rename to Spigot-Server-Patches/0252-PlayerElytraBoostEvent.patch
index 6a5a335f0..efc091daf 100644
--- a/Spigot-Server-Patches/0256-PlayerElytraBoostEvent.patch
+++ b/Spigot-Server-Patches/0252-PlayerElytraBoostEvent.patch
@@ -1,14 +1,14 @@
-From 37e3692d88aa1ac9ebef50ac2cdf9f42a4ed9871 Mon Sep 17 00:00:00 2001
+From dc98d0cf26aee885975465eb616fc8324dbd23f1 Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Sat, 21 Jul 2018 01:59:59 -0500
 Subject: [PATCH] PlayerElytraBoostEvent
 
 
 diff --git a/src/main/java/net/minecraft/server/ItemFireworks.java b/src/main/java/net/minecraft/server/ItemFireworks.java
-index aea46ffae5..9e86ef4ce2 100644
+index 76b253a50..a43e52889 100644
 --- a/src/main/java/net/minecraft/server/ItemFireworks.java
 +++ b/src/main/java/net/minecraft/server/ItemFireworks.java
-@@ -35,11 +35,16 @@ public class ItemFireworks extends Item {
+@@ -36,11 +36,16 @@ public class ItemFireworks extends Item {
                  // Paper start
                  final EntityFireworks entityfireworks = new EntityFireworks(world, itemstack, entityhuman);
                  entityfireworks.spawningEntity = entityhuman.getUniqueID();
@@ -28,7 +28,7 @@ index aea46ffae5..9e86ef4ce2 100644
 +                // Paper end
              }
  
-             return new InteractionResultWrapper<>(EnumInteractionResult.SUCCESS, entityhuman.b(enumhand));
+             return InteractionResultWrapper.a(entityhuman.b(enumhand));
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0258-Speedup-BlockPos-by-fixing-inlining.patch b/Spigot-Server-Patches/0253-Speedup-BlockPos-by-fixing-inlining.patch
similarity index 84%
rename from Spigot-Server-Patches/0258-Speedup-BlockPos-by-fixing-inlining.patch
rename to Spigot-Server-Patches/0253-Speedup-BlockPos-by-fixing-inlining.patch
index cfa00561a..580a1fd04 100644
--- a/Spigot-Server-Patches/0258-Speedup-BlockPos-by-fixing-inlining.patch
+++ b/Spigot-Server-Patches/0253-Speedup-BlockPos-by-fixing-inlining.patch
@@ -1,4 +1,4 @@
-From 2503875393e8d1e8805b2dc620f2238c74d97dc9 Mon Sep 17 00:00:00 2001
+From 4c3456696264a80f869e8731e9b553a2fad3589c Mon Sep 17 00:00:00 2001
 From: Techcable <Techcable@outlook.com>
 Date: Wed, 30 Nov 2016 20:56:58 -0600
 Subject: [PATCH] Speedup BlockPos by fixing inlining
@@ -21,15 +21,18 @@ This is based upon conclusions drawn from inspecting the assenmbly generated byt
 They had 'callq' (invoke) instead of 'mov' (get from memory) instructions.
 
 diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
-index 7cb46d7a9c..e96428bb2b 100644
+index 71089442c..c439a8d01 100644
 --- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
 +++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
-@@ -7,22 +7,22 @@ import javax.annotation.concurrent.Immutable;
+@@ -7,25 +7,22 @@ import javax.annotation.concurrent.Immutable;
  public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
  
      public static final BaseBlockPosition ZERO = new BaseBlockPosition(0, 0, 0);
+-    @Deprecated
 -    private final int a;
+-    @Deprecated
 -    private final int b;
+-    @Deprecated
 -    private final int c;
      // Paper start
 +    protected int x;
@@ -55,7 +58,7 @@ index 7cb46d7a9c..e96428bb2b 100644
      }
  
      public BaseBlockPosition(double d0, double d1, double d2) {
-@@ -49,24 +49,26 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
+@@ -52,16 +49,17 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
          return this.getY() == baseblockposition.getY() ? (this.getZ() == baseblockposition.getZ() ? this.getX() - baseblockposition.getX() : this.getZ() - baseblockposition.getZ()) : this.getY() - baseblockposition.getY();
      }
  
@@ -75,6 +78,12 @@ index 7cb46d7a9c..e96428bb2b 100644
 -        return this.c;
 +        return this.z;
      }
+ 
+     public BaseBlockPosition down() {
+@@ -75,13 +73,14 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
+     public BaseBlockPosition shift(EnumDirection enumdirection, int i) {
+         return i == 0 ? this : new BaseBlockPosition(this.getX() + enumdirection.getAdjacentX() * i, this.getY() + enumdirection.getAdjacentY() * i, this.getZ() + enumdirection.getAdjacentZ() * i);
+     }
 +    // Paper end
  
      public BaseBlockPosition d(BaseBlockPosition baseblockposition) {
@@ -82,18 +91,18 @@ index 7cb46d7a9c..e96428bb2b 100644
      }
  
      public boolean a(BaseBlockPosition baseblockposition, double d0) {
--        return this.distanceSquared((double) baseblockposition.a, (double) baseblockposition.b, (double) baseblockposition.c, false) < d0 * d0;
+-        return this.distanceSquared((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ(), false) < d0 * d0;
 +        return this.distanceSquared((double) baseblockposition.x, (double) baseblockposition.y, (double) baseblockposition.z, false) < d0 * d0; // Paper
      }
  
      public boolean a(IPosition iposition, double d0) {
-@@ -91,9 +93,9 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
+@@ -106,9 +105,9 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
      }
  
      public int n(BaseBlockPosition baseblockposition) {
--        float f = (float) Math.abs(baseblockposition.getX() - this.a);
--        float f1 = (float) Math.abs(baseblockposition.getY() - this.b);
--        float f2 = (float) Math.abs(baseblockposition.getZ() - this.c);
+-        float f = (float) Math.abs(baseblockposition.getX() - this.getX());
+-        float f1 = (float) Math.abs(baseblockposition.getY() - this.getY());
+-        float f2 = (float) Math.abs(baseblockposition.getZ() - this.getZ());
 +        float f = (float) Math.abs(baseblockposition.getX() - this.x); // Paper
 +        float f1 = (float) Math.abs(baseblockposition.getY() - this.y); // Paper
 +        float f2 = (float) Math.abs(baseblockposition.getZ() - this.z); // Paper
@@ -101,10 +110,10 @@ index 7cb46d7a9c..e96428bb2b 100644
          return (int) (f + f1 + f2);
      }
 diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
-index 2eabaaeba2..04f754d2c1 100644
+index 1cdf0346f..5a505b753 100644
 --- a/src/main/java/net/minecraft/server/BlockPosition.java
 +++ b/src/main/java/net/minecraft/server/BlockPosition.java
-@@ -335,11 +335,12 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
+@@ -342,11 +342,13 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
      }
  
      public static class MutableBlockPosition extends BlockPosition {
@@ -114,20 +123,13 @@ index 2eabaaeba2..04f754d2c1 100644
          protected int b;
          protected int c;
          protected int d;
--        // Paper start
-+
-         @Override
-         public boolean isValidLocation() {
-             return b >= -30000000 && d >= -30000000 && b < 30000000 && d < 30000000 && c >= 0 && c < 256;
-@@ -348,6 +349,7 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
-         public boolean isInvalidYLocation() {
-             return c < 0 || c >= 256;
-         }
+-
 +        */
-         // Paper end
- 
++        // Paper end
          public MutableBlockPosition() {
-@@ -359,10 +361,13 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
+             this(0, 0, 0);
+         }
+@@ -356,10 +358,13 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
          }
  
          public MutableBlockPosition(int i, int j, int k) {
@@ -143,7 +145,7 @@ index 2eabaaeba2..04f754d2c1 100644
          }
  
          public MutableBlockPosition(double d0, double d1, double d2) {
-@@ -389,6 +394,9 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
+@@ -390,6 +395,9 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
              return super.a(enumblockrotation).immutableCopy();
          }
  
@@ -153,7 +155,7 @@ index 2eabaaeba2..04f754d2c1 100644
          @Override
          public int getX() {
              return this.b;
-@@ -402,13 +410,16 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
+@@ -403,13 +411,16 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
          @Override
          public int getZ() {
              return this.d;
@@ -174,7 +176,7 @@ index 2eabaaeba2..04f754d2c1 100644
              return this;
          }
  
-@@ -438,23 +449,23 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
+@@ -439,23 +450,23 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
          }
  
          public BlockPosition.MutableBlockPosition c(EnumDirection enumdirection, int i) {
@@ -204,5 +206,5 @@ index 2eabaaeba2..04f754d2c1 100644
  
          @Override
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0259-Optimize-RegistryID.c.patch b/Spigot-Server-Patches/0254-Optimize-RegistryID.c.patch
similarity index 95%
rename from Spigot-Server-Patches/0259-Optimize-RegistryID.c.patch
rename to Spigot-Server-Patches/0254-Optimize-RegistryID.c.patch
index a6bff88e4..63994ada5 100644
--- a/Spigot-Server-Patches/0259-Optimize-RegistryID.c.patch
+++ b/Spigot-Server-Patches/0254-Optimize-RegistryID.c.patch
@@ -1,4 +1,4 @@
-From f071f20c2ecc1c03b6f2a72d6dcf1efafe0bc8ec Mon Sep 17 00:00:00 2001
+From 45f992de41d492cdd3c8f4138d33fd04b5b4dd7c Mon Sep 17 00:00:00 2001
 From: Andrew Steinborn <git@steinborn.me>
 Date: Mon, 23 Jul 2018 13:08:19 -0400
 Subject: [PATCH] Optimize RegistryID.c()
@@ -6,7 +6,7 @@ Subject: [PATCH] Optimize RegistryID.c()
 This is a frequent hotspot for world loading/saving.
 
 diff --git a/src/main/java/net/minecraft/server/RegistryID.java b/src/main/java/net/minecraft/server/RegistryID.java
-index e15d286710..e8a48b9a4c 100644
+index e15d28671..e8a48b9a4 100644
 --- a/src/main/java/net/minecraft/server/RegistryID.java
 +++ b/src/main/java/net/minecraft/server/RegistryID.java
 @@ -14,12 +14,14 @@ public class RegistryID<K> implements Registry<K> {
@@ -64,5 +64,5 @@ index e15d286710..e8a48b9a4c 100644
  
      public int b() {
 -- 
-2.22.0
+2.17.1
 
diff --git a/Spigot-Server-Patches/0123-Don-t-load-Chunks-from-Hoppers-and-other-things.patch b/removed/1.15/0123-Don-t-load-Chunks-from-Hoppers-and-other-things.patch
similarity index 100%
rename from Spigot-Server-Patches/0123-Don-t-load-Chunks-from-Hoppers-and-other-things.patch
rename to removed/1.15/0123-Don-t-load-Chunks-from-Hoppers-and-other-things.patch
diff --git a/Spigot-Server-Patches/0129-Optimize-World.isLoaded-BlockPosition-Z.patch b/removed/1.15/0129-Optimize-World.isLoaded-BlockPosition-Z.patch
similarity index 100%
rename from Spigot-Server-Patches/0129-Optimize-World.isLoaded-BlockPosition-Z.patch
rename to removed/1.15/0129-Optimize-World.isLoaded-BlockPosition-Z.patch
diff --git a/Spigot-Server-Patches/0257-PlayerLaunchProjectileEvent.patch b/removed/1.15/0257-PlayerLaunchProjectileEvent.patch
similarity index 99%
rename from Spigot-Server-Patches/0257-PlayerLaunchProjectileEvent.patch
rename to removed/1.15/0257-PlayerLaunchProjectileEvent.patch
index 36df760c5..31ecaed60 100644
--- a/Spigot-Server-Patches/0257-PlayerLaunchProjectileEvent.patch
+++ b/removed/1.15/0257-PlayerLaunchProjectileEvent.patch
@@ -1,4 +1,4 @@
-From 264d17e1439c26acd197336ce546e691460d1ebd Mon Sep 17 00:00:00 2001
+git From 264d17e1439c26acd197336ce546e691460d1ebd Mon Sep 17 00:00:00 2001
 From: BillyGalbreath <Blake.Galbreath@GMail.com>
 Date: Sat, 21 Jul 2018 03:11:03 -0500
 Subject: [PATCH] PlayerLaunchProjectileEvent