From 1eb775c6dc7ea8d8aa8cc79d259e43db183f89ec Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sat, 1 Feb 2020 15:20:54 +0000
Subject: [PATCH] Updated Upstream (Bukkit/CraftBukkit/Spigot)

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
d0800d0c Update checkstyle
e4e4bf70 Remove package-info from tests, breaks some IDEs
d6651bb0 No longer necessary to synchronize sync events

CraftBukkit Changes:
e82b5477 SPIGOT-5556: Some biome methods use incorrect positions
544ccdc5 Update checkstyle
512ff7a5 Print legacy load reason in debug mode
df371c1b SPIGOT-5554: Clear error message when BossBar is used for not fully joined players
18168500 Update scriptus
6bbb4e73 Clean up CraftBlockData.toString
b1e96bd5 SPIGOT-5551: BlockState.setData fails when used by legacy plugin

Spigot Changes:
b9baf717 Add space before ocean seed output
13394884 Rebuild patches
---
 ...eload-permissions.yml-and-require-co.patch |  8 +--
 .../Add-exception-reporting-event.patch       | 24 +++----
 ...deadlock-risk-in-firing-async-events.patch | 14 ++--
 Spigot-API-Patches/Timings-v2.patch           | 70 +++++++++----------
 ...ftMagicNumbers.isSupportedApiVersion.patch |  2 +-
 .../Implement-Paper-VersionChecker.patch      |  2 +-
 .../Init-legacy-material-data.patch           | 38 ----------
 Spigot-Server-Patches/POM-Changes.patch       |  4 +-
 Spigot-Server-Patches/Timings-v2.patch        |  2 +-
 work/Bukkit                                   |  2 +-
 work/CraftBukkit                              |  2 +-
 work/Spigot                                   |  2 +-
 12 files changed, 65 insertions(+), 105 deletions(-)
 delete mode 100644 Spigot-Server-Patches/Init-legacy-material-data.patch

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