diff --git a/Spigot-API-Patches/Add-command-to-reload-permissions.yml-and-require-co.patch b/Spigot-API-Patches/Add-command-to-reload-permissions.yml-and-require-co.patch
index fc0b3c32aa..cbe7bc206d 100644
--- a/Spigot-API-Patches/Add-command-to-reload-permissions.yml-and-require-co.patch
+++ b/Spigot-API-Patches/Add-command-to-reload-permissions.yml-and-require-co.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to
 
 
 diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index f152a60f..58a183b9 100644
+index f152a60f6..58a183b9d 100644
 --- a/src/main/java/org/bukkit/Bukkit.java
 +++ b/src/main/java/org/bukkit/Bukkit.java
 @@ -0,0 +0,0 @@ public final class Bukkit {
@@ -24,7 +24,7 @@ index f152a60f..58a183b9 100644
  
      @NotNull
 diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 74f9d2bb..ca0b63fa 100644
+index 74f9d2bbc..ca0b63fa0 100644
 --- a/src/main/java/org/bukkit/Server.java
 +++ b/src/main/java/org/bukkit/Server.java
 @@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
@@ -35,7 +35,7 @@ index 74f9d2bb..ca0b63fa 100644
 +    void reloadPermissions(); // Paper
  }
 diff --git a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java
-index 50cc311b..c62da413 100644
+index 50cc311be..c62da4131 100644
 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java
 +++ b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java
 @@ -0,0 +0,0 @@ public class ReloadCommand extends BukkitCommand {
@@ -85,7 +85,7 @@ index 50cc311b..c62da413 100644
      }
  }
 diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
-index 861d808c..1c355a75 100644
+index 715954c75..f70296d76 100644
 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 @@ -0,0 +0,0 @@ public final class SimplePluginManager implements PluginManager {
diff --git a/Spigot-API-Patches/Add-exception-reporting-event.patch b/Spigot-API-Patches/Add-exception-reporting-event.patch
index 3c763a32a8..c5f4c3272f 100644
--- a/Spigot-API-Patches/Add-exception-reporting-event.patch
+++ b/Spigot-API-Patches/Add-exception-reporting-event.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add exception reporting event
 
 diff --git a/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java b/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java
 new file mode 100644
-index 00000000..2f573299
+index 000000000..2f573299a
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java
 @@ -0,0 +0,0 @@
@@ -55,7 +55,7 @@ index 00000000..2f573299
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java b/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java
 new file mode 100644
-index 00000000..6fb39af0
+index 000000000..6fb39af04
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java
 @@ -0,0 +0,0 @@
@@ -125,7 +125,7 @@ index 00000000..6fb39af0
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java b/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java
 new file mode 100644
-index 00000000..410b2413
+index 000000000..410b24139
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java
 @@ -0,0 +0,0 @@
@@ -183,7 +183,7 @@ index 00000000..410b2413
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerException.java b/src/main/java/com/destroystokyo/paper/exception/ServerException.java
 new file mode 100644
-index 00000000..c06ea394
+index 000000000..c06ea3942
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerException.java
 @@ -0,0 +0,0 @@
@@ -212,7 +212,7 @@ index 00000000..c06ea394
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java b/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java
 new file mode 100644
-index 00000000..e762ed0d
+index 000000000..e762ed0db
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java
 @@ -0,0 +0,0 @@
@@ -253,7 +253,7 @@ index 00000000..e762ed0d
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java
 new file mode 100644
-index 00000000..f016ba3b
+index 000000000..f016ba3b1
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java
 @@ -0,0 +0,0 @@
@@ -280,7 +280,7 @@ index 00000000..f016ba3b
 \ No newline at end of file
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java
 new file mode 100644
-index 00000000..6defac28
+index 000000000..6defac287
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java
 @@ -0,0 +0,0 @@
@@ -324,7 +324,7 @@ index 00000000..6defac28
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java
 new file mode 100644
-index 00000000..89e13252
+index 000000000..89e132525
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java
 @@ -0,0 +0,0 @@
@@ -394,7 +394,7 @@ index 00000000..89e13252
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java b/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java
 new file mode 100644
-index 00000000..2d0b2d4a
+index 000000000..2d0b2d4a9
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java
 @@ -0,0 +0,0 @@
@@ -437,7 +437,7 @@ index 00000000..2d0b2d4a
 +}
 diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java b/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java
 new file mode 100644
-index 00000000..5582999f
+index 000000000..5582999fe
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java
 @@ -0,0 +0,0 @@
@@ -464,7 +464,7 @@ index 00000000..5582999f
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
-index f020cb04..adfc7aae 100644
+index f020cb04e..adfc7aae2 100644
 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
 +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
 @@ -0,0 +0,0 @@ import java.util.HashMap;
@@ -506,7 +506,7 @@ index f020cb04..adfc7aae 100644
      }
  
 diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
-index 3c5d8a0e..861d808c 100644
+index b9ce12ff9..715954c75 100644
 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 @@ -0,0 +0,0 @@ import java.util.WeakHashMap;
diff --git a/Spigot-API-Patches/Remove-deadlock-risk-in-firing-async-events.patch b/Spigot-API-Patches/Remove-deadlock-risk-in-firing-async-events.patch
index 1f9d1d6c92..af0bddc97f 100644
--- a/Spigot-API-Patches/Remove-deadlock-risk-in-firing-async-events.patch
+++ b/Spigot-API-Patches/Remove-deadlock-risk-in-firing-async-events.patch
@@ -16,7 +16,7 @@ which results in a hard crash.
 This change removes the synchronize and adds some protection around enable/disable
 
 diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
-index a8dbf282..b4069dbf 100644
+index a8dbf282d..b4069dbf3 100644
 --- a/src/main/java/org/bukkit/entity/Entity.java
 +++ b/src/main/java/org/bukkit/entity/Entity.java
 @@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
@@ -29,7 +29,7 @@ index a8dbf282..b4069dbf 100644
       *
       * @return a new copy of Location containing the position of this entity
 diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
-index 7453230c..634e51d5 100644
+index 93a8cc13b..8d54d5619 100644
 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 @@ -0,0 +0,0 @@ public final class SimplePluginManager implements PluginManager {
@@ -78,28 +78,26 @@ index 7453230c..634e51d5 100644
 -            if (server.isPrimaryThread()) {
 -                throw new IllegalStateException(event.getEventName() + " cannot be triggered asynchronously from primary server thread.");
 -            }
--            fireEvent(event);
 -        } else {
 -            if (!server.isPrimaryThread()) {
 -                throw new IllegalStateException(event.getEventName() + " cannot be triggered asynchronously from another thread.");
 -            }
--            synchronized (this) {
--                fireEvent(event);
--            }
 +        // Paper - replace callEvent by merging to below method
 +        if (event.isAsynchronous() && server.isPrimaryThread()) {
 +            throw new IllegalStateException(event.getEventName() + " may only be triggered asynchronously.");
 +        } else if (!event.isAsynchronous() && !server.isPrimaryThread()) {
 +            throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
          }
--    }
  
+-        fireEvent(event);
+-    }
+-
 -    private void fireEvent(@NotNull Event event) {
          HandlerList handlers = event.getHandlers();
          RegisteredListener[] listeners = handlers.getRegisteredListeners();
  
 diff --git a/src/test/java/org/bukkit/plugin/PluginManagerTest.java b/src/test/java/org/bukkit/plugin/PluginManagerTest.java
-index f188cd4f..1941c9f4 100644
+index f188cd4f3..1941c9f49 100644
 --- a/src/test/java/org/bukkit/plugin/PluginManagerTest.java
 +++ b/src/test/java/org/bukkit/plugin/PluginManagerTest.java
 @@ -0,0 +0,0 @@ public class PluginManagerTest {
diff --git a/Spigot-API-Patches/Timings-v2.patch b/Spigot-API-Patches/Timings-v2.patch
index 968bfba247..7f36178080 100644
--- a/Spigot-API-Patches/Timings-v2.patch
+++ b/Spigot-API-Patches/Timings-v2.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Timings v2
 
 diff --git a/src/main/java/co/aikar/timings/FullServerTickHandler.java b/src/main/java/co/aikar/timings/FullServerTickHandler.java
 new file mode 100644
-index 00000000..64531fcc
+index 000000000..64531fcce
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/FullServerTickHandler.java
 @@ -0,0 +0,0 @@
@@ -96,7 +96,7 @@ index 00000000..64531fcc
 +}
 diff --git a/src/main/java/co/aikar/timings/NullTimingHandler.java b/src/main/java/co/aikar/timings/NullTimingHandler.java
 new file mode 100644
-index 00000000..9b45ce88
+index 000000000..9b45ce887
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/NullTimingHandler.java
 @@ -0,0 +0,0 @@
@@ -170,7 +170,7 @@ index 00000000..9b45ce88
 +}
 diff --git a/src/main/java/co/aikar/timings/TimedEventExecutor.java b/src/main/java/co/aikar/timings/TimedEventExecutor.java
 new file mode 100644
-index 00000000..933ecf9b
+index 000000000..933ecf9bd
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimedEventExecutor.java
 @@ -0,0 +0,0 @@
@@ -259,7 +259,7 @@ index 00000000..933ecf9b
 +}
 diff --git a/src/main/java/co/aikar/timings/Timing.java b/src/main/java/co/aikar/timings/Timing.java
 new file mode 100644
-index 00000000..a21e5ead
+index 000000000..a21e5ead5
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/Timing.java
 @@ -0,0 +0,0 @@
@@ -348,7 +348,7 @@ index 00000000..a21e5ead
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingData.java b/src/main/java/co/aikar/timings/TimingData.java
 new file mode 100644
-index 00000000..a5d13a1e
+index 000000000..a5d13a1e4
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingData.java
 @@ -0,0 +0,0 @@
@@ -476,7 +476,7 @@ index 00000000..a5d13a1e
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingHandler.java b/src/main/java/co/aikar/timings/TimingHandler.java
 new file mode 100644
-index 00000000..cc0390c0
+index 000000000..cc0390c06
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingHandler.java
 @@ -0,0 +0,0 @@
@@ -709,7 +709,7 @@ index 00000000..cc0390c0
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingHistory.java b/src/main/java/co/aikar/timings/TimingHistory.java
 new file mode 100644
-index 00000000..ddaed812
+index 000000000..ddaed8127
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingHistory.java
 @@ -0,0 +0,0 @@
@@ -1069,7 +1069,7 @@ index 00000000..ddaed812
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingHistoryEntry.java b/src/main/java/co/aikar/timings/TimingHistoryEntry.java
 new file mode 100644
-index 00000000..86d5ac6b
+index 000000000..86d5ac6bd
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingHistoryEntry.java
 @@ -0,0 +0,0 @@
@@ -1133,7 +1133,7 @@ index 00000000..86d5ac6b
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingIdentifier.java b/src/main/java/co/aikar/timings/TimingIdentifier.java
 new file mode 100644
-index 00000000..df142a89
+index 000000000..df142a89b
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingIdentifier.java
 @@ -0,0 +0,0 @@
@@ -1255,7 +1255,7 @@ index 00000000..df142a89
 +}
 diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java
 new file mode 100644
-index 00000000..0b34e0d0
+index 000000000..0b34e0d01
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/Timings.java
 @@ -0,0 +0,0 @@
@@ -1554,7 +1554,7 @@ index 00000000..0b34e0d0
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java
 new file mode 100644
-index 00000000..c0d8f201
+index 000000000..c0d8f2016
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingsCommand.java
 @@ -0,0 +0,0 @@
@@ -1682,7 +1682,7 @@ index 00000000..c0d8f201
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
 new file mode 100644
-index 00000000..23eb8c65
+index 000000000..23eb8c65c
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingsExport.java
 @@ -0,0 +0,0 @@
@@ -2043,7 +2043,7 @@ index 00000000..23eb8c65
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingsManager.java b/src/main/java/co/aikar/timings/TimingsManager.java
 new file mode 100644
-index 00000000..ef824d70
+index 000000000..ef824d701
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingsManager.java
 @@ -0,0 +0,0 @@
@@ -2237,7 +2237,7 @@ index 00000000..ef824d70
 +}
 diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java
 new file mode 100644
-index 00000000..bf3e059f
+index 000000000..bf3e059fe
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/TimingsReportListener.java
 @@ -0,0 +0,0 @@
@@ -2318,7 +2318,7 @@ index 00000000..bf3e059f
 +}
 diff --git a/src/main/java/co/aikar/timings/UnsafeTimingHandler.java b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java
 new file mode 100644
-index 00000000..632c4961
+index 000000000..632c49615
 --- /dev/null
 +++ b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java
 @@ -0,0 +0,0 @@
@@ -2377,7 +2377,7 @@ index 00000000..632c4961
 +}
 diff --git a/src/main/java/co/aikar/util/Counter.java b/src/main/java/co/aikar/util/Counter.java
 new file mode 100644
-index 00000000..80155072
+index 000000000..80155072d
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/Counter.java
 @@ -0,0 +0,0 @@
@@ -2421,7 +2421,7 @@ index 00000000..80155072
 +}
 diff --git a/src/main/java/co/aikar/util/JSONUtil.java b/src/main/java/co/aikar/util/JSONUtil.java
 new file mode 100644
-index 00000000..190bf059
+index 000000000..190bf0598
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/JSONUtil.java
 @@ -0,0 +0,0 @@
@@ -2567,7 +2567,7 @@ index 00000000..190bf059
 +}
 diff --git a/src/main/java/co/aikar/util/LoadingIntMap.java b/src/main/java/co/aikar/util/LoadingIntMap.java
 new file mode 100644
-index 00000000..63a899c7
+index 000000000..63a899c7d
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/LoadingIntMap.java
 @@ -0,0 +0,0 @@
@@ -2649,7 +2649,7 @@ index 00000000..63a899c7
 +}
 diff --git a/src/main/java/co/aikar/util/LoadingMap.java b/src/main/java/co/aikar/util/LoadingMap.java
 new file mode 100644
-index 00000000..aedbb033
+index 000000000..aedbb0332
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/LoadingMap.java
 @@ -0,0 +0,0 @@
@@ -3023,7 +3023,7 @@ index 00000000..aedbb033
 +}
 diff --git a/src/main/java/co/aikar/util/MRUMapCache.java b/src/main/java/co/aikar/util/MRUMapCache.java
 new file mode 100644
-index 00000000..5989ee21
+index 000000000..5989ee212
 --- /dev/null
 +++ b/src/main/java/co/aikar/util/MRUMapCache.java
 @@ -0,0 +0,0 @@
@@ -3139,7 +3139,7 @@ index 00000000..5989ee21
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index bbc68de0..a85b8b86 100644
+index bbc68de0a..a85b8b860 100644
 --- a/src/main/java/org/bukkit/Bukkit.java
 +++ b/src/main/java/org/bukkit/Bukkit.java
 @@ -0,0 +0,0 @@ public final class Bukkit {
@@ -3151,7 +3151,7 @@ index bbc68de0..a85b8b86 100644
  
      /**
 diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 042db4f5..f4f0f3da 100644
+index 042db4f53..f4f0f3da2 100644
 --- a/src/main/java/org/bukkit/Server.java
 +++ b/src/main/java/org/bukkit/Server.java
 @@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
@@ -3182,7 +3182,7 @@ index 042db4f5..f4f0f3da 100644
           * Sends the component to the player
           *
 diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
-index 247d194f..72c5501e 100644
+index 247d194f8..72c5501e8 100644
 --- a/src/main/java/org/bukkit/UnsafeValues.java
 +++ b/src/main/java/org/bukkit/UnsafeValues.java
 @@ -0,0 +0,0 @@ public interface UnsafeValues {
@@ -3200,7 +3200,7 @@ index 247d194f..72c5501e 100644
  }
 diff --git a/src/main/java/org/bukkit/command/BufferedCommandSender.java b/src/main/java/org/bukkit/command/BufferedCommandSender.java
 new file mode 100644
-index 00000000..f9a00aec
+index 000000000..f9a00aecc
 --- /dev/null
 +++ b/src/main/java/org/bukkit/command/BufferedCommandSender.java
 @@ -0,0 +0,0 @@
@@ -3226,7 +3226,7 @@ index 00000000..f9a00aec
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
-index 4bfc2146..03bdc162 100644
+index 4bfc21468..03bdc1622 100644
 --- a/src/main/java/org/bukkit/command/Command.java
 +++ b/src/main/java/org/bukkit/command/Command.java
 @@ -0,0 +0,0 @@ public abstract class Command {
@@ -3256,7 +3256,7 @@ index 4bfc2146..03bdc162 100644
              return true;
          }
 diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
-index d6c8938b..a6ad94ef 100644
+index d6c8938b1..a6ad94ef9 100644
 --- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java
 +++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
 @@ -0,0 +0,0 @@ public class FormattedCommandAlias extends Command {
@@ -3280,7 +3280,7 @@ index d6c8938b..a6ad94ef 100644
      }
 diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java
 new file mode 100644
-index 00000000..ca1893e9
+index 000000000..ca1893e9f
 --- /dev/null
 +++ b/src/main/java/org/bukkit/command/MessageCommandSender.java
 @@ -0,0 +0,0 @@
@@ -3399,7 +3399,7 @@ index 00000000..ca1893e9
 +
 +}
 diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
-index 81e4fa57..f020cb04 100644
+index 81e4fa573..f020cb04e 100644
 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
 +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
 @@ -0,0 +0,0 @@ import org.bukkit.command.defaults.BukkitCommand;
@@ -3456,7 +3456,7 @@ index 81e4fa57..f020cb04 100644
  
 diff --git a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java b/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
 deleted file mode 100644
-index 2a145d85..00000000
+index 2a145d851..000000000
 --- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
 +++ /dev/null
 @@ -0,0 +0,0 @@
@@ -3711,7 +3711,7 @@ index 2a145d85..00000000
 -    // Spigot end
 -}
 diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 9b0153f7..9d82a691 100644
+index 9b0153f7d..9d82a691a 100644
 --- a/src/main/java/org/bukkit/entity/Player.java
 +++ b/src/main/java/org/bukkit/entity/Player.java
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3727,7 +3727,7 @@ index 9b0153f7..9d82a691 100644
  
      @NotNull
 diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
-index c4ef983e..3c5d8a0e 100644
+index 180794eb4..b9ce12ff9 100644
 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
 @@ -0,0 +0,0 @@ public final class SimplePluginManager implements PluginManager {
@@ -3784,7 +3784,7 @@ index c4ef983e..3c5d8a0e 100644
      }
  }
 diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
-index df8a5dcb..50a51394 100644
+index df8a5dcbe..50a51394f 100644
 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
 +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
 @@ -0,0 +0,0 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -3827,7 +3827,7 @@ index df8a5dcb..50a51394 100644
                  eventSet.add(new TimedRegisteredListener(listener, executor, eh.priority(), plugin, eh.ignoreCancelled()));
              } else {
 diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
-index 5830e8b9..36f542a8 100644
+index 5830e8b9b..36f542a85 100644
 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
 +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
 @@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
@@ -3841,7 +3841,7 @@ index 5830e8b9..36f542a8 100644
      private final Map<String, Class<?>> classes = new ConcurrentHashMap<String, Class<?>>();
      private final PluginDescriptionFile description;
 diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java
-index 5ca863b3..612958a3 100644
+index 5ca863b36..612958a33 100644
 --- a/src/main/java/org/bukkit/util/CachedServerIcon.java
 +++ b/src/main/java/org/bukkit/util/CachedServerIcon.java
 @@ -0,0 +0,0 @@ package org.bukkit.util;
@@ -3864,7 +3864,7 @@ index 5ca863b3..612958a3 100644
 +
 +}
 diff --git a/src/main/java/org/spigotmc/CustomTimingsHandler.java b/src/main/java/org/spigotmc/CustomTimingsHandler.java
-index 44badfed..3cbe5c2b 100644
+index 44badfedc..3cbe5c2bb 100644
 --- a/src/main/java/org/spigotmc/CustomTimingsHandler.java
 +++ b/src/main/java/org/spigotmc/CustomTimingsHandler.java
 @@ -0,0 +0,0 @@
diff --git a/Spigot-Server-Patches/Add-CraftMagicNumbers.isSupportedApiVersion.patch b/Spigot-Server-Patches/Add-CraftMagicNumbers.isSupportedApiVersion.patch
index 41047fc222..f5e3837e14 100644
--- a/Spigot-Server-Patches/Add-CraftMagicNumbers.isSupportedApiVersion.patch
+++ b/Spigot-Server-Patches/Add-CraftMagicNumbers.isSupportedApiVersion.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add CraftMagicNumbers.isSupportedApiVersion()
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 919892106..6a6e4fe48 100644
+index b1e1b59d4..770375ed4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/Spigot-Server-Patches/Implement-Paper-VersionChecker.patch b/Spigot-Server-Patches/Implement-Paper-VersionChecker.patch
index d1423e5e48..f87c2c9990 100644
--- a/Spigot-Server-Patches/Implement-Paper-VersionChecker.patch
+++ b/Spigot-Server-Patches/Implement-Paper-VersionChecker.patch
@@ -126,7 +126,7 @@ index 000000000..5deed3e25
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 1c719ec0e..919892106 100644
+index 02f330053..b1e1b59d4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/Spigot-Server-Patches/Init-legacy-material-data.patch b/Spigot-Server-Patches/Init-legacy-material-data.patch
deleted file mode 100644
index 853d3ecf50..0000000000
--- a/Spigot-Server-Patches/Init-legacy-material-data.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Shane Freeder <theboyetronic@gmail.com>
-Date: Thu, 23 Jan 2020 21:30:07 +0000
-Subject: [PATCH] Init legacy material data
-
-This fixes an issue with plugins using legacy materials, spigot does
-not populate the bukkit registry properly, leading to NPEs when using
-outdated plugins. This patch should likely be dropped when spigot fixes
-their legacy data usage....
-
-diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 6a6e4fe48..8d93ad6b4 100644
---- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues {
-         }
- 
-         for (Material material : Material.values()) {
--            if (material.isLegacy()) {
--                continue;
--            }
--
-             MinecraftKey key = key(material);
-             IRegistry.ITEM.getOptional(key).ifPresent((item) -> {
-                 MATERIAL_ITEM.put(material, item);
-@@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues {
-     }
- 
-     public static MinecraftKey key(Material mat) {
-+        // Paper start
-+        if (mat.isLegacy()) {
-+            mat = CraftLegacy.fromLegacy(mat);
-+        }
-+        // Paper end
-         return CraftNamespacedKey.toMinecraft(mat.getKey());
-     }
-     // ========================================================================
---
\ No newline at end of file
diff --git a/Spigot-Server-Patches/POM-Changes.patch b/Spigot-Server-Patches/POM-Changes.patch
index a474de635b..e66a31113f 100644
--- a/Spigot-Server-Patches/POM-Changes.patch
+++ b/Spigot-Server-Patches/POM-Changes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] POM Changes
 
 
 diff --git a/pom.xml b/pom.xml
-index 522b89751..ee7d3d521 100644
+index def28b3be..3dc6c2a3f 100644
 --- a/pom.xml
 +++ b/pom.xml
 @@ -0,0 +0,0 @@
@@ -59,7 +59,7 @@ index 522b89751..ee7d3d521 100644
              <plugin>
 -                <groupId>net.md-5</groupId>
 -                <artifactId>scriptus</artifactId>
--                <version>0.2</version>
+-                <version>0.3.2</version>
 +                <groupId>com.lukegb.mojo</groupId>
 +                <artifactId>gitdescribe-maven-plugin</artifactId>
 +                <version>1.3</version>
diff --git a/Spigot-Server-Patches/Timings-v2.patch b/Spigot-Server-Patches/Timings-v2.patch
index 43b68398bd..f68e66461b 100644
--- a/Spigot-Server-Patches/Timings-v2.patch
+++ b/Spigot-Server-Patches/Timings-v2.patch
@@ -1769,7 +1769,7 @@ index e52ef47b7..3d90b3426 100644
          this.value = value;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index afe4004ff..1c719ec0e 100644
+index 68728b4d8..02f330053 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/work/Bukkit b/work/Bukkit
index 93e39ce193..d0800d0c1d 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 93e39ce1934a9a7675550c12a7bd4861a2030f2b
+Subproject commit d0800d0c1da6659be7e71045f117c89d4e21f9ec
diff --git a/work/CraftBukkit b/work/CraftBukkit
index ab13a117a9..e82b5477ae 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit ab13a117a910635638886991a2d77a82261b2cb6
+Subproject commit e82b5477ae218e3f8f74b86c87c9f3f29510e818
diff --git a/work/Spigot b/work/Spigot
index f2c1cd15d9..b9baf71774 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit f2c1cd15d99e523ef21cd1f761914a2b9eb940b8
+Subproject commit b9baf71774bbb783017c5bb52e646795cf3248cd