diff --git a/patches/api/0005-Adventure.patch b/patches/api/0005-Adventure.patch
index fb3caf264f30..d3da3bde129b 100644
--- a/patches/api/0005-Adventure.patch
+++ b/patches/api/0005-Adventure.patch
@@ -1415,7 +1415,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
              throw new UnsupportedOperationException("Not supported yet.");
          }
 diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java
-index 688a7faa5bdbfc053f0a0b2f55f08b2c456b5923..cd2b985d9867194281821e58861bcd0024bb4526 100644
+index c5ba0f3ad4df1f52efe9795cfe2ded8783657b40..e30ea44c962f685f216dadd174c91a00d880c5cd 100644
 --- a/src/main/java/org/bukkit/Sound.java
 +++ b/src/main/java/org/bukkit/Sound.java
 @@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
@@ -1427,7 +1427,7 @@ index 688a7faa5bdbfc053f0a0b2f55f08b2c456b5923..cd2b985d9867194281821e58861bcd00
  
      AMBIENT_BASALT_DELTAS_ADDITIONS("ambient.basalt_deltas.additions"),
      AMBIENT_BASALT_DELTAS_LOOP("ambient.basalt_deltas.loop"),
-@@ -1509,4 +1509,11 @@ public enum Sound implements Keyed {
+@@ -1512,4 +1512,11 @@ public enum Sound implements Keyed {
      public NamespacedKey getKey() {
          return key;
      }
@@ -1508,7 +1508,7 @@ index efb97712cc9dc7c1e12a59f5b94e4f2ad7c6b7d8..3024468af4c073324e536c1cb26beffb
                  return warning == null || warning.value();
              }
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index c4d2a13d62059ca1f148a9af909f424b745bc8df..5357291ff0f2f20bd87ab9f6e57f6a4f6ff65226 100644
+index 2009f98dc12bc8921cd3108884c1ab65bcfc0109..4c2d252a8298336b0ad23d15fc9290f05e5438c6 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -44,7 +44,7 @@ import org.jetbrains.annotations.Nullable;
@@ -4410,7 +4410,7 @@ index 2fbb0b7640dd9b9b0e70d4bc60fbb0310d5ec250..049c70c935fd7a781280d223f74bbbf8
  
      /**
 diff --git a/src/main/java/org/bukkit/map/MapCursor.java b/src/main/java/org/bukkit/map/MapCursor.java
-index 83354b2a38b6261b172b91c1008dcf3313cc4a8f..762d8a53bbfa82edcd725a52d630b61c40503d67 100644
+index b90fd819a781d3a2117ffa25f0864b1576901f9f..7d4f4970dae6fe4eeea6b6b6810dcecfe20d6e51 100644
 --- a/src/main/java/org/bukkit/map/MapCursor.java
 +++ b/src/main/java/org/bukkit/map/MapCursor.java
 @@ -10,7 +10,7 @@ public final class MapCursor {
diff --git a/patches/api/0017-Add-view-distance-API.patch b/patches/api/0017-Add-view-distance-API.patch
index 6fe8772dcf22..7ec3d43852df 100644
--- a/patches/api/0017-Add-view-distance-API.patch
+++ b/patches/api/0017-Add-view-distance-API.patch
@@ -8,7 +8,7 @@ Add per player no-tick, tick, and send view distances.
 Also add send/no-tick view distance to World.
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 5357291ff0f2f20bd87ab9f6e57f6a4f6ff65226..887aa6217583d224d66f6d238ac269c23725d459 100644
+index 4c2d252a8298336b0ad23d15fc9290f05e5438c6..20a949a65a92e1d4c5162585339732377b8fba0c 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -2662,6 +2662,62 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0051-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/api/0051-Provide-E-TE-Chunk-count-stat-methods.patch
index 225703e290f1..a8e231d2f7fd 100644
--- a/patches/api/0051-Provide-E-TE-Chunk-count-stat-methods.patch
+++ b/patches/api/0051-Provide-E-TE-Chunk-count-stat-methods.patch
@@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size()
 which creates copy of the collections.
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 887aa6217583d224d66f6d238ac269c23725d459..4ef6bbfa753da439ac57bd8d70dd114d73665c8d 100644
+index 20a949a65a92e1d4c5162585339732377b8fba0c..9c8cfd05bbac5155b723414113ab9a9ec9ada81f 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -46,6 +46,33 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0055-Fix-upstream-javadocs.patch
index 9dfe88faacaf..038bf29af0a6 100644
--- a/patches/api/0055-Fix-upstream-javadocs.patch
+++ b/patches/api/0055-Fix-upstream-javadocs.patch
@@ -94,7 +94,7 @@ index 73b782c3975ad13159b6236976783fcfabd20493..e9cbbdf310e48011ee538c5592baee25
      CHERRY_LEAVES,
      EGG_CRACK,
 diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
-index 43f5aab2fe70af5f570de1f21eca83905f1e2f57..05c29cbd2ae1ca0434a90f8389479bd608ca2ac1 100644
+index 02de62c083ceaa466c80cb732e8304b8cc3f07f8..7c2b1eff41dd43fda84d84e76c05bbbf37c186b8 100644
 --- a/src/main/java/org/bukkit/RegionAccessor.java
 +++ b/src/main/java/org/bukkit/RegionAccessor.java
 @@ -158,7 +158,7 @@ public interface RegionAccessor {
@@ -161,7 +161,7 @@ index 22d508a6c80d7e19352bceb57009fdbcb16bc723..3c1862b9a9293155f756615b5bd23cc8
       * @return an array containing all previous players
       */
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 4ef6bbfa753da439ac57bd8d70dd114d73665c8d..7f23527168a33b92d823f76765edfe00abe0e4f6 100644
+index 9c8cfd05bbac5155b723414113ab9a9ec9ada81f..bb36bb6e98d36d407fc0ed8e9562feffb45f3f97 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -2576,7 +2576,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0098-Additional-world.getNearbyEntities-API-s.patch b/patches/api/0098-Additional-world.getNearbyEntities-API-s.patch
index 6f67308e36f2..533c79b5e9ba 100644
--- a/patches/api/0098-Additional-world.getNearbyEntities-API-s.patch
+++ b/patches/api/0098-Additional-world.getNearbyEntities-API-s.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Additional world.getNearbyEntities API's
 Provides more methods to get nearby entities, and filter by types and predicates
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 7f23527168a33b92d823f76765edfe00abe0e4f6..0f76496471c50d5f18cedc735e667265e6c27422 100644
+index bb36bb6e98d36d407fc0ed8e9562feffb45f3f97..51e7c662f2d56c1a99818497315e75d661494145 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -1,6 +1,9 @@
diff --git a/patches/api/0100-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/api/0100-Expand-World.spawnParticle-API-and-add-Builder.patch
index eba56ef2d04c..8fdb4dc523f1 100644
--- a/patches/api/0100-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/patches/api/0100-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -522,7 +522,7 @@ index e9cbbdf310e48011ee538c5592baee2535965fee..dbedaf6a92681bc32d74f067cd4686c8
       * Options which can be applied to redstone dust particles - a particle
       * color and size.
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 0f76496471c50d5f18cedc735e667265e6c27422..0ed7a7db90856ff50ed1354f9914c0cc321d2d09 100644
+index 51e7c662f2d56c1a99818497315e75d661494145..1c7cdfe7a20500be8347a848e424e7409f73263c 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -2776,7 +2776,57 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0114-Expand-Explosions-API.patch b/patches/api/0114-Expand-Explosions-API.patch
index 70125de15c0c..f76cc573edac 100644
--- a/patches/api/0114-Expand-Explosions-API.patch
+++ b/patches/api/0114-Expand-Explosions-API.patch
@@ -108,7 +108,7 @@ index 6693e3d8dc2519facb12db981a6b6325faa095bf..b7ff09ffdd3aecc1843d175bc76fe5fa
       * Returns a list of entities within a bounding box centered around a Location.
       *
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 0ed7a7db90856ff50ed1354f9914c0cc321d2d09..fa192be9916ccd0a443281c104637ba09cde7755 100644
+index 1c7cdfe7a20500be8347a848e424e7409f73263c..e551347c8db9a89e8e450d39accb37f3ee4589ee 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -1391,6 +1391,88 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0118-Add-World.getEntity-UUID-API.patch b/patches/api/0118-Add-World.getEntity-UUID-API.patch
index 0d32971133a5..17eb778f1dfb 100644
--- a/patches/api/0118-Add-World.getEntity-UUID-API.patch
+++ b/patches/api/0118-Add-World.getEntity-UUID-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add World.getEntity(UUID) API
 
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index fa192be9916ccd0a443281c104637ba09cde7755..e9af7ce218e44940cd074cc0d511268284e312ef 100644
+index e551347c8db9a89e8e450d39accb37f3ee4589ee..6ed9d86683947a9b529b8ec0f8d88a7924742585 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -911,6 +911,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch b/patches/api/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch
index e52b957a4270..ad788a3ccc5b 100644
--- a/patches/api/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch
+++ b/patches/api/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch
@@ -44,7 +44,7 @@ index efbfed855248cff8b4bdbfc181d3e82058df4749..766d643f0fe79660942fdad25e39e488
       * Gets the world containing this chunk
       *
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index e9af7ce218e44940cd074cc0d511268284e312ef..159307600747c49948c5242d6cf39eed08c902e7 100644
+index 6ed9d86683947a9b529b8ec0f8d88a7924742585..7f104d2c94d1de3eb003e412c35b5324beeada33 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -179,6 +179,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0135-Allow-Blocks-to-be-accessed-via-a-long-key.patch b/patches/api/0135-Allow-Blocks-to-be-accessed-via-a-long-key.patch
index 404eb3b27c39..69f2642e46c3 100644
--- a/patches/api/0135-Allow-Blocks-to-be-accessed-via-a-long-key.patch
+++ b/patches/api/0135-Allow-Blocks-to-be-accessed-via-a-long-key.patch
@@ -50,7 +50,7 @@ index aa6821aa33d3c579a139bd7c0378253c43b3754a..6e6e65c40813ccce618fa7a3df2c0030
       * @return A new location where X/Y/Z are the center of the block
       */
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 159307600747c49948c5242d6cf39eed08c902e7..e83de41cbaf0e5a68ce0d5ad2b5ec10877ec4055 100644
+index 7f104d2c94d1de3eb003e412c35b5324beeada33..762be36670b12286876917b9fbf64ca5bddf6c2e 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -96,6 +96,41 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0140-isChunkGenerated-API.patch b/patches/api/0140-isChunkGenerated-API.patch
index 8a28a246dd68..444315854d65 100644
--- a/patches/api/0140-isChunkGenerated-API.patch
+++ b/patches/api/0140-isChunkGenerated-API.patch
@@ -34,7 +34,7 @@ index 6e6e65c40813ccce618fa7a3df2c0030aa0a3bbe..8508aa2c6fb7c9f41f3d185f5228c86d
      /**
       * Sets the position of this Location and returns itself
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index e83de41cbaf0e5a68ce0d5ad2b5ec10877ec4055..c63a660f2deade66fffad9036ce7c7c693bf0207 100644
+index 762be36670b12286876917b9fbf64ca5bddf6c2e..ca1a4e9bd912258185d59ff70de1e7cc5e43d436 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -245,6 +245,19 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0142-Async-Chunks-API.patch b/patches/api/0142-Async-Chunks-API.patch
index 37c551e4410a..c73cbeac5ccb 100644
--- a/patches/api/0142-Async-Chunks-API.patch
+++ b/patches/api/0142-Async-Chunks-API.patch
@@ -8,7 +8,7 @@ Adds API's to load or generate chunks asynchronously.
 Also adds utility methods to Entity to teleport asynchronously.
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index c63a660f2deade66fffad9036ce7c7c693bf0207..67d14468703e0445afccdbd8de8028fb21b90d2d 100644
+index ca1a4e9bd912258185d59ff70de1e7cc5e43d436..ddc5fd874ccbb5a75ea3e4eddc39a97761ee6a48 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -954,6 +954,482 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0152-Material-API-additions.patch b/patches/api/0152-Material-API-additions.patch
index 6b7874324cf8..c2cf84e74b50 100644
--- a/patches/api/0152-Material-API-additions.patch
+++ b/patches/api/0152-Material-API-additions.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Material API additions
 
 
 diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index f52c0e25e75e890046339d605c0abf79d82864f2..64d01ce77966e895ec494719a4398577be1097a1 100644
+index 0b6c1065751b4315b30f9710a18bbcd5620ef97c..1e7b4cdad22f1679f1ea0f4bc9a90839c214331b 100644
 --- a/src/main/java/org/bukkit/Material.java
 +++ b/src/main/java/org/bukkit/Material.java
 @@ -118,6 +118,7 @@ import org.jetbrains.annotations.Nullable;
@@ -16,7 +16,7 @@ index f52c0e25e75e890046339d605c0abf79d82864f2..64d01ce77966e895ec494719a4398577
  public enum Material implements Keyed, Translatable {
      //<editor-fold desc="Materials" defaultstate="collapsed">
      AIR(9648, 0),
-@@ -4435,6 +4436,22 @@ public enum Material implements Keyed, Translatable {
+@@ -4438,6 +4439,22 @@ public enum Material implements Keyed, Translatable {
          }
      }
  
diff --git a/patches/api/0156-Add-sun-related-API.patch b/patches/api/0156-Add-sun-related-API.patch
index 08356bec3cc0..61fed8f28d9d 100644
--- a/patches/api/0156-Add-sun-related-API.patch
+++ b/patches/api/0156-Add-sun-related-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add sun related API
 
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 67d14468703e0445afccdbd8de8028fb21b90d2d..c6019065869130608ac97af951c7036031eec242 100644
+index ddc5fd874ccbb5a75ea3e4eddc39a97761ee6a48..be5baaf499cc76dd737d6203570e3d431c18afcf 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -1781,6 +1781,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
index a49f4cbc508f..8e7eaff3dbf5 100644
--- a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
@@ -90,10 +90,10 @@ index 8508aa2c6fb7c9f41f3d185f5228c86dd3b8b627..f7564581c18425c903e54f949728dd37
          if (this.world == null) {
              return null;
 diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 64d01ce77966e895ec494719a4398577be1097a1..7705fece7f58bd66f7d68da85f8f34e43b4bae12 100644
+index 1e7b4cdad22f1679f1ea0f4bc9a90839c214331b..10d7827e7d60ecc733358093c0369cfb8a174c6d 100644
 --- a/src/main/java/org/bukkit/Material.java
 +++ b/src/main/java/org/bukkit/Material.java
-@@ -4465,11 +4465,11 @@ public enum Material implements Keyed, Translatable {
+@@ -4468,11 +4468,11 @@ public enum Material implements Keyed, Translatable {
      }
  
      /**
@@ -107,7 +107,7 @@ index 64d01ce77966e895ec494719a4398577be1097a1..7705fece7f58bd66f7d68da85f8f34e4
      public boolean isLegacy() {
          return legacy;
      }
-@@ -4540,8 +4540,10 @@ public enum Material implements Keyed, Translatable {
+@@ -4543,8 +4543,10 @@ public enum Material implements Keyed, Translatable {
       * Gets the MaterialData class associated with this Material
       *
       * @return MaterialData associated with this Material
@@ -282,7 +282,7 @@ index e455eb21abf121dc6ff10ff8a13dd06f67096a8f..bbc01e7c192ae6689c301670047ff114
          return origin;
      }
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index c6019065869130608ac97af951c7036031eec242..fe8f167871563e594cd48892e4d8768ebca92958 100644
+index be5baaf499cc76dd737d6203570e3d431c18afcf..c748679337989a7b4e2a39e542268b7fd851ed91 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -415,9 +415,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0175-Add-Heightmap-API.patch b/patches/api/0175-Add-Heightmap-API.patch
index ef71c8c2fe19..5b38d5f8b0e3 100644
--- a/patches/api/0175-Add-Heightmap-API.patch
+++ b/patches/api/0175-Add-Heightmap-API.patch
@@ -102,7 +102,7 @@ index f7564581c18425c903e54f949728dd3742ca7bf2..1bfe465b9aaeea7d3c871140145b7de1
      /**
       * Creates explosion at this location with given power
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index fe8f167871563e594cd48892e4d8768ebca92958..06cdbbeabf1f1630a2d2e008fa82e72b0745cdd8 100644
+index c748679337989a7b4e2a39e542268b7fd851ed91..e9423c88ccc35a7c32e1dca970faf0ec452fcbba 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -150,6 +150,87 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0197-Spawn-Reason-API.patch b/patches/api/0197-Spawn-Reason-API.patch
index dbde82e3bac2..ff79247e98ff 100644
--- a/patches/api/0197-Spawn-Reason-API.patch
+++ b/patches/api/0197-Spawn-Reason-API.patch
@@ -5,17 +5,17 @@ Subject: [PATCH] Spawn Reason API
 
 
 diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
-index 05c29cbd2ae1ca0434a90f8389479bd608ca2ac1..66bc6da2a482bb207ec50beb22fd62aeda90cc34 100644
+index 7c2b1eff41dd43fda84d84e76c05bbbf37c186b8..bc70f4f5b82ce5b92ab0b2612c8fb8126ed1a8c2 100644
 --- a/src/main/java/org/bukkit/RegionAccessor.java
 +++ b/src/main/java/org/bukkit/RegionAccessor.java
-@@ -10,6 +10,7 @@ import org.bukkit.block.data.BlockData;
+@@ -11,6 +11,7 @@ import org.bukkit.block.data.BlockData;
  import org.bukkit.entity.Entity;
  import org.bukkit.entity.EntityType;
  import org.bukkit.entity.LivingEntity;
 +import org.bukkit.event.entity.CreatureSpawnEvent;
- import org.bukkit.util.Consumer;
  import org.jetbrains.annotations.NotNull;
  import org.jetbrains.annotations.Nullable;
+ 
 @@ -309,7 +310,34 @@ public interface RegionAccessor {
       *     {@link Entity} requested cannot be spawned
       */
diff --git a/patches/api/0208-Add-moon-phase-API.patch b/patches/api/0208-Add-moon-phase-API.patch
index 68b36e3b64e1..0b33cb35ed08 100644
--- a/patches/api/0208-Add-moon-phase-API.patch
+++ b/patches/api/0208-Add-moon-phase-API.patch
@@ -47,7 +47,7 @@ index 0000000000000000000000000000000000000000..df05153397b42930cd53d37b30824c7e
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
-index 66bc6da2a482bb207ec50beb22fd62aeda90cc34..501dd5a26c27294420821b3d75f8938596afb1a8 100644
+index bc70f4f5b82ce5b92ab0b2612c8fb8126ed1a8c2..f587a529e4d7b097b3f204a34c636da0bbac6747 100644
 --- a/src/main/java/org/bukkit/RegionAccessor.java
 +++ b/src/main/java/org/bukkit/RegionAccessor.java
 @@ -421,4 +421,12 @@ public interface RegionAccessor {
diff --git a/patches/api/0211-Add-methods-to-get-translation-keys.patch b/patches/api/0211-Add-methods-to-get-translation-keys.patch
index 1b8583d55a23..a66be1c84080 100644
--- a/patches/api/0211-Add-methods-to-get-translation-keys.patch
+++ b/patches/api/0211-Add-methods-to-get-translation-keys.patch
@@ -144,7 +144,7 @@ index 9443baf6de101a6d9af421314c013d8954798881..8108d6a82879e02384b83ab3f26b140e
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 7705fece7f58bd66f7d68da85f8f34e43b4bae12..6a89eab53f21bc4420e616cc299864fb564e1045 100644
+index 10d7827e7d60ecc733358093c0369cfb8a174c6d..e47f113f1c38598ac8b95b631d0a53ca0c1f6d2c 100644
 --- a/src/main/java/org/bukkit/Material.java
 +++ b/src/main/java/org/bukkit/Material.java
 @@ -119,7 +119,7 @@ import org.jetbrains.annotations.Nullable;
@@ -156,7 +156,7 @@ index 7705fece7f58bd66f7d68da85f8f34e43b4bae12..6a89eab53f21bc4420e616cc299864fb
      //<editor-fold desc="Materials" defaultstate="collapsed">
      AIR(9648, 0),
      STONE(22948),
-@@ -4450,6 +4450,15 @@ public enum Material implements Keyed, Translatable {
+@@ -4453,6 +4453,15 @@ public enum Material implements Keyed, Translatable {
          }
          return false;
      }
@@ -172,7 +172,7 @@ index 7705fece7f58bd66f7d68da85f8f34e43b4bae12..6a89eab53f21bc4420e616cc299864fb
      // Paper end
  
      /**
-@@ -10949,9 +10958,11 @@ public enum Material implements Keyed, Translatable {
+@@ -10952,9 +10961,11 @@ public enum Material implements Keyed, Translatable {
       * material
       * @see #getBlockTranslationKey()
       * @see #getItemTranslationKey()
diff --git a/patches/api/0259-Cache-the-result-of-Material-isBlock.patch b/patches/api/0259-Cache-the-result-of-Material-isBlock.patch
index 49dab657f28f..962106d99029 100644
--- a/patches/api/0259-Cache-the-result-of-Material-isBlock.patch
+++ b/patches/api/0259-Cache-the-result-of-Material-isBlock.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Cache the result of Material#isBlock
 
 
 diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 6a89eab53f21bc4420e616cc299864fb564e1045..37898f36f859eda945471fa9b00fcabbc3d211df 100644
+index e47f113f1c38598ac8b95b631d0a53ca0c1f6d2c..87b2cfd26d42c4f94f8571a514ef8f09febd6d56 100644
 --- a/src/main/java/org/bukkit/Material.java
 +++ b/src/main/java/org/bukkit/Material.java
-@@ -4394,6 +4394,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4397,6 +4397,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
      public final Class<?> data;
      private final boolean legacy;
      private final NamespacedKey key;
@@ -16,7 +16,7 @@ index 6a89eab53f21bc4420e616cc299864fb564e1045..37898f36f859eda945471fa9b00fcabb
  
      private Material(final int id) {
          this(id, 64);
-@@ -4592,6 +4593,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4595,6 +4596,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
       * @return true if this material is a block
       */
      public boolean isBlock() {
@@ -28,7 +28,7 @@ index 6a89eab53f21bc4420e616cc299864fb564e1045..37898f36f859eda945471fa9b00fcabb
          switch (this) {
              //<editor-fold defaultstate="collapsed" desc="isBlock">
              case ACACIA_BUTTON:
-@@ -5778,6 +5784,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -5781,6 +5787,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
      static {
          for (Material material : values()) {
              BY_NAME.put(material.name(), material);
diff --git a/patches/api/0264-Expand-world-key-API.patch b/patches/api/0264-Expand-world-key-API.patch
index 917573761ad0..d0f45acac2ec 100644
--- a/patches/api/0264-Expand-world-key-API.patch
+++ b/patches/api/0264-Expand-world-key-API.patch
@@ -28,7 +28,7 @@ index 2acb1e1e7a865596d0a0535717bc9d5dd49669c3..369fc041f3203da7d367423ac74cb3eb
      /**
       * Create a new virtual {@link WorldBorder}.
 diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
-index 501dd5a26c27294420821b3d75f8938596afb1a8..71ef9b479888aa83455757560b60745572c7196d 100644
+index f587a529e4d7b097b3f204a34c636da0bbac6747..58b81f30f9e29ab481ae96c7eea40ad976a4b192 100644
 --- a/src/main/java/org/bukkit/RegionAccessor.java
 +++ b/src/main/java/org/bukkit/RegionAccessor.java
 @@ -19,7 +19,7 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/api/0265-Item-Rarity-API.patch b/patches/api/0265-Item-Rarity-API.patch
index 5c25c66d6519..924eadf1c97c 100644
--- a/patches/api/0265-Item-Rarity-API.patch
+++ b/patches/api/0265-Item-Rarity-API.patch
@@ -39,10 +39,10 @@ index 0000000000000000000000000000000000000000..74ef8395cc040ce488c2acaa416db202
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 37898f36f859eda945471fa9b00fcabbc3d211df..85d19b0c659c75472aa91d18fdf17f25bd6a2e04 100644
+index 87b2cfd26d42c4f94f8571a514ef8f09febd6d56..de709541754ce47aed82025e45311b6162b8c629 100644
 --- a/src/main/java/org/bukkit/Material.java
 +++ b/src/main/java/org/bukkit/Material.java
-@@ -4460,6 +4460,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4463,6 +4463,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
              return Bukkit.getUnsafe().getBlockTranslationKey(this);
          }
      }
diff --git a/patches/api/0271-More-World-API.patch b/patches/api/0271-More-World-API.patch
index b57e26992a99..506f8c3a3753 100644
--- a/patches/api/0271-More-World-API.patch
+++ b/patches/api/0271-More-World-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] More World API
 
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 06cdbbeabf1f1630a2d2e008fa82e72b0745cdd8..e6978b0257744ad13fce1291b4793334132f79e1 100644
+index e9423c88ccc35a7c32e1dca970faf0ec452fcbba..b7a2ef57ed089ca750693a413c57bc80048b5608 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -3716,6 +3716,114 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0289-Attributes-API-for-item-defaults.patch b/patches/api/0289-Attributes-API-for-item-defaults.patch
index abd3dd1e6996..0955ff42ff5a 100644
--- a/patches/api/0289-Attributes-API-for-item-defaults.patch
+++ b/patches/api/0289-Attributes-API-for-item-defaults.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Attributes API for item defaults
 
 
 diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 85d19b0c659c75472aa91d18fdf17f25bd6a2e04..5fe8207fd9b76564b0547eec5e3db2b7abed0150 100644
+index de709541754ce47aed82025e45311b6162b8c629..8fea0f3f6dfa0634405ed2e4c2941beb616a0efc 100644
 --- a/src/main/java/org/bukkit/Material.java
 +++ b/src/main/java/org/bukkit/Material.java
-@@ -4471,6 +4471,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4474,6 +4474,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
      public io.papermc.paper.inventory.ItemRarity getItemRarity() {
          return Bukkit.getUnsafe().getItemRarity(this);
      }
diff --git a/patches/api/0296-Add-more-line-of-sight-methods.patch b/patches/api/0296-Add-more-line-of-sight-methods.patch
index 8bcc72f6a526..2751664e0f68 100644
--- a/patches/api/0296-Add-more-line-of-sight-methods.patch
+++ b/patches/api/0296-Add-more-line-of-sight-methods.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add more line of sight methods
 
 
 diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
-index 71ef9b479888aa83455757560b60745572c7196d..cd83348de3f82b3fddcf2d4bb9187ec8173b0e40 100644
+index 58b81f30f9e29ab481ae96c7eea40ad976a4b192..63503cf17847a85264c930a9fc23a5aab5955c3c 100644
 --- a/src/main/java/org/bukkit/RegionAccessor.java
 +++ b/src/main/java/org/bukkit/RegionAccessor.java
 @@ -437,5 +437,13 @@ public interface RegionAccessor extends Keyed { // Paper
diff --git a/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch
index bac14a0f546a..1d35dc1e929e 100644
--- a/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes
 
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index e6978b0257744ad13fce1291b4793334132f79e1..d0c125c6120c2cefb5a3004a60bfd4a353c05e32 100644
+index b7a2ef57ed089ca750693a413c57bc80048b5608..6ee336e9cda8b740aa3984b115797cd9333e012f 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -734,6 +734,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0321-Add-isCollidable-methods-to-various-places.patch b/patches/api/0321-Add-isCollidable-methods-to-various-places.patch
index 2ab6b106da37..293a34acde6e 100644
--- a/patches/api/0321-Add-isCollidable-methods-to-various-places.patch
+++ b/patches/api/0321-Add-isCollidable-methods-to-various-places.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add isCollidable methods to various places
 
 
 diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 5fe8207fd9b76564b0547eec5e3db2b7abed0150..03b47012447430a350e152920f754d993d4023db 100644
+index 8fea0f3f6dfa0634405ed2e4c2941beb616a0efc..8a948a61d0bdb06b0b9a6eac8a27baeb35a7d36c 100644
 --- a/src/main/java/org/bukkit/Material.java
 +++ b/src/main/java/org/bukkit/Material.java
-@@ -4486,6 +4486,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4489,6 +4489,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
      public Multimap<Attribute, AttributeModifier> getItemAttributes(@NotNull EquipmentSlot equipmentSlot) {
          return Bukkit.getUnsafe().getItemAttributes(this, equipmentSlot);
      }
diff --git a/patches/api/0346-Implement-regenerateChunk.patch b/patches/api/0346-Implement-regenerateChunk.patch
index ab1b374a27ac..4f0397392512 100644
--- a/patches/api/0346-Implement-regenerateChunk.patch
+++ b/patches/api/0346-Implement-regenerateChunk.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement regenerateChunk
 
 
 diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index d0c125c6120c2cefb5a3004a60bfd4a353c05e32..b8b97df069b28fa3cf32f1ad1f01f586a0cfbc78 100644
+index 6ee336e9cda8b740aa3984b115797cd9333e012f..da524a71af74b02515b037f7fe09ba6988e2c8bf 100644
 --- a/src/main/java/org/bukkit/World.java
 +++ b/src/main/java/org/bukkit/World.java
 @@ -483,8 +483,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0354-Add-getComputedBiome-API.patch b/patches/api/0354-Add-getComputedBiome-API.patch
index 57f92d79f7f4..d1866ce241d9 100644
--- a/patches/api/0354-Add-getComputedBiome-API.patch
+++ b/patches/api/0354-Add-getComputedBiome-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add getComputedBiome API
 
 
 diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
-index cd83348de3f82b3fddcf2d4bb9187ec8173b0e40..8f50eb9b902236f5e039f5d26f3ca9a044b01a75 100644
+index 63503cf17847a85264c930a9fc23a5aab5955c3c..93e20ca14a2b7e5817fab788b6dfa73c6ced6acb 100644
 --- a/src/main/java/org/bukkit/RegionAccessor.java
 +++ b/src/main/java/org/bukkit/RegionAccessor.java
 @@ -26,6 +26,7 @@ public interface RegionAccessor extends Keyed { // Paper
diff --git a/patches/api/0372-Collision-API.patch b/patches/api/0372-Collision-API.patch
index 24bcebc5035d..058669aa743b 100644
--- a/patches/api/0372-Collision-API.patch
+++ b/patches/api/0372-Collision-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Collision API
 
 
 diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
-index 8f50eb9b902236f5e039f5d26f3ca9a044b01a75..0d9184abd7090a5123a990f76847ee9b8971f735 100644
+index 93e20ca14a2b7e5817fab788b6dfa73c6ced6acb..cbb51dde78f792db4ddac43f144d23ff4b12d25f 100644
 --- a/src/main/java/org/bukkit/RegionAccessor.java
 +++ b/src/main/java/org/bukkit/RegionAccessor.java
 @@ -469,5 +469,15 @@ public interface RegionAccessor extends Keyed { // Paper
diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch
index ed22ba43503a..0131e45bdb08 100644
--- a/patches/server/0001-Setup-Gradle-project.patch
+++ b/patches/server/0001-Setup-Gradle-project.patch
@@ -172,10 +172,10 @@ index 0000000000000000000000000000000000000000..91a5d6e9775010336da28ed6e2f6654b
 +}
 diff --git a/pom.xml b/pom.xml
 deleted file mode 100644
-index 5e98dccdfb48d7af87180ad0c652c9f2d711af7f..0000000000000000000000000000000000000000
+index f71302bc9a652ece0f80ca3e1f00cff46ed50619..0000000000000000000000000000000000000000
 --- a/pom.xml
 +++ /dev/null
-@@ -1,587 +0,0 @@
+@@ -1,590 +0,0 @@
 -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 -         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 -    <modelVersion>4.0.0</modelVersion>
@@ -579,7 +579,7 @@ index 5e98dccdfb48d7af87180ad0c652c9f2d711af7f..00000000000000000000000000000000
 -            <plugin>
 -                <groupId>net.md-5</groupId>
 -                <artifactId>specialsource-maven-plugin</artifactId>
--                <version>1.2.4</version>
+-                <version>2.0.0</version>
 -                <executions>
 -                    <execution>
 -                        <phase>package</phase>
@@ -588,6 +588,7 @@ index 5e98dccdfb48d7af87180ad0c652c9f2d711af7f..00000000000000000000000000000000
 -                        </goals>
 -                        <id>remap-members</id>
 -                        <configuration>
+-                            <useProjectDependencies>false</useProjectDependencies>
 -                            <logFile>${project.build.directory}/server.txt</logFile>
 -                            <srgIn>org.spigotmc:minecraft-server:${project.version}:csrg:maps-spigot-members</srgIn>
 -                            <reverse>true</reverse>
@@ -737,6 +738,7 @@ index 5e98dccdfb48d7af87180ad0c652c9f2d711af7f..00000000000000000000000000000000
 -                                </goals>
 -                                <id>remap-obf</id>
 -                                <configuration>
+-                                    <useProjectDependencies>false</useProjectDependencies>
 -                                    <srgIn>org.spigotmc:minecraft-server:${project.version}:csrg:maps-spigot</srgIn>
 -                                    <reverse>true</reverse>
 -                                    <remappedArtifactAttached>true</remappedArtifactAttached>
@@ -750,6 +752,7 @@ index 5e98dccdfb48d7af87180ad0c652c9f2d711af7f..00000000000000000000000000000000
 -                                </goals>
 -                                <id>remap-mojang</id>
 -                                <configuration>
+-                                    <useProjectDependencies>false</useProjectDependencies>
 -                                    <inputFile>${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar</inputFile>
 -                                    <srgIn>org.spigotmc:minecraft-server:${project.version}:txt:maps-mojang</srgIn>
 -                                    <remappedArtifactAttached>true</remappedArtifactAttached>
diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch
index 1020ccc75728..947a0ecbbacf 100644
--- a/patches/server/0005-Paper-config-files.patch
+++ b/patches/server/0005-Paper-config-files.patch
@@ -4720,10 +4720,10 @@ index cda55e481ddbcc1de5478125c5db20ebba168e7d..bacd4d875642cd93c3185f788745dd73
          this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index f4a2fbf89320df88e99b20a56b4feeba7e395dd2..cbfc9b90805ecce074d42cfeb0b68d84cdafcac6 100644
+index 671095a9fb124cc496700e680bab1ef118a7fb5b..2d5627f5dc48c0d51464452907b50bbeb069e67c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -919,6 +919,7 @@ public final class CraftServer implements Server {
+@@ -918,6 +918,7 @@ public final class CraftServer implements Server {
          }
  
          org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
diff --git a/patches/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch
index 91e27248d791..fcc0b2c21ad5 100644
--- a/patches/server/0008-CB-fixes.patch
+++ b/patches/server/0008-CB-fixes.patch
@@ -68,10 +68,10 @@ index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd
          this.registryAccess = registryManager;
          this.structureTemplateManager = structureTemplateManager;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index cbfc9b90805ecce074d42cfeb0b68d84cdafcac6..35f0be0afad8f88f69c3127d1bd44bb0e12af550 100644
+index 2d5627f5dc48c0d51464452907b50bbeb069e67c..f890e0e8ae52965f671fe82911b006a61a33a86b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2360,7 +2360,13 @@ public final class CraftServer implements Server {
+@@ -2359,7 +2359,13 @@ public final class CraftServer implements Server {
          Preconditions.checkArgument(key != null, "NamespacedKey key cannot be null");
  
          LootDataManager registry = this.getServer().getLootData();
diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch
index f0b6f2ba5bae..f3af21405faf 100644
--- a/patches/server/0009-MC-Utils.patch
+++ b/patches/server/0009-MC-Utils.patch
@@ -7395,7 +7395,7 @@ index 25156be63f91a1c41ef41154f675d04eb97459a8..47bab513feec217d875192afef61f3af
              return false;
          } else {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 8adac67a9315186d1ef453eae827ea7f69856f7a..153143b06fc088f3142a8fa17f153d8a344169d8 100644
+index 29bd4879ef94bcfea879fac49dea22eba4af8251..f07c3bfa42c3e26b19c08b3b5ad2ad8d86fd2fc6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -242,8 +242,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -7452,10 +7452,10 @@ index 8adac67a9315186d1ef453eae827ea7f69856f7a..153143b06fc088f3142a8fa17f153d8a
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 32adc1cee4dfe49a9a0009ab39382083001e6cbe..74f431e806a4c5abb7ddd193c1b5f7ba7f321cac 100644
+index b3d1452831db0d7e9765e8e3d437db449bd0010f..4c4d92f934b6463ea7dd88bf5bd664f364742360 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1186,4 +1186,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1185,4 +1185,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          return this.spigot;
      }
      // Spigot end
@@ -7737,11 +7737,11 @@ index 0000000000000000000000000000000000000000..909b2c98e7a9117d2f737245e4661792
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index d2942ef34c6d68d57caec9f1209c2dcdd277c36d..35d2a206d4a36292c16e29247c950c2a69af2879 100644
+index b5506411a893e5eccfb83ab58d718753338b490a..bf6e87116df29a99d7aad3250e8e59d2d957159b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -105,8 +105,17 @@ public final class CraftMagicNumbers implements UnsafeValues {
-     private static final BiMap<net.minecraft.world.level.material.Fluid, Fluid> FLUIDTYPE_FLUID = HashBiMap.create();
+@@ -99,8 +99,17 @@ public final class CraftMagicNumbers implements UnsafeValues {
+     private static final Map<Item, Material> ITEM_MATERIAL = new HashMap<>();
      private static final Map<Material, Item> MATERIAL_ITEM = new HashMap<>();
      private static final Map<Material, Block> MATERIAL_BLOCK = new HashMap<>();
 +    // Paper start
@@ -7758,7 +7758,7 @@ index d2942ef34c6d68d57caec9f1209c2dcdd277c36d..35d2a206d4a36292c16e29247c950c2a
          for (Block block : BuiltInRegistries.BLOCK) {
              BLOCK_MATERIAL.put(block, Material.getMaterial(BuiltInRegistries.BLOCK.getKey(block).getPath().toUpperCase(Locale.ROOT)));
          }
-@@ -170,6 +179,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -151,6 +160,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
      public static ResourceLocation key(Material mat) {
          return CraftNamespacedKey.toMinecraft(mat.getKey());
      }
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index c7e93c23bcb9..597a5b5eb2b4 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -2866,10 +2866,10 @@ index 23bdb77690ba15bcbbfb0c70af23336d08ac7752..8f144a357174bbe096ac9b38a5e67a61
                  }
                  collection = icons;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e0847637f9a 100644
+index f890e0e8ae52965f671fe82911b006a61a33a86b..e04b981e990efc6402978a329dee8024440b48fa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -617,8 +617,10 @@ public final class CraftServer implements Server {
+@@ -616,8 +616,10 @@ public final class CraftServer implements Server {
      }
  
      @Override
@@ -2880,7 +2880,7 @@ index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e08
      }
  
      @Override
-@@ -1474,7 +1476,15 @@ public final class CraftServer implements Server {
+@@ -1473,7 +1475,15 @@ public final class CraftServer implements Server {
          return this.configuration.getInt("settings.spawn-radius", -1);
      }
  
@@ -2896,7 +2896,7 @@ index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e08
      public String getShutdownMessage() {
          return this.configuration.getString("settings.shutdown-message");
      }
-@@ -1642,7 +1652,20 @@ public final class CraftServer implements Server {
+@@ -1641,7 +1651,20 @@ public final class CraftServer implements Server {
      }
  
      @Override
@@ -2917,7 +2917,7 @@ index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e08
          Set<CommandSender> recipients = new HashSet<>();
          for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
              if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
-@@ -1650,14 +1673,14 @@ public final class CraftServer implements Server {
+@@ -1649,14 +1672,14 @@ public final class CraftServer implements Server {
              }
          }
  
@@ -2934,7 +2934,7 @@ index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e08
  
          for (CommandSender recipient : recipients) {
              recipient.sendMessage(message);
-@@ -1920,6 +1943,14 @@ public final class CraftServer implements Server {
+@@ -1919,6 +1942,14 @@ public final class CraftServer implements Server {
          return CraftInventoryCreator.INSTANCE.createInventory(owner, type);
      }
  
@@ -2949,7 +2949,7 @@ index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e08
      @Override
      public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) {
          Preconditions.checkArgument(type != null, "InventoryType cannot be null");
-@@ -1934,13 +1965,28 @@ public final class CraftServer implements Server {
+@@ -1933,13 +1964,28 @@ public final class CraftServer implements Server {
          return CraftInventoryCreator.INSTANCE.createInventory(owner, size);
      }
  
@@ -2978,7 +2978,7 @@ index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e08
      public Merchant createMerchant(String title) {
          return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title);
      }
-@@ -2005,6 +2051,17 @@ public final class CraftServer implements Server {
+@@ -2004,6 +2050,17 @@ public final class CraftServer implements Server {
          return Thread.currentThread().equals(console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog)
      }
  
@@ -2996,7 +2996,7 @@ index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e08
      @Override
      public String getMotd() {
          return this.console.getMotd();
-@@ -2439,4 +2496,53 @@ public final class CraftServer implements Server {
+@@ -2438,4 +2495,53 @@ public final class CraftServer implements Server {
          return this.spigot;
      }
      // Spigot end
@@ -3051,7 +3051,7 @@ index 35f0be0afad8f88f69c3127d1bd44bb0e12af550..4bdc0ef703b31763f879e7de7da60e08
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 153143b06fc088f3142a8fa17f153d8a344169d8..d01388bbadf3069357cf52463f4104a1be4d2b56 100644
+index f07c3bfa42c3e26b19c08b3b5ad2ad8d86fd2fc6..296cd22069ed95b35c59191def2ff568f49a944f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -152,6 +152,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -3527,7 +3527,7 @@ index f6c614bb1184f9c79121f64a2a030bf3f094b671..e8334e2264510f5101e80b4f130e7ae1
      public net.minecraft.world.item.enchantment.Enchantment getHandle() {
          return this.target;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 74f431e806a4c5abb7ddd193c1b5f7ba7f321cac..2a20ebeeb6156ff74a52e8e0168de6b60f6e72cf 100644
+index 4c4d92f934b6463ea7dd88bf5bd664f364742360..c888dce92fa4c26bbbeba7eab299841b01732e6b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 @@ -206,6 +206,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -3538,7 +3538,7 @@ index 74f431e806a4c5abb7ddd193c1b5f7ba7f321cac..2a20ebeeb6156ff74a52e8e0168de6b6
  
      public CraftEntity(final CraftServer server, final Entity entity) {
          this.server = server;
-@@ -864,6 +865,32 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -863,6 +864,32 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          return this.getHandle().getVehicle().getBukkitEntity();
      }
  
@@ -3571,7 +3571,7 @@ index 74f431e806a4c5abb7ddd193c1b5f7ba7f321cac..2a20ebeeb6156ff74a52e8e0168de6b6
      @Override
      public void setCustomName(String name) {
          // sane limit for name length
-@@ -943,6 +970,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -942,6 +969,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
      public String getName() {
          return CraftChatMessage.fromComponent(this.getHandle().getName());
      }
@@ -3642,7 +3642,7 @@ index 10fa80df3ae2406f34af669f89d087b15ad1d71b..66fb6aeb49b7e93d2a4d9b5ce7f1a7d6
      public boolean isOp() {
          return true;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0c4371fba7e770050182b3cff429bdbfe778e8f6..5b3749feed210da7f62deab5672a40ec396eedc8 100644
+index 2423c838777d99ff34bbde2e791105b3a00c7810..c6e13e9c688eb48518e7b5255521310c17ea452c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -296,14 +296,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -4137,7 +4137,7 @@ index 5725b0281ac53a2354b233223259d6784353bc6e..9ef939b76d06874b856e0c850addb364
      @Override
      public int getLineWidth() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 44f38eab4a6460dd34a1ce33528bfb6e3f42da8b..8e1bb9d86ec12240b00ee118a88ebe4dec4e6329 100644
+index 23e7924320a9061cfb9769ed09c5e679ef4cff47..52a5f1a6585abe42018e8758c5ac462bfb0fe1d1 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -879,9 +879,9 @@ public class CraftEventFactory {
@@ -4284,7 +4284,7 @@ index 4dd9a80af9901287ab6740b072f2b89678c3d0cb..b2586684295b295a3196a2a9cf724cec
      public String getTitle() {
          return this.title;
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 87f57266d4cb3a89a38cf7871e5872d29f6d15b9..45872e28cabc655c170bee163d471acf5d913c00 100644
+index d1126215e14e7594f82c75188ca459c59eba3d0b..2fa36de5d43e2c395e0db2017bd994a62a5b2feb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 @@ -456,4 +456,17 @@ public final class CraftItemFactory implements ItemFactory {
@@ -4562,10 +4562,10 @@ index 507fa96a3fb904b74429df5756c9a6378ec8c5b7..5c6eb9b6f3ca4fc6534fe023fe78be5c
 +    // 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 03e5058810553be884c87f9f7b793cb5fadb7284..44244166ec4e8ac070404101219efbc0e5f1d168 100644
+index 7c33d3d0e55f63b82df30de2e243c42f127272cf..ed81ad09313730173cc5d5617d67da4ae2bf3e78 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -749,6 +749,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -750,6 +750,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          return !(this.hasDisplayName() || this.hasLocalizedName() || this.hasEnchants() || (this.lore != null) || this.hasCustomModelData() || this.hasBlockData() || this.hasRepairCost() || !this.unhandledTags.isEmpty() || !this.persistentDataContainer.isEmpty() || this.hideFlag != 0 || this.isUnbreakable() || this.hasDamage() || this.hasAttributeModifiers());
      }
  
@@ -4584,7 +4584,7 @@ index 03e5058810553be884c87f9f7b793cb5fadb7284..44244166ec4e8ac070404101219efbc0
      @Override
      public String getDisplayName() {
          return CraftChatMessage.fromJSONComponent(displayName);
-@@ -784,6 +796,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -785,6 +797,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          return this.lore != null && !this.lore.isEmpty();
      }
  
@@ -4908,10 +4908,10 @@ index 78ea79b66cc9e90402ef5cdc2e5e04e0c74b1c26..4fede2161792ba3e7cdf0cc5a1f53318
  
          boolean hadFormat = false;
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 35d2a206d4a36292c16e29247c950c2a69af2879..83ccadcc7139054e1ba3e1c1f0bf23c67c3c97c8 100644
+index bf6e87116df29a99d7aad3250e8e59d2d957159b..c72179ff4eb4b2b479da302f648eff85a6345f34 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -75,6 +75,43 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -70,6 +70,43 @@ public final class CraftMagicNumbers implements UnsafeValues {
  
      private CraftMagicNumbers() {}
  
diff --git a/patches/server/0011-Paper-command.patch b/patches/server/0011-Paper-command.patch
index 4295e59b6eb5..3dbfd86f8f63 100644
--- a/patches/server/0011-Paper-command.patch
+++ b/patches/server/0011-Paper-command.patch
@@ -617,10 +617,10 @@ index a9ec28c3cf3ed50d929c80ac21959d82603ff0aa..95a4bcd09f3a9d462ff4c92431c07e3d
  
          this.setPvpAllowed(dedicatedserverproperties.pvp);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4bdc0ef703b31763f879e7de7da60e0847637f9a..5e08b8368d81153cf22ef9ae605fe5250464a283 100644
+index e04b981e990efc6402978a329dee8024440b48fa..f75e17f3b475fcdaa2aa83829df647a09b863071 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -943,6 +943,7 @@ public final class CraftServer implements Server {
+@@ -942,6 +942,7 @@ public final class CraftServer implements Server {
          this.commandMap.clearCommands();
          this.reloadData();
          org.spigotmc.SpigotConfig.registerCommands(); // Spigot
@@ -628,7 +628,7 @@ index 4bdc0ef703b31763f879e7de7da60e0847637f9a..5e08b8368d81153cf22ef9ae605fe525
          this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
          this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
  
-@@ -2536,6 +2537,34 @@ public final class CraftServer implements Server {
+@@ -2535,6 +2536,34 @@ public final class CraftServer implements Server {
      // Paper end
  
      // Paper start
diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/server/0013-Paper-Plugins.patch
index 3faa3b746d16..ea7364f1595b 100644
--- a/patches/server/0013-Paper-Plugins.patch
+++ b/patches/server/0013-Paper-Plugins.patch
@@ -6994,10 +6994,10 @@ index 9cfdd5d8c1650d9c9bdfbc07980239e507ff942d..ae0b713870976d4b1e469a90cef9b2e2
              Bootstrap.validate();
              Util.startTimerHackThread();
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 5e08b8368d81153cf22ef9ae605fe5250464a283..8c32ad9cbbe8bc9693493eee97834aaf20633ed7 100644
+index f75e17f3b475fcdaa2aa83829df647a09b863071..bf4a82c183ad0aa148c6c14615d2d2606a8befb3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -275,7 +275,8 @@ public final class CraftServer implements Server {
+@@ -274,7 +274,8 @@ public final class CraftServer implements Server {
      private final CraftCommandMap commandMap = new CraftCommandMap(this);
      private final SimpleHelpMap helpMap = new SimpleHelpMap(this);
      private final StandardMessenger messenger = new StandardMessenger();
@@ -7007,7 +7007,7 @@ index 5e08b8368d81153cf22ef9ae605fe5250464a283..8c32ad9cbbe8bc9693493eee97834aaf
      private final StructureManager structureManager;
      protected final DedicatedServer console;
      protected final DedicatedPlayerList playerList;
-@@ -427,24 +428,7 @@ public final class CraftServer implements Server {
+@@ -426,24 +427,7 @@ public final class CraftServer implements Server {
      }
  
      public void loadPlugins() {
@@ -7033,7 +7033,7 @@ index 5e08b8368d81153cf22ef9ae605fe5250464a283..8c32ad9cbbe8bc9693493eee97834aaf
      }
  
      public void enablePlugins(PluginLoadOrder type) {
-@@ -533,15 +517,17 @@ public final class CraftServer implements Server {
+@@ -532,15 +516,17 @@ public final class CraftServer implements Server {
      private void enablePlugin(Plugin plugin) {
          try {
              List<Permission> perms = plugin.getDescription().getPermissions();
@@ -7057,7 +7057,7 @@ index 5e08b8368d81153cf22ef9ae605fe5250464a283..8c32ad9cbbe8bc9693493eee97834aaf
  
              this.pluginManager.enablePlugin(plugin);
          } catch (Throwable ex) {
-@@ -967,6 +953,7 @@ public final class CraftServer implements Server {
+@@ -966,6 +952,7 @@ public final class CraftServer implements Server {
                  "This plugin is not properly shutting down its async tasks when it is being reloaded.  This may cause conflicts with the newly loaded version of the plugin"
              ));
          }
@@ -7083,10 +7083,10 @@ index 909b2c98e7a9117d2f737245e4661792ffafb744..d96399e9bf1a58db5a4a22e58abb99e7
      @Override
      public FileConfiguration getConfig() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 83ccadcc7139054e1ba3e1c1f0bf23c67c3c97c8..7546538312dbbd36e014677dce843433cb25d2a9 100644
+index c72179ff4eb4b2b479da302f648eff85a6345f34..9e08622fbee6d1e4f5b320a6d9780a8b88f34457 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -438,6 +438,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -419,6 +419,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
          net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack);
          return nmsItemStack.getItem().getDescriptionId(nmsItemStack);
      }
diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch
index fa5f839e0b1b..8fcfb50cdfd1 100644
--- a/patches/server/0014-Timings-v2.patch
+++ b/patches/server/0014-Timings-v2.patch
@@ -1636,10 +1636,10 @@ index 0eb09ce5c850d85ffd7229d27cf06b3e0edda11b..cc1d7626a82881c4410d65c6a33dadae
          };
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8c32ad9cbbe8bc9693493eee97834aaf20633ed7..71a0bad7402ec1ba48dcecb875fcad294af0f70e 100644
+index bf4a82c183ad0aa148c6c14615d2d2606a8befb3..319be97869dcc8fb1baed483633612bae17a491a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -377,7 +377,7 @@ public final class CraftServer implements Server {
+@@ -376,7 +376,7 @@ public final class CraftServer implements Server {
          this.saveCommandsConfig();
          this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
          this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1648,7 +1648,7 @@ index 8c32ad9cbbe8bc9693493eee97834aaf20633ed7..71a0bad7402ec1ba48dcecb875fcad29
          this.overrideSpawnLimits();
          console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
          this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
-@@ -2453,12 +2453,31 @@ public final class CraftServer implements Server {
+@@ -2452,12 +2452,31 @@ public final class CraftServer implements Server {
      private final org.bukkit.Server.Spigot spigot = new org.bukkit.Server.Spigot()
      {
  
@@ -1850,7 +1850,7 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000
 -    }
 -}
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5b3749feed210da7f62deab5672a40ec396eedc8..aa8ec0a92c8bca78088a2b30f571587823dd79bb 100644
+index c6e13e9c688eb48518e7b5255521310c17ea452c..ed17c517db079920e3bd11753ebdcb40b7054b43 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2566,6 +2566,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2050,10 +2050,10 @@ index f97eccb6a17c7876e1e002d798eb67bbe80571a0..76effc345d362047e64d064eb64a5222
 +    } // Paper
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 7546538312dbbd36e014677dce843433cb25d2a9..a638d67f9ab67c6564b3c44c6971d98995bdb203 100644
+index 9e08622fbee6d1e4f5b320a6d9780a8b88f34457..1ea2d4a1b378694120d599f52cc07922831f5a65 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -225,6 +225,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -206,6 +206,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
      }
      // Paper end
      // ========================================================================
@@ -2066,7 +2066,7 @@ index 7546538312dbbd36e014677dce843433cb25d2a9..a638d67f9ab67c6564b3c44c6971d989
  
      public static byte toLegacyData(BlockState data) {
          return CraftLegacy.toLegacyData(data);
-@@ -451,6 +457,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -432,6 +438,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
          return CraftFeatureFlag.getFromNMS(namespacedKey);
      }
  
diff --git a/patches/server/0018-Rewrite-chunk-system.patch b/patches/server/0018-Rewrite-chunk-system.patch
index 50757905e192..0a009c7e9a31 100644
--- a/patches/server/0018-Rewrite-chunk-system.patch
+++ b/patches/server/0018-Rewrite-chunk-system.patch
@@ -22766,10 +22766,10 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..ac807277a6b26d140ea9873d17c7aa4f
  
              for(SavedTick<T> savedTick : this.pendingTicks) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-index bf4b2f89d3a7133155c6272379c742318b2c1514..33677ec811ceab939c419bf7d31b99585e9a1ef1 100644
+index 762d37ab5a98b19514c8ec38cb3f2ecdf1e5ba8e..4efdde5f48f50db57fdd70f84bf36a768e2601ea 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-@@ -111,7 +111,7 @@ public class CraftChunk implements Chunk {
+@@ -112,7 +112,7 @@ public class CraftChunk implements Chunk {
  
      @Override
      public boolean isEntitiesLoaded() {
@@ -22778,7 +22778,7 @@ index bf4b2f89d3a7133155c6272379c742318b2c1514..33677ec811ceab939c419bf7d31b9958
      }
  
      @Override
-@@ -120,51 +120,7 @@ public class CraftChunk implements Chunk {
+@@ -121,51 +121,7 @@ public class CraftChunk implements Chunk {
              this.getWorld().getChunkAt(x, z); // Transient load for this tick
          }
  
@@ -22832,10 +22832,10 @@ index bf4b2f89d3a7133155c6272379c742318b2c1514..33677ec811ceab939c419bf7d31b9958
  
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 71a0bad7402ec1ba48dcecb875fcad294af0f70e..e0b8aa7f17d98d7b686faf5422db4b4def12ee90 100644
+index 319be97869dcc8fb1baed483633612bae17a491a..8377270a5daa3257cd9799e242fe8894a6d22c5c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1161,7 +1161,7 @@ public final class CraftServer implements Server {
+@@ -1160,7 +1160,7 @@ public final class CraftServer implements Server {
          this.console.addLevel(internal);
  
          this.getServer().prepareLevels(internal.getChunkSource().chunkMap.progressListener, internal);
@@ -22844,7 +22844,7 @@ index 71a0bad7402ec1ba48dcecb875fcad294af0f70e..e0b8aa7f17d98d7b686faf5422db4b4d
  
          this.pluginManager.callEvent(new WorldLoadEvent(internal.getWorld()));
          return internal.getWorld();
-@@ -1205,7 +1205,7 @@ public final class CraftServer implements Server {
+@@ -1204,7 +1204,7 @@ public final class CraftServer implements Server {
              }
  
              handle.getChunkSource().close(save);
@@ -22853,7 +22853,7 @@ index 71a0bad7402ec1ba48dcecb875fcad294af0f70e..e0b8aa7f17d98d7b686faf5422db4b4d
              handle.convertable.close();
          } catch (Exception ex) {
              this.getLogger().log(Level.SEVERE, null, ex);
-@@ -2036,7 +2036,7 @@ public final class CraftServer implements Server {
+@@ -2035,7 +2035,7 @@ public final class CraftServer implements Server {
  
      @Override
      public boolean isPrimaryThread() {
@@ -22863,7 +22863,7 @@ index 71a0bad7402ec1ba48dcecb875fcad294af0f70e..e0b8aa7f17d98d7b686faf5422db4b4d
  
      // Paper start - Adventure
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d01388bbadf3069357cf52463f4104a1be4d2b56..f4f94185cf699582737aecee1d3623c7857fbbb5 100644
+index 296cd22069ed95b35c59191def2ff568f49a944f..a41c937d8b4648c900bf6b5d4c47fcd0bbc72401 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -322,10 +322,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -22982,7 +22982,7 @@ index d01388bbadf3069357cf52463f4104a1be4d2b56..f4f94185cf699582737aecee1d3623c7
      // Spigot start
      private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index aa8ec0a92c8bca78088a2b30f571587823dd79bb..0c716967f19783e8e02c777835b63ed8126a80d9 100644
+index ed17c517db079920e3bd11753ebdcb40b7054b43..efd64bfd21a277eb775877382f3f50f86699d8bc 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -197,6 +197,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -23035,7 +23035,7 @@ index aa8ec0a92c8bca78088a2b30f571587823dd79bb..0c716967f19783e8e02c777835b63ed8
          return this.getHandle().getGameProfile();
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
-index 02173e8d859d6731836239e0d2dff2be4680e7d1..c3972ba41ad61af4c423e6f942ac984dc61716f0 100644
+index 20592dc147f4f0b84928dabcfa349622f1de691c..d46ccc3b3aaacf937631a44a7e0f91b793a83c86 100644
 --- a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
 +++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
 @@ -265,7 +265,7 @@ public class CustomChunkGenerator extends InternalChunkGenerator {
diff --git a/patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch
index e54648011732..f2cc63115440 100644
--- a/patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch
+++ b/patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the
 ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e0b8aa7f17d98d7b686faf5422db4b4def12ee90..c3d5a05d847ee7d32cfb227b3445a92762df31d0 100644
+index 8377270a5daa3257cd9799e242fe8894a6d22c5c..d1b6c5689e036285515f74263d6b6bc7c32af108 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -431,6 +431,35 @@ public final class CraftServer implements Server {
+@@ -430,6 +430,35 @@ public final class CraftServer implements Server {
          io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.INSTANCE.enter(io.papermc.paper.plugin.entrypoint.Entrypoint.PLUGIN); // Paper - replace implementation
      }
  
diff --git a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
index bf3d04ec7482..5545cdd8684b 100644
--- a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
+++ b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
@@ -19,10 +19,10 @@ index 151259cc254d4e796e6af810e37eaa30b832daa3..ce626187e7ffda51a54225fa6e43b817
  
      public SystemReport fillSystemReport(SystemReport details) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c3d5a05d847ee7d32cfb227b3445a92762df31d0..30c0dd03f56a627e1c2516edf538193f4a0df588 100644
+index d1b6c5689e036285515f74263d6b6bc7c32af108..4327b8da53f2417ef3dabd221e0caf792c55dd6e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -266,7 +266,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -265,7 +265,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
  import net.md_5.bungee.api.chat.BaseComponent; // Spigot
  
  public final class CraftServer implements Server {
diff --git a/patches/server/0028-Implement-Paper-VersionChecker.patch b/patches/server/0028-Implement-Paper-VersionChecker.patch
index ae232d3ec8ae..b266d8791af8 100644
--- a/patches/server/0028-Implement-Paper-VersionChecker.patch
+++ b/patches/server/0028-Implement-Paper-VersionChecker.patch
@@ -140,10 +140,10 @@ index 0000000000000000000000000000000000000000..22a55be34fde453fedd987173d95b8b3
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index a638d67f9ab67c6564b3c44c6971d98995bdb203..6f2b9d0d2cc8b18d74b59bf77fec394d14211a24 100644
+index 1ea2d4a1b378694120d599f52cc07922831f5a65..e7d5006fcf55c5a7ba1cea0dab0edd2bf410247c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -462,6 +462,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -443,6 +443,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
      public String getTimingsServerName() {
          return io.papermc.paper.configuration.GlobalConfiguration.get().timings.serverName;
      }
diff --git a/patches/server/0030-Player-affects-spawning-API.patch b/patches/server/0030-Player-affects-spawning-API.patch
index a7faf3c12410..3f978a87b2ad 100644
--- a/patches/server/0030-Player-affects-spawning-API.patch
+++ b/patches/server/0030-Player-affects-spawning-API.patch
@@ -137,7 +137,7 @@ index 2ec2b1d9d987c7f31c685aec3d3c87f42758c94b..36d793b492d9776ee36f8285b5bab09e
          for(Player player : this.players()) {
              if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0c716967f19783e8e02c777835b63ed8126a80d9..ce81d9c7e5acea4c045321e82d190aa7be87848b 100644
+index efd64bfd21a277eb775877382f3f50f86699d8bc..d2ef107e00995008f3433009d0b22621b4f92f12 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2247,6 +2247,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0031-Further-improve-server-tick-loop.patch b/patches/server/0031-Further-improve-server-tick-loop.patch
index eb08edc74100..cf7b10b32e82 100644
--- a/patches/server/0031-Further-improve-server-tick-loop.patch
+++ b/patches/server/0031-Further-improve-server-tick-loop.patch
@@ -145,10 +145,10 @@ index ce626187e7ffda51a54225fa6e43b817c6c19db8..086be61bfc8a43076b502bbf00e9f2d2
                  this.startMetricsRecordingTick();
                  this.profiler.push("tick");
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 30c0dd03f56a627e1c2516edf538193f4a0df588..9d70513d05515f6ff3f03b5580bd48f127d73ca1 100644
+index 4327b8da53f2417ef3dabd221e0caf792c55dd6e..97801c6b11df3b80ad80d7e6fd03d769c400b417 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2478,6 +2478,17 @@ public final class CraftServer implements Server {
+@@ -2477,6 +2477,17 @@ public final class CraftServer implements Server {
          return CraftMagicNumbers.INSTANCE;
      }
  
diff --git a/patches/server/0032-Only-refresh-abilities-if-needed.patch b/patches/server/0032-Only-refresh-abilities-if-needed.patch
index 8418c5551172..aa0076b5602c 100644
--- a/patches/server/0032-Only-refresh-abilities-if-needed.patch
+++ b/patches/server/0032-Only-refresh-abilities-if-needed.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Only refresh abilities if needed
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ce81d9c7e5acea4c045321e82d190aa7be87848b..248b424939740e1d9208398c2c649efce0c99cf9 100644
+index d2ef107e00995008f3433009d0b22621b4f92f12..b3278a5f44dbbca937c499a2f3ae852052911d7b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1920,12 +1920,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0033-Entity-Origin-API.patch b/patches/server/0033-Entity-Origin-API.patch
index bcc8c0f7ae24..39662b583897 100644
--- a/patches/server/0033-Entity-Origin-API.patch
+++ b/patches/server/0033-Entity-Origin-API.patch
@@ -132,10 +132,10 @@ index 415b8822f0dfb14d49bccb2a10ac04025891ddf7..89fd5d6b373d2705dccc2f22663048f4
  
      @Nullable
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 2a20ebeeb6156ff74a52e8e0168de6b60f6e72cf..9b4e28353892240debc2d2d48876c5640d479ae9 100644
+index c888dce92fa4c26bbbeba7eab299841b01732e6b..38ef3c68cb8581c4f069362d1fc1d5d2b5171ba9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1256,5 +1256,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1255,5 +1255,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
  
          return ret;
      }
diff --git a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
index 37c8b1d7e6c8..0563c92b71d4 100644
--- a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
+++ b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
@@ -39,7 +39,7 @@ index 10a99aff9632db578d19683675ba12242ae6970b..77668e9534f6d68755020cbae09aae5d
          // CraftBukkit end
          this.language = clientOptions.language();
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 248b424939740e1d9208398c2c649efce0c99cf9..b8fc211d72e860c85ca39b03574db3a7b18e369f 100644
+index b3278a5f44dbbca937c499a2f3ae852052911d7b..ca8c713342c7e217c8bbcd2c92309ad188f7dd27 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2245,7 +2245,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0048-Use-UserCache-for-player-heads.patch b/patches/server/0048-Use-UserCache-for-player-heads.patch
index d4024986afde..d6c1026d3bf2 100644
--- a/patches/server/0048-Use-UserCache-for-player-heads.patch
+++ b/patches/server/0048-Use-UserCache-for-player-heads.patch
@@ -5,19 +5,19 @@ Subject: [PATCH] Use UserCache for player heads
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
-index 0a6003248178d239c8b9a81a558f6bcf1173f00a..f8e2315845b15af230f43521b53f943ee58b9117 100644
+index 5daa02d65eb4ca046b2e5dd6b2239ca3692752ee..b202f425cbb880079b9e3ec64d077482d7aa5f99 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
 @@ -211,7 +211,13 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
          if (name == null) {
              this.setProfile(null);
          } else {
--            this.setProfile(new CraftGameProfile(null, name));
+-            this.setProfile(new GameProfile(Util.NIL_UUID, name));
 +            // Paper start - Use Online Players Skull
 +            GameProfile newProfile = null;
 +            net.minecraft.server.level.ServerPlayer player = net.minecraft.server.MinecraftServer.getServer().getPlayerList().getPlayerByName(name);
 +            if (player != null) newProfile = player.getGameProfile();
-+            if (newProfile == null) newProfile = new CraftGameProfile(null, name);
++            if (newProfile == null) newProfile = new GameProfile(Util.NIL_UUID, name);
 +            this.setProfile(newProfile);
 +            // Paper end
          }
diff --git a/patches/server/0052-Improve-Player-chat-API-handling.patch b/patches/server/0052-Improve-Player-chat-API-handling.patch
index de6a05cf4edb..78895f8fb8f6 100644
--- a/patches/server/0052-Improve-Player-chat-API-handling.patch
+++ b/patches/server/0052-Improve-Player-chat-API-handling.patch
@@ -40,10 +40,10 @@ index ea53b30fb9b9e0b2b9751b7a2675259fe85c66e4..4376e09828655444d1339020a2676c67
          if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
          this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9d70513d05515f6ff3f03b5580bd48f127d73ca1..81d2d940fef25a9fb5caccbf4e2c0c9d4ece71c9 100644
+index 97801c6b11df3b80ad80d7e6fd03d769c400b417..0afb5b57fdd027b0a5aa05c4710b4ebb9c3d12ac 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -889,7 +889,7 @@ public final class CraftServer implements Server {
+@@ -888,7 +888,7 @@ public final class CraftServer implements Server {
      public boolean dispatchCommand(CommandSender sender, String commandLine) {
          Preconditions.checkArgument(sender != null, "sender cannot be null");
          Preconditions.checkArgument(commandLine != null, "commandLine cannot be null");
@@ -53,7 +53,7 @@ index 9d70513d05515f6ff3f03b5580bd48f127d73ca1..81d2d940fef25a9fb5caccbf4e2c0c9d
          if (this.commandMap.dispatch(sender, commandLine)) {
              return true;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b8fc211d72e860c85ca39b03574db3a7b18e369f..530fba6fa83c3e87ec2501e6aa6997c108dae6d1 100644
+index ca8c713342c7e217c8bbcd2c92309ad188f7dd27..422ed20cf1d77c0b7fa0a674a5bba95cb7cbc2df 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -494,7 +494,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0053-All-chunks-are-slime-spawn-chunks-toggle.patch b/patches/server/0053-All-chunks-are-slime-spawn-chunks-toggle.patch
index 673744942c48..b4aefa5a78b6 100644
--- a/patches/server/0053-All-chunks-are-slime-spawn-chunks-toggle.patch
+++ b/patches/server/0053-All-chunks-are-slime-spawn-chunks-toggle.patch
@@ -18,10 +18,10 @@ index 2e343d108714bd136ab8e7b20acbf241166177de..382cdfd7d7dceeeffed1cdc34b9e475a
              if (random.nextInt(10) == 0 && flag && pos.getY() < 40) {
                  return checkMobSpawnRules(type, world, spawnReason, pos, random);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-index 33677ec811ceab939c419bf7d31b99585e9a1ef1..8ae78690748b2cb5d5186d8859871c1630e10130 100644
+index 4efdde5f48f50db57fdd70f84bf36a768e2601ea..5473e6ffe55c6e0a0947356e89831d71a86cf6a5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-@@ -169,7 +169,7 @@ public class CraftChunk implements Chunk {
+@@ -170,7 +170,7 @@ public class CraftChunk implements Chunk {
      @Override
      public boolean isSlimeChunk() {
          // 987234911L is deterimined in EntitySlime when seeing if a slime can spawn in a chunk
diff --git a/patches/server/0054-Expose-server-CommandMap.patch b/patches/server/0054-Expose-server-CommandMap.patch
index ffe646ca1ba7..9df929b13e6e 100644
--- a/patches/server/0054-Expose-server-CommandMap.patch
+++ b/patches/server/0054-Expose-server-CommandMap.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 81d2d940fef25a9fb5caccbf4e2c0c9d4ece71c9..bfcb1e2959e33e4e0cce78e0756cd13253662790 100644
+index 0afb5b57fdd027b0a5aa05c4710b4ebb9c3d12ac..afb8f7c86558f9f72858d0e490c174d24bfcc670 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2018,6 +2018,7 @@ public final class CraftServer implements Server {
+@@ -2017,6 +2017,7 @@ public final class CraftServer implements Server {
          return this.helpMap;
      }
  
diff --git a/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch b/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
index 91d9516b57c0..e503e432e0de 100644
--- a/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
+++ b/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Be a bit more informative in maxHealth exception
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 3f8914d800d6aceb02a1c2cbed9e5f9ecc471f86..6f1554cf7cb3707d757c40791695af679e919d28 100644
+index c6f15e2626b6c9d451173dac28c7bdb5f14097d8..d75d98eb7f1699d3b180d11573628c3dd6704c76 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -102,7 +102,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
index 6db44193b4a9..3a362168db9f 100644
--- a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
+++ b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
@@ -63,7 +63,7 @@ index bd808eb312ade7122973a47f4b96505829511da5..bf0f9cab7c66c089f35b851e799ba4a4
          // Paper end
          buf.writeComponent(this.text);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 530fba6fa83c3e87ec2501e6aa6997c108dae6d1..9c66e4b6f36f634a7fe25b630b9f2e65a7b50153 100644
+index 422ed20cf1d77c0b7fa0a674a5bba95cb7cbc2df..e5b4aa1edb3f48b7356dbf25d7aba4ab6053ba03 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1,5 +1,6 @@
diff --git a/patches/server/0058-Add-velocity-warnings.patch b/patches/server/0058-Add-velocity-warnings.patch
index 1eb5e79e8db6..572316a1019d 100644
--- a/patches/server/0058-Add-velocity-warnings.patch
+++ b/patches/server/0058-Add-velocity-warnings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add velocity warnings
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index bfcb1e2959e33e4e0cce78e0756cd13253662790..7ae7ad27e8e6731a81a4bcb3e4dd0ed20d0373de 100644
+index afb8f7c86558f9f72858d0e490c174d24bfcc670..25ffb95d7d4a5b34577b1e343516996630a14705 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -302,6 +302,7 @@ public final class CraftServer implements Server {
+@@ -301,6 +301,7 @@ public final class CraftServer implements Server {
      public boolean ignoreVanillaPermissions = false;
      private final List<CraftPlayer> playerView;
      public int reloadCount;
@@ -17,10 +17,10 @@ index bfcb1e2959e33e4e0cce78e0756cd13253662790..7ae7ad27e8e6731a81a4bcb3e4dd0ed2
      static {
          ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 9b4e28353892240debc2d2d48876c5640d479ae9..5767eefb09d9e0e3a3d5a006242220b844d28055 100644
+index 38ef3c68cb8581c4f069362d1fc1d5d2b5171ba9..526fd29c425df1eee3b0d3502d2272605c216c19 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -471,10 +471,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -470,10 +470,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
      public void setVelocity(Vector velocity) {
          Preconditions.checkArgument(velocity != null, "velocity");
          velocity.checkFinite();
diff --git a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
index d6403829a697..c9fcb4800aba 100644
--- a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
+++ b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
@@ -16,7 +16,7 @@ The wanted destination was on top of the emerald block however the player ended
 This only is the case if the player is teleporting between worlds.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 9c66e4b6f36f634a7fe25b630b9f2e65a7b50153..26ca5b2c4216f95c1f7a74245c271bdddd111c4d 100644
+index e5b4aa1edb3f48b7356dbf25d7aba4ab6053ba03..648c5fd5fe3b2f07b6b5ada7e0d48999db9a6392 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1162,7 +1162,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
index da1b18d977d6..456609a5881c 100644
--- a/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
+++ b/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
@@ -7,7 +7,7 @@ Upstream added methods for this, original methods are now
 deprecated
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 6f1554cf7cb3707d757c40791695af679e919d28..184ba082edac85a7df16eeebc4473a1a193b6a26 100644
+index d75d98eb7f1699d3b180d11573628c3dd6704c76..166dfd2cde916709ef952216643bb7b92e9e1600 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -267,9 +267,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0065-Complete-resource-pack-API.patch b/patches/server/0065-Complete-resource-pack-API.patch
index 31ea6c68d98f..425b65e748e4 100644
--- a/patches/server/0065-Complete-resource-pack-API.patch
+++ b/patches/server/0065-Complete-resource-pack-API.patch
@@ -22,7 +22,7 @@ index b9062fe651de34d5b3f9d5f146ae0b4fe29cbfee..e8b12a8ae009023afa2818ecbf398a14
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 26ca5b2c4216f95c1f7a74245c271bdddd111c4d..4a784d3c8454549ddeaba18d36a7182059401c91 100644
+index 648c5fd5fe3b2f07b6b5ada7e0d48999db9a6392..ec1cbd610250d11536f8fc42e769b749380dc95e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -191,6 +191,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
index 9cd9a40b36ff..1ac629bc417f 100644
--- a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
+++ b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
@@ -16,10 +16,10 @@ modify that. Under the previous logic, plugins were unable (cleanly) override pe
 A config option has been added for those who depend on the previous behavior, but I don't expect that.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7ae7ad27e8e6731a81a4bcb3e4dd0ed20d0373de..311226bce4d6103ae9e8c6e4b49ccb90afcfb64d 100644
+index 25ffb95d7d4a5b34577b1e343516996630a14705..99521b04cb5d3fd6ab5fbf5b663a30c20b0341aa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -465,6 +465,7 @@ public final class CraftServer implements Server {
+@@ -464,6 +464,7 @@ public final class CraftServer implements Server {
          if (type == PluginLoadOrder.STARTUP) {
              this.helpMap.clear();
              this.helpMap.initializeGeneralTopics();
@@ -27,7 +27,7 @@ index 7ae7ad27e8e6731a81a4bcb3e4dd0ed20d0373de..311226bce4d6103ae9e8c6e4b49ccb90
          }
  
          Plugin[] plugins = this.pluginManager.getPlugins();
-@@ -484,7 +485,7 @@ public final class CraftServer implements Server {
+@@ -483,7 +484,7 @@ public final class CraftServer implements Server {
              this.commandMap.registerServerAliases();
              DefaultPermissions.registerCorePermissions();
              CraftDefaultPermissions.registerCorePermissions();
diff --git a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
index f3a5dc77663d..54c12a220564 100644
--- a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
+++ b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions
 https://github.com/PaperMC/Paper/issues/49
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 311226bce4d6103ae9e8c6e4b49ccb90afcfb64d..f101155cf3ae72c0c810714cc4ad319d1116b4e0 100644
+index 99521b04cb5d3fd6ab5fbf5b663a30c20b0341aa..135fe9abe46d31cdf3a5fb3fb3dfd296e658e2cf 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2622,5 +2622,23 @@ public final class CraftServer implements Server {
+@@ -2621,5 +2621,23 @@ public final class CraftServer implements Server {
          }
          return this.adventure$audiences;
      }
diff --git a/patches/server/0068-Remove-Metadata-on-reload.patch b/patches/server/0068-Remove-Metadata-on-reload.patch
index ddc5f1b1d356..c96e0c02a2d7 100644
--- a/patches/server/0068-Remove-Metadata-on-reload.patch
+++ b/patches/server/0068-Remove-Metadata-on-reload.patch
@@ -7,10 +7,10 @@ Metadata is not meant to persist reload as things break badly with non primitive
 This will remove metadata on reload so it does not crash everything if a plugin uses it.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index f101155cf3ae72c0c810714cc4ad319d1116b4e0..0476ae7a485c2ac74b39965f0727fbfd372c3be2 100644
+index 135fe9abe46d31cdf3a5fb3fb3dfd296e658e2cf..69934e156db7fdec00b6b77b20835894a1e3dcb3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -956,8 +956,16 @@ public final class CraftServer implements Server {
+@@ -955,8 +955,16 @@ public final class CraftServer implements Server {
              world.spigotConfig.init(); // Spigot
          }
  
diff --git a/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
index 50cf52faca06..7a39dc5c560c 100644
--- a/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
+++ b/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
@@ -187,7 +187,7 @@ index 40aad6a209fbded448e3db21207a85d9f2875e71..4dcbd1ed61070c12adf5871a595875ca
  
      static Map<Enchantment, Integer> getEnchantments(net.minecraft.world.item.ItemStack item) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881aaf89817d 100644
+index ed81ad09313730173cc5d5617d67da4ae2bf3e78..bea70b11dcd3039f22b1891f2ea3d86c79367024 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 @@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList;
@@ -214,7 +214,7 @@ index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881a
  import java.util.logging.Level;
  import java.util.logging.Logger;
  import javax.annotation.Nonnull;
-@@ -275,7 +278,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -276,7 +279,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
      private List<String> lore; // null and empty are two different states internally
      private Integer customModelData;
      private CompoundTag blockData;
@@ -223,7 +223,7 @@ index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881a
      private Multimap<Attribute, AttributeModifier> attributeModifiers;
      private int repairCost;
      private int hideFlag;
-@@ -286,7 +289,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -287,7 +290,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
      private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
  
      private CompoundTag internalTag;
@@ -232,7 +232,7 @@ index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881a
      private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY);
  
      private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only
-@@ -307,7 +310,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -308,7 +311,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          this.blockData = meta.blockData;
  
          if (meta.enchantments != null) { // Spigot
@@ -241,7 +241,7 @@ index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881a
          }
  
          if (meta.hasAttributeModifiers()) {
-@@ -390,13 +393,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -391,13 +394,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          }
      }
  
@@ -257,7 +257,7 @@ index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881a
  
          for (int i = 0; i < ench.size(); i++) {
              String id = ((CompoundTag) ench.get(i)).getString(ENCHANTMENTS_ID.NBT);
-@@ -549,13 +552,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -550,13 +553,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          }
      }
  
@@ -273,7 +273,7 @@ index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881a
          for (Map.Entry<?, ?> entry : ench.entrySet()) {
              // Doctor older enchants
              String enchantKey = entry.getKey().toString();
-@@ -831,14 +834,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -832,14 +835,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
  
      @Override
      public Map<Enchantment, Integer> getEnchants() {
@@ -290,7 +290,7 @@ index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881a
          }
  
          if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) {
-@@ -1227,7 +1230,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1228,7 +1231,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
              clone.customModelData = this.customModelData;
              clone.blockData = this.blockData;
              if (this.enchantments != null) {
@@ -299,7 +299,7 @@ index 44244166ec4e8ac070404101219efbc0e5f1d168..092695d4b45205fe2290f8f4375e881a
              }
              if (this.hasAttributeModifiers()) {
                  clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
-@@ -1469,4 +1472,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1470,4 +1473,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
              return CraftMetaItem.HANDLED_TAGS;
          }
      }
diff --git a/patches/server/0074-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0074-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index dd675859bd83..e0f98a51ef83 100644
--- a/patches/server/0074-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0074-handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -44,7 +44,7 @@ index c5d4f36dda7c977b3a7563f4d2d74ebcf7dc61ef..fa03c3a9debe419dd4e60764de4d9544
  
      protected void internalSetAbsorptionAmount(float absorptionAmount) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4a784d3c8454549ddeaba18d36a7182059401c91..bedeae40c7a88b7c13babb9ef8c94983a2ac4fef 100644
+index ec1cbd610250d11536f8fc42e769b749380dc95e..7f9dceaf41426a88d682774c30a959db368fd03b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2165,6 +2165,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0106-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0106-Add-setting-for-proxy-online-mode-status.patch
index 3e700955a0e7..1a974e7c8e92 100644
--- a/patches/server/0106-Add-setting-for-proxy-online-mode-status.patch
+++ b/patches/server/0106-Add-setting-for-proxy-online-mode-status.patch
@@ -43,10 +43,10 @@ index 0214830d9bc98b8d435ff11f40df65596980cf77..5db27d7bcaaa2eeaeeb08401513d8d23
          } 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 0476ae7a485c2ac74b39965f0727fbfd372c3be2..649f9a5604da73f332ad6c9725bddab5e85f1ae7 100644
+index 69934e156db7fdec00b6b77b20835894a1e3dcb3..085c11983884911a61bc96a6df07ad8a96657e6c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1727,7 +1727,7 @@ public final class CraftServer implements Server {
+@@ -1726,7 +1726,7 @@ public final class CraftServer implements Server {
              // Spigot Start
              GameProfile profile = null;
              // Only fetch an online UUID in online mode
diff --git a/patches/server/0110-Add-EntityZapEvent.patch b/patches/server/0110-Add-EntityZapEvent.patch
index a4f9bbdf78ac..6b786427d4ce 100644
--- a/patches/server/0110-Add-EntityZapEvent.patch
+++ b/patches/server/0110-Add-EntityZapEvent.patch
@@ -28,7 +28,7 @@ index 2f97e4f0078cecbcf044d0b27f375638a6ea047b..b70ee1dff0442de32a9e20ad54b246d5
                  entitywitch.finalizeSpawn(world, world.getCurrentDifficultyAt(entitywitch.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null, (CompoundTag) 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 8e1bb9d86ec12240b00ee118a88ebe4dec4e6329..e974520bb5c069229b214962a5e377b92c07e339 100644
+index 52a5f1a6585abe42018e8758c5ac462bfb0fe1d1..4d19bb09c3f6090de552982a8722c742892913eb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1240,6 +1240,14 @@ public class CraftEventFactory {
diff --git a/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch b/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch
index 26dff2948318..099a0a09eb74 100644
--- a/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch
+++ b/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch
@@ -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 649f9a5604da73f332ad6c9725bddab5e85f1ae7..9e198a0547c17c2f913ff9fc35bfb22b335a0b95 100644
+index 085c11983884911a61bc96a6df07ad8a96657e6c..c3d60b4fe6e19e7c67926529b650bd61eaf869d2 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2648,5 +2648,24 @@ public final class CraftServer implements Server {
+@@ -2647,5 +2647,24 @@ public final class CraftServer implements Server {
          DefaultPermissions.registerCorePermissions();
          CraftDefaultPermissions.registerCorePermissions();
      }
diff --git a/patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch b/patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch
index fe5b42189d65..8e82cad32b6f 100644
--- a/patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch
+++ b/patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch
@@ -18,7 +18,7 @@ index 93c83cfedc7d3a169ad0504aa6e63f600873501b..9dffdfe5bbd0517e9a2c6a6770eea07b
  
                  --this.count;
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index e974520bb5c069229b214962a5e377b92c07e339..db681778c2eae84b1e564413ba239b7300ea1789 100644
+index 4d19bb09c3f6090de552982a8722c742892913eb..6e6060563fad15c5c2c0d0248bce067aa3104572 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1193,6 +1193,17 @@ public class CraftEventFactory {
diff --git a/patches/server/0115-Add-ProjectileCollideEvent.patch b/patches/server/0115-Add-ProjectileCollideEvent.patch
index 5bf5f3b5fb10..5b301d354fa8 100644
--- a/patches/server/0115-Add-ProjectileCollideEvent.patch
+++ b/patches/server/0115-Add-ProjectileCollideEvent.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add ProjectileCollideEvent
 Deprecated now and replaced with ProjectileHitEvent
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index db681778c2eae84b1e564413ba239b7300ea1789..f51a0e99d7e3ad6379057175931cf95e863b45dd 100644
+index 6e6060563fad15c5c2c0d0248bce067aa3104572..9546f716da41aef994d8e3799bdf5c6b74e96ad6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1337,6 +1337,17 @@ public class CraftEventFactory {
diff --git a/patches/server/0121-String-based-Action-Bar-API.patch b/patches/server/0121-String-based-Action-Bar-API.patch
index f597ed311869..e4802216d8e5 100644
--- a/patches/server/0121-String-based-Action-Bar-API.patch
+++ b/patches/server/0121-String-based-Action-Bar-API.patch
@@ -26,7 +26,7 @@ index 32ef3edebe94a2014168b7e438752a80b2687e5f..ab6c58eed6707ab7b0aa3e7549a871ad
          // Paper end
          buf.writeComponent(this.text);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index bedeae40c7a88b7c13babb9ef8c94983a2ac4fef..18db64ff86517c7ceb98590c0c91e0c21855db72 100644
+index 7f9dceaf41426a88d682774c30a959db368fd03b..8c37947e9bc58f537691f2d83e2f419fc9f10d8e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -342,6 +342,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0125-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/server/0125-Provide-E-TE-Chunk-count-stat-methods.patch
index 6324b3651550..4ef6fbe14388 100644
--- a/patches/server/0125-Provide-E-TE-Chunk-count-stat-methods.patch
+++ b/patches/server/0125-Provide-E-TE-Chunk-count-stat-methods.patch
@@ -20,7 +20,7 @@ index 7b681914b7f9e7fb6d2ea607e0d63ca7024a7ec3..7cfcbc1e38f5e9145c827dfe26299277
      private final List<TickingBlockEntity> pendingBlockEntityTickers = Lists.newArrayList();
      private boolean tickingBlockEntities;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index f4f94185cf699582737aecee1d3623c7857fbbb5..6b0dba6f7211500ba5950a76d2b2252a09f65103 100644
+index a41c937d8b4648c900bf6b5d4c47fcd0bbc72401..53a5f6709bca2aa76297e55e555cbfeb38e8ad4e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -154,6 +154,56 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
index 265dc16abda2..36c67d79315b 100644
--- a/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
+++ b/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
@@ -324,10 +324,10 @@ index e72ed2ed8664cbc408cbe1e38f1f0acacc3841dd..2f628f36c32752d1bac910e180b90639
  
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 8e1d70bbc433780f264dde137aa7f37e7f6362cd..3dd759d030411420f93eb5ac51f2087ecbf2dc49 100644
+index 8beb4670fffa2df0a9bd64ebb8810b25ce670f16..134b138abdf17fae340226ecac3868ad7a993086 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -942,7 +942,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -943,7 +943,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
          } else if (TNTPrimed.class.isAssignableFrom(clazz)) {
              entity = new PrimedTnt(world, x, y, z, null);
          } else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
diff --git a/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
index fb87a15c0ab0..c3879a9497bb 100644
--- a/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
+++ b/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9e198a0547c17c2f913ff9fc35bfb22b335a0b95..d3a9b47ab78844e5cb6a04a790e079fe22bf153c 100644
+index c3d60b4fe6e19e7c67926529b650bd61eaf869d2..7631ccc163b9370eb4f0c181bf1f7ef657dfc828 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2667,5 +2667,10 @@ public final class CraftServer implements Server {
+@@ -2666,5 +2666,10 @@ public final class CraftServer implements Server {
          commandMap.registerServerAliases();
          return true;
      }
diff --git a/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
index f62590803e3f..1f7367ac4944 100644
--- a/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -389,7 +389,7 @@ index 845a90426545b554aaf5c278723c107ba9791270..a3c150e9552fbc9b9244c70508c27f03
  
          this.bans = new UserBanList(PlayerList.USERBANLIST_FILE);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index d3a9b47ab78844e5cb6a04a790e079fe22bf153c..7b019dcb70b430c36112e68c837b2b4aeb1aacc7 100644
+index 7631ccc163b9370eb4f0c181bf1f7ef657dfc828..66de956051f6c5b66f806063869e25430144c6ce 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 @@ -44,7 +44,6 @@ import java.util.logging.Level;
@@ -400,7 +400,7 @@ index d3a9b47ab78844e5cb6a04a790e079fe22bf153c..7b019dcb70b430c36112e68c837b2b4a
  import net.minecraft.advancements.Advancement;
  import net.minecraft.advancements.AdvancementHolder;
  import net.minecraft.commands.CommandSourceStack;
-@@ -1295,9 +1294,13 @@ public final class CraftServer implements Server {
+@@ -1294,9 +1293,13 @@ public final class CraftServer implements Server {
          return this.logger;
      }
  
diff --git a/patches/server/0136-Item-canEntityPickup.patch b/patches/server/0136-Item-canEntityPickup.patch
index b9e7c7eae558..87899f70228a 100644
--- a/patches/server/0136-Item-canEntityPickup.patch
+++ b/patches/server/0136-Item-canEntityPickup.patch
@@ -21,7 +21,7 @@ index 873a96693110982600d3e7979489fb00f3cd7941..645ee527b9e7e7edbf3320eae6e441be
                  }
              }
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index 23c51152288d9616673ef544a09dd816dff44cf6..2d1b8d6e490e1dcde801feaae2518a59ed35e440 100644
+index 11dad6b6c6cf922417ab54a1db13d809c10c999e..adb8ac976397322f0b4122fd9469dd5191f207f7 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -52,6 +52,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
diff --git a/patches/server/0137-PlayerPickupItemEvent-setFlyAtPlayer.patch b/patches/server/0137-PlayerPickupItemEvent-setFlyAtPlayer.patch
index 055fdfe92848..d257dcb087c3 100644
--- a/patches/server/0137-PlayerPickupItemEvent-setFlyAtPlayer.patch
+++ b/patches/server/0137-PlayerPickupItemEvent-setFlyAtPlayer.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] PlayerPickupItemEvent#setFlyAtPlayer
 
 
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index 2d1b8d6e490e1dcde801feaae2518a59ed35e440..0816b5fd4a384e5f8939c6d573666802dceb255c 100644
+index adb8ac976397322f0b4122fd9469dd5191f207f7..4885c8ff438796cf7a90e73e2db32a1877f60fa4 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -404,6 +404,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
diff --git a/patches/server/0138-PlayerAttemptPickupItemEvent.patch b/patches/server/0138-PlayerAttemptPickupItemEvent.patch
index 8ee62f6cc120..10261759743f 100644
--- a/patches/server/0138-PlayerAttemptPickupItemEvent.patch
+++ b/patches/server/0138-PlayerAttemptPickupItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] PlayerAttemptPickupItemEvent
 
 
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index 0816b5fd4a384e5f8939c6d573666802dceb255c..91eba1c571764c88489ea2598fb9b4736554d5cc 100644
+index 4885c8ff438796cf7a90e73e2db32a1877f60fa4..5744d726c4e7a970db5c1c3764d530d839d95597 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -36,6 +36,7 @@ import org.bukkit.entity.Player;
diff --git a/patches/server/0139-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/server/0139-Do-not-submit-profile-lookups-to-worldgen-threads.patch
index edcf1062d418..cbf775fcbe04 100644
--- a/patches/server/0139-Do-not-submit-profile-lookups-to-worldgen-threads.patch
+++ b/patches/server/0139-Do-not-submit-profile-lookups-to-worldgen-threads.patch
@@ -63,7 +63,7 @@ index cf7e64eac9e3eb395a0be0a2a4fa0175a731b6e7..f5162f7171c348ff523b18e577246561
  
      private static boolean hasTextures(GameProfile profile) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
-index 5a21cc441e1c925a7674299073ac374e63b911ec..ac05e268c9f00bca9f8ac19650937eede711810b 100644
+index eef39c0323c57cbe33cee4cd38ad9f48654df2a9..9eafa36b086ed4cde107b81aa9470d1a43e557f1 100644
 --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
 +++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
 @@ -125,7 +125,7 @@ public final class CraftPlayerProfile implements PlayerProfile {
diff --git a/patches/server/0140-Add-UnknownCommandEvent.patch b/patches/server/0140-Add-UnknownCommandEvent.patch
index 98800873f2a8..8c97ad395407 100644
--- a/patches/server/0140-Add-UnknownCommandEvent.patch
+++ b/patches/server/0140-Add-UnknownCommandEvent.patch
@@ -83,10 +83,10 @@ index d1ecf61ffecb8669214ad85334374a4569811de8..e63632f09d608371aaeaf09a6dac57c1
  
                  b1 = 0;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7b019dcb70b430c36112e68c837b2b4aeb1aacc7..66f241411af172e2f44edfc4e8f1b9bda86844e2 100644
+index 66de956051f6c5b66f806063869e25430144c6ce..0ef8750c7c862a44dfb0e15602ef819790c9f1a4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -531,6 +531,7 @@ public final class CraftServer implements Server {
+@@ -530,6 +530,7 @@ public final class CraftServer implements Server {
                      }
                      node = clone;
                  }
@@ -94,7 +94,7 @@ index 7b019dcb70b430c36112e68c837b2b4aeb1aacc7..66f241411af172e2f44edfc4e8f1b9bd
  
                  dispatcher.getDispatcher().getRoot().addChild(node);
              } else {
-@@ -898,7 +899,13 @@ public final class CraftServer implements Server {
+@@ -897,7 +898,13 @@ public final class CraftServer implements Server {
  
          // Spigot start
          if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) {
diff --git a/patches/server/0141-Basic-PlayerProfile-API.patch b/patches/server/0141-Basic-PlayerProfile-API.patch
index 24f2b8352661..10edcc71741e 100644
--- a/patches/server/0141-Basic-PlayerProfile-API.patch
+++ b/patches/server/0141-Basic-PlayerProfile-API.patch
@@ -614,10 +614,10 @@ index c70cd016e1978931d115cfca94664897f0158196..eac9658fa4cab7a651e10e4e18c679e0
          String s1 = name.toLowerCase(Locale.ROOT);
          GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 66f241411af172e2f44edfc4e8f1b9bda86844e2..e42555a01a581a094bc4bd41bf4cd8a9a45bf7c1 100644
+index 0ef8750c7c862a44dfb0e15602ef819790c9f1a4..cfb0846381f5ebfe33fc4074f21fb0993812f75c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -264,6 +264,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -263,6 +263,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
  
  import net.md_5.bungee.api.chat.BaseComponent; // Spigot
  
@@ -627,7 +627,7 @@ index 66f241411af172e2f44edfc4e8f1b9bda86844e2..e42555a01a581a094bc4bd41bf4cd8a9
  public final class CraftServer implements Server {
      private final String serverName = "Paper"; // Paper
      private final String serverVersion;
-@@ -306,6 +309,7 @@ public final class CraftServer implements Server {
+@@ -305,6 +308,7 @@ public final class CraftServer implements Server {
      static {
          ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
          ConfigurationSerialization.registerClass(CraftPlayerProfile.class);
@@ -635,7 +635,7 @@ index 66f241411af172e2f44edfc4e8f1b9bda86844e2..e42555a01a581a094bc4bd41bf4cd8a9
          CraftItemFactory.instance();
      }
  
-@@ -2682,5 +2686,37 @@ public final class CraftServer implements Server {
+@@ -2681,5 +2685,37 @@ public final class CraftServer implements Server {
      public boolean suggestPlayerNamesWhenNullTabCompletions() {
          return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions;
      }
@@ -674,7 +674,7 @@ index 66f241411af172e2f44edfc4e8f1b9bda86844e2..e42555a01a581a094bc4bd41bf4cd8a9
      // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
-index ac05e268c9f00bca9f8ac19650937eede711810b..8d2997efaacbe37d9007861ac871fd2719c2d663 100644
+index 9eafa36b086ed4cde107b81aa9470d1a43e557f1..2d877acc4cb338193449ae37cafb0cfdc452d6b0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
 +++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
 @@ -31,7 +31,7 @@ import org.bukkit.profile.PlayerProfile;
@@ -705,8 +705,8 @@ index ac05e268c9f00bca9f8ac19650937eede711810b..8d2997efaacbe37d9007861ac871fd27
      public Map<String, Object> serialize() {
 +        // Paper - diff on change
          Map<String, Object> map = new LinkedHashMap<>();
-         if (this.uniqueId != null) {
-             map.put("uniqueId", this.uniqueId.toString());
+         if (this.getUniqueId() != null) {
+             map.put("uniqueId", this.getUniqueId().toString());
 @@ -260,10 +263,12 @@ public final class CraftPlayerProfile implements PlayerProfile {
              });
              map.put("properties", propertiesData);
diff --git a/patches/server/0145-Entity-fromMobSpawner.patch b/patches/server/0145-Entity-fromMobSpawner.patch
index bae3882cc4f9..7b500645d956 100644
--- a/patches/server/0145-Entity-fromMobSpawner.patch
+++ b/patches/server/0145-Entity-fromMobSpawner.patch
@@ -49,10 +49,10 @@ index 7ae0465091db8e8061737bf93884afa3db49feeb..5d6403fa27521860a69a707dc4358b01
                          if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) {
                              continue;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 5767eefb09d9e0e3a3d5a006242220b844d28055..a6009f9075035e34150ff692d38cac47930363d1 100644
+index 526fd29c425df1eee3b0d3502d2272605c216c19..d6583c6b77356d15025b961ebed3e20418d71318 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1301,5 +1301,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1300,5 +1300,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          //noinspection ConstantConditions
          return originVector.toLocation(world);
      }
diff --git a/patches/server/0147-Implement-ensureServerConversions-API.patch b/patches/server/0147-Implement-ensureServerConversions-API.patch
index 2567b6e61590..2ea064c94238 100644
--- a/patches/server/0147-Implement-ensureServerConversions-API.patch
+++ b/patches/server/0147-Implement-ensureServerConversions-API.patch
@@ -7,7 +7,7 @@ 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 45872e28cabc655c170bee163d471acf5d913c00..7e9e365fdce960bb266a4616d4bdc6d434cb2187 100644
+index 2fa36de5d43e2c395e0db2017bd994a62a5b2feb..0bd3a2989be4e158ba343da09914328e819a0f89 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 @@ -469,4 +469,11 @@ public final class CraftItemFactory implements ItemFactory {
diff --git a/patches/server/0148-Implement-getI18NDisplayName.patch b/patches/server/0148-Implement-getI18NDisplayName.patch
index 57dc64608b2a..0521ce4580e7 100644
--- a/patches/server/0148-Implement-getI18NDisplayName.patch
+++ b/patches/server/0148-Implement-getI18NDisplayName.patch
@@ -8,7 +8,7 @@ Currently the server only supports the English language. To override this,
 You must replace the language file embedded in the server jar.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 7e9e365fdce960bb266a4616d4bdc6d434cb2187..5aece14ec931f4c564e847a2797e92da8ffb569b 100644
+index 0bd3a2989be4e158ba343da09914328e819a0f89..709c0e9ba7b33e97666ac74412761bb0e770a037 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 @@ -476,4 +476,19 @@ public final class CraftItemFactory implements ItemFactory {
diff --git a/patches/server/0151-LivingEntity-setKiller.patch b/patches/server/0151-LivingEntity-setKiller.patch
index 59c0bf521bb7..99c026dfbf68 100644
--- a/patches/server/0151-LivingEntity-setKiller.patch
+++ b/patches/server/0151-LivingEntity-setKiller.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] LivingEntity#setKiller
 public net.minecraft.world.entity.LivingEntity lastHurtByPlayerTime
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 184ba082edac85a7df16eeebc4473a1a193b6a26..03d791e98d369c1d8fe4a4da11f89301392a934d 100644
+index 166dfd2cde916709ef952216643bb7b92e9e1600..0dd733873606ae47deb5956ed1170d4b9ad3b890 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -365,6 +365,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
index 7a3de7548db6..74ae2a562dcd 100644
--- a/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
+++ b/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
@@ -90,7 +90,7 @@ index 81bfce0374f281069f963c24040163cd968e3958..e50f0ae7ba5e0271e4c0947ea73126c9
  
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 18db64ff86517c7ceb98590c0c91e0c21855db72..4d324d2fc5f9966a6b27391f856c4efec98692c6 100644
+index 8c37947e9bc58f537691f2d83e2f419fc9f10d8e..6595ad35eeec3763cb3df277145c6dc7d5f1b1d6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -288,6 +288,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
index ed44d6131437..85d44b0d75e6 100644
--- a/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
+++ b/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
@@ -51,10 +51,10 @@ index 63acd109a79ed752a05df3d4f1b99309297c2055..d156f7cc71050f13b2feca00c52ca6b6
          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 e5750b2459e5a7513b34d644f672f3e06181172d..3205d86a63f8fcf3ccd13c6be0e0eefc27beb62a 100644
+index b7adb6acf4eca6aad0c9a48223ab47528ef7ce04..8a62231dffcff0260c1c15bd3115b27922c03239 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -332,6 +332,13 @@ public class CraftBlock implements Block {
+@@ -327,6 +327,13 @@ public class CraftBlock implements Block {
          return CraftBlockStates.getBlockState(this);
      }
  
diff --git a/patches/server/0167-AsyncTabCompleteEvent.patch b/patches/server/0167-AsyncTabCompleteEvent.patch
index 7d7ee626729d..830efe82238a 100644
--- a/patches/server/0167-AsyncTabCompleteEvent.patch
+++ b/patches/server/0167-AsyncTabCompleteEvent.patch
@@ -91,10 +91,10 @@ index 1b856ecd7926e90a62045176f75d7ae6f0ac69d5..4ba7ed0a4ff52caa21632f69ab087564
  
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e42555a01a581a094bc4bd41bf4cd8a9a45bf7c1..2c4c8a1a4bb779de970068af5a30505f434029be 100644
+index cfb0846381f5ebfe33fc4074f21fb0993812f75c..1eb5f95848a25a0a002a3ec9e8edf03be63b140a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2132,7 +2132,7 @@ public final class CraftServer implements Server {
+@@ -2131,7 +2131,7 @@ public final class CraftServer implements Server {
              offers = this.tabCompleteChat(player, message);
          }
  
diff --git a/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
index 524104d24182..388526d9f555 100644
--- a/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
@@ -14,7 +14,7 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I
 public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4d324d2fc5f9966a6b27391f856c4efec98692c6..18d7e0ab3c57a3daa819cd20e8ff6cd33b4c2edc 100644
+index 6595ad35eeec3763cb3df277145c6dc7d5f1b1d6..9920a3d81c44972cba742d67764b5066362f79aa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1540,7 +1540,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0171-Add-setPlayerProfile-API-for-Skulls.patch b/patches/server/0171-Add-setPlayerProfile-API-for-Skulls.patch
index ec21bcdbde70..c97292cc20c3 100644
--- a/patches/server/0171-Add-setPlayerProfile-API-for-Skulls.patch
+++ b/patches/server/0171-Add-setPlayerProfile-API-for-Skulls.patch
@@ -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 4650b4cd7f8625ee5e1dba47f47ffa9221e3d097..e193572862fbc78b3adb531fd567c919afdc718e 100644
+index 46f295fb5f4a99924c41e6d0af74dc2437d08186..b47aac01f8d227699aac28a5beac8206802852cc 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
 @@ -107,7 +107,22 @@ public class CraftSkull extends CraftBlockEntityState<SkullBlockEntity> implemen
@@ -48,7 +48,7 @@ index 4650b4cd7f8625ee5e1dba47f47ffa9221e3d097..e193572862fbc78b3adb531fd567c919
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
-index f8e2315845b15af230f43521b53f943ee58b9117..fe7a8e48a620630a6365edd22466f348de0dc508 100644
+index b202f425cbb880079b9e3ec64d077482d7aa5f99..9b9e20014042da4324c9f4babb05d8ba9513f81d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
 @@ -187,6 +187,19 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
diff --git a/patches/server/0175-Add-ArmorStand-Item-Meta.patch b/patches/server/0175-Add-ArmorStand-Item-Meta.patch
index ce31026c1330..a0ed3f16ca69 100644
--- a/patches/server/0175-Add-ArmorStand-Item-Meta.patch
+++ b/patches/server/0175-Add-ArmorStand-Item-Meta.patch
@@ -255,10 +255,10 @@ index 4017933f2244fca32cf9d39444f3a4f550e8af01..e721517ce7b52a1aa10d039aa9f309eb
 +    // 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 092695d4b45205fe2290f8f4375e881aaf89817d..8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff 100644
+index bea70b11dcd3039f22b1891f2ea3d86c79367024..157459f8e9772216229b132f5b9247bcb761072f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -1462,6 +1462,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1463,6 +1463,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
                          CraftMetaCrossbow.CHARGED.NBT,
                          CraftMetaCrossbow.CHARGED_PROJECTILES.NBT,
                          CraftMetaSuspiciousStew.EFFECTS.NBT,
diff --git a/patches/server/0182-Player.setPlayerProfile-API.patch b/patches/server/0182-Player.setPlayerProfile-API.patch
index f6ca0acab5d4..6db730094613 100644
--- a/patches/server/0182-Player.setPlayerProfile-API.patch
+++ b/patches/server/0182-Player.setPlayerProfile-API.patch
@@ -40,7 +40,7 @@ index 41de3c342f1dae9fc6af1b4938a676d337bcf5fa..f870c20ecce27ebd893107a35e1b8f15
                          playerName = gameprofile.getName();
                          uniqueId = gameprofile.getId();
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
-index b17fe83bcd7bde44ee8c1f872fffa8bf40707c50..aac78c13361b19efa7b43a0c95458390f1ba8340 100644
+index 498b14ca0e45b76259450d9a0c8206b1e9f25e70..c1ef6c8c8e5f030e18b6066a509350ee1e195987 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 @@ -81,8 +81,8 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -55,7 +55,7 @@ index b17fe83bcd7bde44ee8c1f872fffa8bf40707c50..aac78c13361b19efa7b43a0c95458390
  
      public Server getServer() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 18d7e0ab3c57a3daa819cd20e8ff6cd33b4c2edc..ec9c0fe82ae5bba9a272d8a834f3f6bcf01cf205 100644
+index 9920a3d81c44972cba742d67764b5066362f79aa..e864252e4fcd0927275d6b9009cdde78d3e289eb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -271,11 +271,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -200,10 +200,10 @@ index 18d7e0ab3c57a3daa819cd20e8ff6cd33b4c2edc..ec9c0fe82ae5bba9a272d8a834f3f6bc
      public void onEntityRemove(Entity entity) {
          this.invertedVisibilityEntities.remove(entity.getUUID());
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 173a2832f029e3d568208a1b56419c1b8501483c..48cdd483c25825571043800f3cfa41a4d723f649 100644
+index 44b73939c465398c8cfda5dbea3280392f194add..aba415ab7203a21e916eadb923cb02c03b679f65 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -329,6 +329,12 @@ public class Commodore
+@@ -338,6 +338,12 @@ public class Commodore
                              return;
                          }
  
diff --git a/patches/server/0183-getPlayerUniqueId-API.patch b/patches/server/0183-getPlayerUniqueId-API.patch
index 8b6772fe455d..36cda224fb40 100644
--- a/patches/server/0183-getPlayerUniqueId-API.patch
+++ b/patches/server/0183-getPlayerUniqueId-API.patch
@@ -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 2c4c8a1a4bb779de970068af5a30505f434029be..70db3c9fc868e6d87f4fc85fd1ae5ac756be7b7d 100644
+index 1eb5f95848a25a0a002a3ec9e8edf03be63b140a..b0f76a563d640360b73cb1779eae74fbf552f54e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1730,6 +1730,25 @@ public final class CraftServer implements Server {
+@@ -1729,6 +1729,25 @@ public final class CraftServer implements Server {
          return recipients.size();
      }
  
diff --git a/patches/server/0187-Flag-to-disable-the-channel-limit.patch b/patches/server/0187-Flag-to-disable-the-channel-limit.patch
index c0de29b0a2c0..48f53078a7f4 100644
--- a/patches/server/0187-Flag-to-disable-the-channel-limit.patch
+++ b/patches/server/0187-Flag-to-disable-the-channel-limit.patch
@@ -9,7 +9,7 @@ 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 ec9c0fe82ae5bba9a272d8a834f3f6bcf01cf205..04b3dc0c856a515f09e56cb40f9313e970f20cca 100644
+index e864252e4fcd0927275d6b9009cdde78d3e289eb..28a51536bcfcb124fecc61095227cabd8844d4e6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -194,6 +194,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
index 384e79120e22..527c650c55ea 100644
--- a/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -34,7 +34,7 @@ index 445b8839d2a7a5ec2debb853d606e499c2a1f20b..4c1911140197568685524721e3140739
  
              if (this.sendParticles(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 6b0dba6f7211500ba5950a76d2b2252a09f65103..262e73f5b6ff9b681b6c441df3b2e79265ade02d 100644
+index 53a5f6709bca2aa76297e55e555cbfeb38e8ad4e..2104609f5dae00457725a57a03e3d51e2bb8b841 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -1863,11 +1863,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch b/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
index 76bf7193bc7c..ea1eda36f688 100644
--- a/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
+++ b/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
@@ -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/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 3dd759d030411420f93eb5ac51f2087ecbf2dc49..91fbc67eefea473211b99e4338f6464f58dc5592 100644
+index 134b138abdf17fae340226ecac3868ad7a993086..75d4c33768a8ab15a94bcb71b2aa724cad1ce0aa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -592,6 +592,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -593,6 +593,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
                  entity = net.minecraft.world.entity.EntityType.BOAT.create(world);
              }
              entity.moveTo(x, y, z, yaw, pitch);
diff --git a/patches/server/0204-Fix-CraftEntity-hashCode.patch b/patches/server/0204-Fix-CraftEntity-hashCode.patch
index abbb6ca27b6c..bc20ef512e28 100644
--- a/patches/server/0204-Fix-CraftEntity-hashCode.patch
+++ b/patches/server/0204-Fix-CraftEntity-hashCode.patch
@@ -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 a6009f9075035e34150ff692d38cac47930363d1..0fd9119c710afdd46a60d81ae3f9ce5da88d2541 100644
+index d6583c6b77356d15025b961ebed3e20418d71318..e3ed6a4315f8e0411144a5e585f9f49114cdf1b6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -841,14 +841,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -840,14 +840,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
              return false;
          }
          final CraftEntity other = (CraftEntity) obj;
diff --git a/patches/server/0207-Make-shield-blocking-delay-configurable.patch b/patches/server/0207-Make-shield-blocking-delay-configurable.patch
index 874bede2bdc5..873cffe2fe81 100644
--- a/patches/server/0207-Make-shield-blocking-delay-configurable.patch
+++ b/patches/server/0207-Make-shield-blocking-delay-configurable.patch
@@ -35,7 +35,7 @@ index 231ba23fabeb88b659a7ea9702eebe4aad72a209..5fb892e47b1ad33435e2aafeb1212ffe
          return this.isShiftKeyDown();
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 03d791e98d369c1d8fe4a4da11f89301392a934d..78c27ec1135c55baf16d1794f4f33d9b36bc0aa6 100644
+index 0dd733873606ae47deb5956ed1170d4b9ad3b890..d38f1661c1d5bfc4a0c5601bfac959b7527022ed 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -810,5 +810,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0211-Expand-Explosions-API.patch b/patches/server/0211-Expand-Explosions-API.patch
index 69153e513a6e..a87e7c6fba1c 100644
--- a/patches/server/0211-Expand-Explosions-API.patch
+++ b/patches/server/0211-Expand-Explosions-API.patch
@@ -6,7 +6,7 @@ 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 262e73f5b6ff9b681b6c441df3b2e79265ade02d..3218f5409cb26fcbd74a754a50b6f5f1ec3cb4a7 100644
+index 2104609f5dae00457725a57a03e3d51e2bb8b841..f288570c8b3cee0c0b79981f332c1c067cd7bb9e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -716,6 +716,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch b/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
index d671d46234f1..816010e115b0 100644
--- a/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
+++ b/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
@@ -6,7 +6,7 @@ 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/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 78c27ec1135c55baf16d1794f4f33d9b36bc0aa6..f8340bd15c978c2b9124ee57dd55484bfd608f62 100644
+index d38f1661c1d5bfc4a0c5601bfac959b7527022ed..c2e83cc533decd31f21c7c732cdc32d8b52bc418 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -820,5 +820,30 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0215-Implement-World.getEntity-UUID-API.patch b/patches/server/0215-Implement-World.getEntity-UUID-API.patch
index 761dbd480699..dac9f6070c8d 100644
--- a/patches/server/0215-Implement-World.getEntity-UUID-API.patch
+++ b/patches/server/0215-Implement-World.getEntity-UUID-API.patch
@@ -5,7 +5,7 @@ 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 3218f5409cb26fcbd74a754a50b6f5f1ec3cb4a7..71ac1f681fe2518d2b0f52597310e7b538a0b1d8 100644
+index f288570c8b3cee0c0b79981f332c1c067cd7bb9e..a29cb2e267e0a9d7f4cec3cf503968933b999435 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -1040,6 +1040,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0216-InventoryCloseEvent-Reason-API.patch b/patches/server/0216-InventoryCloseEvent-Reason-API.patch
index 10df8131bcd0..a7c1ab6a9b62 100644
--- a/patches/server/0216-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0216-InventoryCloseEvent-Reason-API.patch
@@ -173,7 +173,7 @@ index e5b2686e466a2604ebcdb6e5c3b6fb7ff7bc6eec..aa131c233ee9d7926ca77e1afedd27ba
      @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 04b3dc0c856a515f09e56cb40f9313e970f20cca..4dc09147e29bc43c854546e18cf2af41622a8a8f 100644
+index 28a51536bcfcb124fecc61095227cabd8844d4e6..1f2c0e3788700a5900664fa61e811a286a347393 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1191,7 +1191,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -186,7 +186,7 @@ index 04b3dc0c856a515f09e56cb40f9313e970f20cca..4dc09147e29bc43c854546e18cf2af41
  
          // 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 f51a0e99d7e3ad6379057175931cf95e863b45dd..dde0bc20808e988c6d44dd42e20155cbe72d1757 100644
+index 9546f716da41aef994d8e3799bdf5c6b74e96ad6..1ee49bb62df6f9c7e88a8484ce97103ada5d6d6d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1306,7 +1306,7 @@ public class CraftEventFactory {
diff --git a/patches/server/0226-Vanished-players-don-t-have-rights.patch b/patches/server/0226-Vanished-players-don-t-have-rights.patch
index 5eec807acaf5..96d8cd6bff19 100644
--- a/patches/server/0226-Vanished-players-don-t-have-rights.patch
+++ b/patches/server/0226-Vanished-players-don-t-have-rights.patch
@@ -89,7 +89,7 @@ index 0b02ba70956ea1352ea8e67957b3789408b67f6b..8320bece16dfa339e33801e43ff2f297
      public boolean isClientSide() {
          return this.isClientSide;
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index dde0bc20808e988c6d44dd42e20155cbe72d1757..f423e98fccb7712f7d989ee5780dd5e7b824255f 100644
+index 1ee49bb62df6f9c7e88a8484ce97103ada5d6d6d..5e20a49940e7fdbc470193b44a604829e38fbae6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1343,6 +1343,14 @@ public class CraftEventFactory {
diff --git a/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
index d3d640afc018..86c13487bede 100644
--- a/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
+++ b/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
@@ -33,10 +33,10 @@ index 5a3f0a6e3f663718993cf3679ffc96c4af140e4d..cdc020e1787c258ba283d86a25ab1532
          com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics();
          com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 70db3c9fc868e6d87f4fc85fd1ae5ac756be7b7d..145476b25f7d7d60c7bc4891e71484c74011cac2 100644
+index b0f76a563d640360b73cb1779eae74fbf552f54e..c5a59f5f94ded049d39b1e1ffac1a71f4c5b9535 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -918,6 +918,7 @@ public final class CraftServer implements Server {
+@@ -917,6 +917,7 @@ public final class CraftServer implements Server {
  
      @Override
      public void reload() {
@@ -44,7 +44,7 @@ index 70db3c9fc868e6d87f4fc85fd1ae5ac756be7b7d..145476b25f7d7d60c7bc4891e71484c7
          this.reloadCount++;
          this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile());
          this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile());
-@@ -1007,6 +1008,7 @@ public final class CraftServer implements Server {
+@@ -1006,6 +1007,7 @@ public final class CraftServer implements Server {
          this.enablePlugins(PluginLoadOrder.STARTUP);
          this.enablePlugins(PluginLoadOrder.POSTWORLD);
          this.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.RELOAD));
diff --git a/patches/server/0240-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch b/patches/server/0240-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch
index 4d0160d02846..34206bbb7449 100644
--- a/patches/server/0240-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch
+++ b/patches/server/0240-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-index 8ae78690748b2cb5d5186d8859871c1630e10130..b738e1f7debac7d70910d5ac908ca9d4f60640d5 100644
+index 5473e6ffe55c6e0a0947356e89831d71a86cf6a5..d10dcf5b9c987bbd4761470c16c9d4693ccf896d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-@@ -125,6 +125,13 @@ public class CraftChunk implements Chunk {
+@@ -126,6 +126,13 @@ public class CraftChunk implements Chunk {
  
      @Override
      public BlockState[] getTileEntities() {
@@ -22,7 +22,7 @@ index 8ae78690748b2cb5d5186d8859871c1630e10130..b738e1f7debac7d70910d5ac908ca9d4
          if (!this.isLoaded()) {
              this.getWorld().getChunkAt(x, z); // Transient load for this tick
          }
-@@ -134,7 +141,29 @@ public class CraftChunk implements Chunk {
+@@ -135,7 +142,29 @@ public class CraftChunk implements Chunk {
          BlockState[] entities = new BlockState[chunk.blockEntities.size()];
  
          for (BlockPos position : chunk.blockEntities.keySet()) {
diff --git a/patches/server/0245-Optimize-CraftBlockData-Creation.patch b/patches/server/0245-Optimize-CraftBlockData-Creation.patch
index f8689393ebc3..22f91946494f 100644
--- a/patches/server/0245-Optimize-CraftBlockData-Creation.patch
+++ b/patches/server/0245-Optimize-CraftBlockData-Creation.patch
@@ -26,10 +26,10 @@ index 6c171199dcc30f56a6d0ab7ecf398b505d145067..916d7b35145345cb3bf5ca46df38eae0
          private boolean calculateSolid() {
              if (((Block) this.owner).properties.forceSolidOn) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-index 745d2c589df8c59db327d7482024096473318812..c80aaa37b7d63acfb283641a4804dc2a32156eda 100644
+index bb3ebf590e3e6aa6d9ac892095d58b926d2fa50d..777539309639569d9057e4de86c3957a7a72a47f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-@@ -560,7 +560,17 @@ public class CraftBlockData implements BlockData {
+@@ -561,7 +561,17 @@ public class CraftBlockData implements BlockData {
          return craft;
      }
  
diff --git a/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
index 9e08bc2db226..8223a1714e03 100644
--- a/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
+++ b/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 71ac1f681fe2518d2b0f52597310e7b538a0b1d8..71e68b9cdafbacc84c317cfb2126d4da472d9f63 100644
+index a29cb2e267e0a9d7f4cec3cf503968933b999435..6e806ede0d94cb3cdb7e772ba56a010ad241590c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -400,7 +400,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
index 08d76f881e14..7da734e2ebce 100644
--- a/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
+++ b/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
@@ -30,7 +30,7 @@ index 7d7c8772bd8dfb96cfff2c1f020719c0156a09cd..8f8f343139444cc6fddf0d13083194ec
  
      public int getShieldBlockingDelay() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index f8340bd15c978c2b9124ee57dd55484bfd608f62..3d9e4ebb29f670d32bfe044ad22daaf82313498d 100644
+index c2e83cc533decd31f21c7c732cdc32d8b52bc418..e327cc9f2513ae79a871ac2ab144389b71a88f2a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -201,6 +201,33 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
index 20ca3168a8f0..7a23ae567479 100644
--- a/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
+++ b/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expose attack cooldown methods for Player
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4dc09147e29bc43c854546e18cf2af41622a8a8f..d141e55f92d6c7f211a1a91bd5379144137e7b25 100644
+index 1f2c0e3788700a5900664fa61e811a286a347393..9c988b83338c5cf2cbe12aabc729b9184bb3e97d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2843,6 +2843,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0253-Improve-death-events.patch b/patches/server/0253-Improve-death-events.patch
index 12273b49e5d7..cb21c9b15062 100644
--- a/patches/server/0253-Improve-death-events.patch
+++ b/patches/server/0253-Improve-death-events.patch
@@ -392,7 +392,7 @@ index 6483ad071c119353267a4f13b192a50931995c2a..7eecbe85949e47b367014c04d7a37c2c
          this.gameEvent(GameEvent.ENTITY_DIE);
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d141e55f92d6c7f211a1a91bd5379144137e7b25..c4dd9c90c12b6c8fc11a2d683ff73fdc02ff5e5c 100644
+index 9c988b83338c5cf2cbe12aabc729b9184bb3e97d..92e64162181b73e5201e1e3e52db9e372c765a75 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2343,7 +2343,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -412,7 +412,7 @@ index d141e55f92d6c7f211a1a91bd5379144137e7b25..c4dd9c90c12b6c8fc11a2d683ff73fdc
  
      public void injectScaledMaxHealth(Collection<AttributeInstance> collection, boolean force) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index f423e98fccb7712f7d989ee5780dd5e7b824255f..01ce54dba8c3efcc147b694ba57e070686375f68 100644
+index 5e20a49940e7fdbc470193b44a604829e38fbae6..a1f6b35eec45e99013db02a727159d186150474a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -865,9 +865,16 @@ public class CraftEventFactory {
@@ -458,7 +458,7 @@ index f423e98fccb7712f7d989ee5780dd5e7b824255f..01ce54dba8c3efcc147b694ba57e0706
 +        event.setReviveHealth(event.getEntity().getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH).getValue());
 +        event.setShouldPlayDeathSound(!victim.silentDeath && !victim.isSilent());
 +        net.minecraft.sounds.SoundEvent soundEffect = victim.getDeathSound();
-+        event.setDeathSound(soundEffect != null ? org.bukkit.craftbukkit.CraftSound.getBukkit(soundEffect) : null);
++        event.setDeathSound(soundEffect != null ? org.bukkit.craftbukkit.CraftSound.minecraftToBukkit(soundEffect) : null);
 +        event.setDeathSoundCategory(org.bukkit.SoundCategory.valueOf(victim.getSoundSource().name()));
 +        event.setDeathSoundVolume(victim.getSoundVolume());
 +        event.setDeathSoundPitch(victim.getVoicePitch());
@@ -471,7 +471,7 @@ index f423e98fccb7712f7d989ee5780dd5e7b824255f..01ce54dba8c3efcc147b694ba57e0706
 +            double x = event.getEntity().getLocation().getX();
 +            double y = event.getEntity().getLocation().getY();
 +            double z = event.getEntity().getLocation().getZ();
-+            net.minecraft.sounds.SoundEvent soundEffect = org.bukkit.craftbukkit.CraftSound.getSoundEffect(event.getDeathSound());
++            net.minecraft.sounds.SoundEvent soundEffect = org.bukkit.craftbukkit.CraftSound.bukkitToMinecraft(event.getDeathSound());
 +            net.minecraft.sounds.SoundSource soundCategory = net.minecraft.sounds.SoundSource.valueOf(event.getDeathSoundCategory().name());
 +            victim.level().playSound(source, x, y, z, soundEffect, soundCategory, event.getDeathSoundVolume(), event.getDeathSoundPitch());
 +        }
diff --git a/patches/server/0255-Mob-Pathfinding-API.patch b/patches/server/0255-Mob-Pathfinding-API.patch
index e8e958cebd67..ce0cbcfb6d59 100644
--- a/patches/server/0255-Mob-Pathfinding-API.patch
+++ b/patches/server/0255-Mob-Pathfinding-API.patch
@@ -172,7 +172,7 @@ index 539dc45c3c7ffc60cf3fb47ae4df65e604e8627b..eea4c932d909145e7af848cf76e3f49d
      public Path(List<Node> nodes, BlockPos target, boolean reachesTarget) {
          this.nodes = nodes;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
-index 659ccb6532506b2a8c9feb55dc5aee962f6da795..f36713771598ac5afdae5d94db10a5790949611d 100644
+index 2000755ac72a25a5d03f238844c458a804f1c033..ce244e96f674f7886179baced3d1e9b67fedfe73 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 @@ -15,8 +15,11 @@ import org.bukkit.loot.LootTable;
diff --git a/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch b/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
index 91b9e0e37b38..f452ccaa9c0a 100644
--- a/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
+++ b/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement an API for CanPlaceOn and CanDestroy NBT values
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270f4ee8b14 100644
+index 157459f8e9772216229b132f5b9247bcb761072f..abccd9cb31c529142b64783873368fab7b38d312 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -83,6 +83,12 @@ import org.bukkit.persistence.PersistentDataContainer;
+@@ -84,6 +84,12 @@ import org.bukkit.persistence.PersistentDataContainer;
  import static org.spigotmc.ValidateUtils.*;
  // Spigot end
  
@@ -21,7 +21,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
  /**
   * Children must include the following:
   *
-@@ -271,6 +277,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -272,6 +278,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
      @Specific(Specific.To.NBT)
      static final ItemMetaKey BLOCK_DATA = new ItemMetaKey("BlockStateTag");
      static final ItemMetaKey BUKKIT_CUSTOM_TAG = new ItemMetaKey("PublicBukkitValues");
@@ -32,7 +32,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
  
      // We store the raw original JSON representation of all text data. See SPIGOT-5063, SPIGOT-5656, SPIGOT-5304
      private String displayName;
-@@ -284,6 +294,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -285,6 +295,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
      private int hideFlag;
      private boolean unbreakable;
      private int damage;
@@ -43,7 +43,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
  
      private static final Set<String> HANDLED_TAGS = Sets.newHashSet();
      private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
-@@ -321,6 +335,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -322,6 +336,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          this.hideFlag = meta.hideFlag;
          this.unbreakable = meta.unbreakable;
          this.damage = meta.damage;
@@ -59,7 +59,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
          this.unhandledTags.putAll(meta.unhandledTags);
          this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw());
  
-@@ -384,6 +407,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -385,6 +408,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
                  this.persistentDataContainer.put(key, compound.get(key).copy());
              }
          }
@@ -91,7 +91,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
  
          Set<String> keys = tag.getAllKeys();
          for (String key : keys) {
-@@ -522,6 +570,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -523,6 +571,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
              this.setDamage(damage);
          }
  
@@ -126,7 +126,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
          String internal = SerializableMeta.getString(map, "internal", true);
          if (internal != null) {
              ByteArrayInputStream buf = new ByteArrayInputStream(Base64.getDecoder().decode(internal));
-@@ -650,6 +726,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -651,6 +727,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          if (this.hasDamage()) {
              itemTag.putInt(DAMAGE.NBT, damage);
          }
@@ -150,7 +150,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
  
          for (Map.Entry<String, Tag> e : this.unhandledTags.entrySet()) {
              itemTag.put(e.getKey(), e.getValue());
-@@ -666,6 +759,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -667,6 +760,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          }
      }
  
@@ -172,7 +172,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
      ListTag createStringList(List<String> list) {
          if (list == null) {
              return null;
-@@ -749,7 +857,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -750,7 +858,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
  
      @Overridden
      boolean isEmpty() {
@@ -181,7 +181,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
      }
  
      // Paper start
-@@ -1181,7 +1289,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1182,7 +1290,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
                  && (this.hideFlag == that.hideFlag)
                  && (this.isUnbreakable() == that.isUnbreakable())
                  && (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage())
@@ -194,7 +194,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
      }
  
      /**
-@@ -1216,6 +1328,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1217,6 +1329,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          hash = 61 * hash + (this.hasDamage() ? this.damage : 0);
          hash = 61 * hash + (this.hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0);
          hash = 61 * hash + this.version;
@@ -205,7 +205,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
          return hash;
      }
  
-@@ -1240,6 +1356,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1241,6 +1357,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
              clone.unbreakable = this.unbreakable;
              clone.damage = this.damage;
              clone.version = this.version;
@@ -220,7 +220,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
              return clone;
          } catch (CloneNotSupportedException e) {
              throw new Error(e);
-@@ -1297,6 +1421,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1298,6 +1422,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
              builder.put(DAMAGE.BUKKIT, damage);
          }
  
@@ -244,7 +244,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
          final Map<String, Tag> internalTags = new HashMap<String, Tag>(this.unhandledTags);
          this.serializeInternal(internalTags);
          if (!internalTags.isEmpty()) {
-@@ -1469,6 +1610,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1470,6 +1611,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
                          CraftMetaArmorStand.SHOW_ARMS.NBT,
                          CraftMetaArmorStand.SMALL.NBT,
                          CraftMetaArmorStand.MARKER.NBT,
@@ -253,7 +253,7 @@ index 8ada3a7c5539293d4e2c1a5b83e00fc2542f10ff..d7102d83bb781b6cf296cf9c637f8270
                          // Paper end
                          CraftMetaCompass.LODESTONE_DIMENSION.NBT,
                          CraftMetaCompass.LODESTONE_POS.NBT,
-@@ -1498,4 +1641,146 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1499,4 +1642,146 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
      }
      // Paper end
  
diff --git a/patches/server/0263-Hook-into-CB-plugin-rewrites.patch b/patches/server/0263-Hook-into-CB-plugin-rewrites.patch
index d40c5ed17b00..6696802ac79d 100644
--- a/patches/server/0263-Hook-into-CB-plugin-rewrites.patch
+++ b/patches/server/0263-Hook-into-CB-plugin-rewrites.patch
@@ -8,25 +8,26 @@ our own relocation. Also lets us rewrite NMS calls for when we're
 debugging in an IDE pre-relocate.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 48cdd483c25825571043800f3cfa41a4d723f649..fe5d3b60ad740b7f1cce040f9c8d96ac51245ef6 100644
+index aba415ab7203a21e916eadb923cb02c03b679f65..cfaa85dc3d567bf0110e45fc4e4f24a406b41a45 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -6,7 +6,9 @@ import java.io.FileOutputStream;
- import java.io.InputStream;
+@@ -7,8 +7,10 @@ import java.io.InputStream;
+ import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.Enumeration;
 +import java.util.HashMap;
  import java.util.HashSet;
+ import java.util.List;
 +import java.util.Map;
  import java.util.Set;
  import java.util.jar.JarEntry;
  import java.util.jar.JarFile;
-@@ -20,10 +22,15 @@ import org.bukkit.plugin.AuthorNagException;
+@@ -22,11 +24,15 @@ import org.bukkit.plugin.AuthorNagException;
  import org.objectweb.asm.ClassReader;
  import org.objectweb.asm.ClassVisitor;
  import org.objectweb.asm.ClassWriter;
 +import org.objectweb.asm.FieldVisitor;
-+import org.objectweb.asm.Handle;
+ import org.objectweb.asm.Handle;
 +import org.objectweb.asm.Label;
  import org.objectweb.asm.MethodVisitor;
  import org.objectweb.asm.Opcodes;
@@ -37,7 +38,7 @@ index 48cdd483c25825571043800f3cfa41a4d723f649..fe5d3b60ad740b7f1cce040f9c8d96ac
  /**
   * This file is imported from Commodore.
   *
-@@ -46,6 +53,41 @@ public class Commodore
+@@ -49,6 +55,41 @@ public class Commodore
              "org/bukkit/inventory/ItemStack (I)V setTypeId"
      ) );
  
@@ -79,7 +80,7 @@ index 48cdd483c25825571043800f3cfa41a4d723f649..fe5d3b60ad740b7f1cce040f9c8d96ac
      public static void main(String[] args)
      {
          OptionParser parser = new OptionParser();
-@@ -130,15 +172,86 @@ public class Commodore
+@@ -133,15 +174,72 @@ public class Commodore
  
          cr.accept( new ClassVisitor( Opcodes.ASM9, cw )
          {
@@ -103,20 +104,6 @@ index 48cdd483c25825571043800f3cfa41a4d723f649..fe5d3b60ad740b7f1cce040f9c8d96ac
                  {
 +                    // Paper start - Plugin rewrites
 +                    @Override
-+                    public void visitInvokeDynamicInsn(String name, String desc, Handle bootstrapMethodHandle, Object... bootstrapMethodArguments)
-+                    {
-+                        // Paper start - Rewrite plugins
-+                        name = getOriginalOrRewrite( name );
-+                        if ( desc != null )
-+                        {
-+                            desc = getOriginalOrRewrite( desc );
-+                        }
-+                        // Paper end
-+
-+                        super.visitInvokeDynamicInsn( name, desc, bootstrapMethodHandle, bootstrapMethodArguments );
-+                    }
-+
-+                    @Override
 +                    public void visitTypeInsn(int opcode, String type)
 +                    {
 +                        type = getOriginalOrRewrite( type );
@@ -166,7 +153,7 @@ index 48cdd483c25825571043800f3cfa41a4d723f649..fe5d3b60ad740b7f1cce040f9c8d96ac
                          if ( owner.equals( "org/bukkit/block/Biome" ) )
                          {
                              switch ( name )
-@@ -330,6 +443,11 @@ public class Commodore
+@@ -339,6 +437,11 @@ public class Commodore
                          }
  
                          // Paper start - Rewrite plugins
@@ -178,7 +165,7 @@ index 48cdd483c25825571043800f3cfa41a4d723f649..fe5d3b60ad740b7f1cce040f9c8d96ac
                          if ((owner.equals("org/bukkit/OfflinePlayer") || owner.equals("org/bukkit/entity/Player")) && name.equals("getPlayerProfile") && desc.equals("()Lorg/bukkit/profile/PlayerProfile;")) {
                              super.visitMethodInsn(opcode, owner, name, "()Lcom/destroystokyo/paper/profile/PlayerProfile;", itf);
                              return;
-@@ -424,6 +542,13 @@ public class Commodore
+@@ -433,6 +536,13 @@ public class Commodore
                      @Override
                      public void visitLdcInsn(Object value)
                      {
@@ -192,3 +179,17 @@ index 48cdd483c25825571043800f3cfa41a4d723f649..fe5d3b60ad740b7f1cce040f9c8d96ac
                          if ( value instanceof String && ( (String) value ).equals( "com.mysql.jdbc.Driver" ) )
                          {
                              super.visitLdcInsn( "com.mysql.cj.jdbc.Driver" );
+@@ -445,6 +555,13 @@ public class Commodore
+                     @Override
+                     public void visitInvokeDynamicInsn( String name, String descriptor, Handle bootstrapMethodHandle, Object... bootstrapMethodArguments )
+                     {
++                        // Paper start - Rewrite plugins
++                        name = getOriginalOrRewrite( name );
++                        if ( descriptor != null )
++                        {
++                            descriptor = getOriginalOrRewrite( descriptor );
++                        }
++                        // Paper end - Rewrite plugins
+                         if ( bootstrapMethodHandle.getOwner().equals( "java/lang/invoke/LambdaMetafactory" )
+                                 && bootstrapMethodHandle.getName().equals( "metafactory" ) && bootstrapMethodArguments.length == 3 )
+                         {
diff --git a/patches/server/0265-Add-LivingEntity-getTargetEntity.patch b/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
index 05ddea3a690e..f3d4f1a43c1b 100644
--- a/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
+++ b/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
@@ -56,7 +56,7 @@ index 4fdf034205ea0ff9d6803928672b23c185fd3065..ffed90c0fc1240fc10b4cdd8df837764
  
      public int getShieldBlockingDelay() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 3d9e4ebb29f670d32bfe044ad22daaf82313498d..d5f53ddf1bb24c933bf38efbe142411663ec2470 100644
+index e327cc9f2513ae79a871ac2ab144389b71a88f2a..a3842078a394241a3a9b4c398d13fcdbcb5dbe10 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -1,5 +1,6 @@
diff --git a/patches/server/0266-Add-sun-related-API.patch b/patches/server/0266-Add-sun-related-API.patch
index 9962323a2785..fb9c514239b1 100644
--- a/patches/server/0266-Add-sun-related-API.patch
+++ b/patches/server/0266-Add-sun-related-API.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Add sun related API
 public net.minecraft.world.entity.Mob isSunBurnTick()Z
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 71e68b9cdafbacc84c317cfb2126d4da472d9f63..08058aced4b27cf86f38b8a205dd3faeea47b007 100644
+index 6e806ede0d94cb3cdb7e772ba56a010ad241590c..238669816f082704b62a7bef8b78058dceef8be2 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -692,6 +692,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -25,7 +25,7 @@ index 71e68b9cdafbacc84c317cfb2126d4da472d9f63..08058aced4b27cf86f38b8a205dd3fae
      public long getGameTime() {
          return world.levelData.getGameTime();
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
-index f36713771598ac5afdae5d94db10a5790949611d..c92f7f31c3bf96f22fb1d2e783b14b80512448a0 100644
+index ce244e96f674f7886179baced3d1e9b67fedfe73..522b7cb1db22b02279b004916ad2a14447a6bbed 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 @@ -93,4 +93,11 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
diff --git a/patches/server/0282-Make-the-default-permission-message-configurable.patch b/patches/server/0282-Make-the-default-permission-message-configurable.patch
index 83428ced3e27..58965a428b81 100644
--- a/patches/server/0282-Make-the-default-permission-message-configurable.patch
+++ b/patches/server/0282-Make-the-default-permission-message-configurable.patch
@@ -18,10 +18,10 @@ index 0dd48e4098191c8b6e29945d62bc473e9f3a1e77..ae51993e0de706cb62c96795ca9de766
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 145476b25f7d7d60c7bc4891e71484c74011cac2..4acb515c423a55c9bb7ba87504cb5a04c58d2bf8 100644
+index c5a59f5f94ded049d39b1e1ffac1a71f4c5b9535..5fe9750472edaa5684ded6beb6acce3156bbc2b2 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2708,6 +2708,16 @@ public final class CraftServer implements Server {
+@@ -2707,6 +2707,16 @@ public final class CraftServer implements Server {
          return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions;
      }
  
diff --git a/patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
index 934c99f332c9..4577ba788782 100644
--- a/patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
+++ b/patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
@@ -40,7 +40,7 @@ index 98c4a1b8542486f5af1274f974b898a69f2684f1..45bfb32505dfd2a66d8a6ee4627ec293
          GameProfileCache usercache = this.server.getProfileCache();
          String s;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
-index aac78c13361b19efa7b43a0c95458390f1ba8340..f572a74b85df36a6da76b78ec29d807273867537 100644
+index c1ef6c8c8e5f030e18b6066a509350ee1e195987..779b6bac307e252fe614cfce958d2eeed94c5f77 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 @@ -261,6 +261,61 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -106,7 +106,7 @@ index aac78c13361b19efa7b43a0c95458390f1ba8340..f572a74b85df36a6da76b78ec29d8072
      public Location getLastDeathLocation() {
          if (this.getData().contains("LastDeathLocation", 10)) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index c4dd9c90c12b6c8fc11a2d683ff73fdc02ff5e5c..14d8c5636b6a1fe0c18086a98469ba30f1325b6a 100644
+index 92e64162181b73e5201e1e3e52db9e372c765a75..d939e5385d250095674c1f0c6f4209cdf87ad7cb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -195,6 +195,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch b/patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch
index 121eb4c612ff..62d94b6565b5 100644
--- a/patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch
+++ b/patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch
@@ -12,7 +12,7 @@ Player we will look at limiting the scope of this change. It appears to
 be unintentional in the few cases we've seen so far.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 14d8c5636b6a1fe0c18086a98469ba30f1325b6a..6ef5547264dcd557a4dcdb5392b9fd5ef22d143d 100644
+index d939e5385d250095674c1f0c6f4209cdf87ad7cb..94cb3513aeef549da3626ff18c1ea0662252ecb9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2890,6 +2890,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0299-Entity-getEntitySpawnReason.patch b/patches/server/0299-Entity-getEntitySpawnReason.patch
index b72984e84999..dc83a79c5ba5 100644
--- a/patches/server/0299-Entity-getEntitySpawnReason.patch
+++ b/patches/server/0299-Entity-getEntitySpawnReason.patch
@@ -120,10 +120,10 @@ index a9be524edb03c51300bc45d424fcf87c7491a8c0..a08c2dee792da1a54005f0a65a9eefab
                          // CraftBukkit start
                          if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 0fd9119c710afdd46a60d81ae3f9ce5da88d2541..c7cd18de51c5e7c9d194ba65902084194d4408ec 100644
+index e3ed6a4315f8e0411144a5e585f9f49114cdf1b6..fa2cf604910977c0275f7731286618fe3c355a36 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1307,5 +1307,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1306,5 +1306,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
      public boolean fromMobSpawner() {
          return getHandle().spawnedViaMobSpawner;
      }
diff --git a/patches/server/0303-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch b/patches/server/0303-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch
index 29a3edd78db6..aaeef4e98175 100644
--- a/patches/server/0303-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch
+++ b/patches/server/0303-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] don't go below 0 for pickupDelay, breaks picking up items
 vanilla checks for == 0
 
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index 91eba1c571764c88489ea2598fb9b4736554d5cc..fda34d93a5b75919c840d3bc0efa0651e5eb4843 100644
+index 5744d726c4e7a970db5c1c3764d530d839d95597..2edc55f09b79ac75788a0ded8b3d2a6800674470 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -122,6 +122,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
diff --git a/patches/server/0307-Add-Heightmap-API.patch b/patches/server/0307-Add-Heightmap-API.patch
index 42b59f7fd68f..8767b5182866 100644
--- a/patches/server/0307-Add-Heightmap-API.patch
+++ b/patches/server/0307-Add-Heightmap-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Heightmap API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 08058aced4b27cf86f38b8a205dd3faeea47b007..4776242cb73213686d3e020ef36fea77ef905598 100644
+index 238669816f082704b62a7bef8b78058dceef8be2..3ff94314e2dcfab964d230684ff218c634b75499 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -219,6 +219,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0308-Mob-Spawner-API-Enhancements.patch b/patches/server/0308-Mob-Spawner-API-Enhancements.patch
index 7d927ec0a87f..bbb2fa946346 100644
--- a/patches/server/0308-Mob-Spawner-API-Enhancements.patch
+++ b/patches/server/0308-Mob-Spawner-API-Enhancements.patch
@@ -69,10 +69,10 @@ index a08c2dee792da1a54005f0a65a9eefabc7bc7c60..369298dfd437c1c83801f3d4ba63484e
          nbt.putShort("MaxNearbyEntities", (short) this.maxNearbyEntities);
          nbt.putShort("RequiredPlayerRange", (short) this.requiredPlayerRange);
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java b/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java
-index f733df6d082561bf80a3fcfaaab1731985213324..e2d0937f8609c1f65eff94a1cdae8c80b6347cc3 100644
+index 46d41520a5d429e7466e5a24ffb737a0e844921a..e34637160a8364ffe13be4fd9a85feb7afbb5f77 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java
-@@ -134,4 +134,28 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<SpawnerBlockEnti
+@@ -135,4 +135,28 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<SpawnerBlockEnti
      public void setSpawnRange(int spawnRange) {
          this.getSnapshot().getSpawner().spawnRange = spawnRange;
      }
diff --git a/patches/server/0311-Implement-CraftBlockSoundGroup.patch b/patches/server/0311-Implement-CraftBlockSoundGroup.patch
index aa1e2c499472..a61170b03bc6 100644
--- a/patches/server/0311-Implement-CraftBlockSoundGroup.patch
+++ b/patches/server/0311-Implement-CraftBlockSoundGroup.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Implement CraftBlockSoundGroup
 
 diff --git a/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java b/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java
 new file mode 100644
-index 0000000000000000000000000000000000000000..c5b07ec346105d1b95c1c938ffca12a21642040c
+index 0000000000000000000000000000000000000000..3913c407a3bfa7dfa4a5e374a5e792962fcdafe6
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java
 @@ -0,0 +1,39 @@
@@ -26,34 +26,34 @@ index 0000000000000000000000000000000000000000..c5b07ec346105d1b95c1c938ffca12a2
 +
 +    @Override
 +    public Sound getBreakSound() {
-+        return CraftSound.getBukkit(soundEffectType.getBreakSound());
++        return CraftSound.minecraftToBukkit(soundEffectType.getBreakSound());
 +    }
 +
 +    @Override
 +    public Sound getStepSound() {
-+        return CraftSound.getBukkit(soundEffectType.getStepSound());
++        return CraftSound.minecraftToBukkit(soundEffectType.getStepSound());
 +    }
 +
 +    @Override
 +    public Sound getPlaceSound() {
-+        return CraftSound.getBukkit(soundEffectType.getPlaceSound());
++        return CraftSound.minecraftToBukkit(soundEffectType.getPlaceSound());
 +    }
 +
 +    @Override
 +    public Sound getHitSound() {
-+        return CraftSound.getBukkit(soundEffectType.getHitSound());
++        return CraftSound.minecraftToBukkit(soundEffectType.getHitSound());
 +    }
 +
 +    @Override
 +    public Sound getFallSound() {
-+        return CraftSound.getBukkit(soundEffectType.getFallSound());
++        return CraftSound.minecraftToBukkit(soundEffectType.getFallSound());
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 3205d86a63f8fcf3ccd13c6be0e0eefc27beb62a..93bf6b8e30e5e28fa9261b8b927081d85547e400 100644
+index 8a62231dffcff0260c1c15bd3115b27922c03239..ce8f3d66b0f64531e818823761fd1823da4f01d5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -647,4 +647,16 @@ public class CraftBlock implements Block {
+@@ -621,4 +621,16 @@ public class CraftBlock implements Block {
      public String getTranslationKey() {
          return this.getNMS().getBlock().getDescriptionId();
      }
diff --git a/patches/server/0312-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0312-Configurable-Keep-Spawn-Loaded-range-per-world.patch
index 47d94583071b..106f3f97a3e3 100644
--- a/patches/server/0312-Configurable-Keep-Spawn-Loaded-range-per-world.patch
+++ b/patches/server/0312-Configurable-Keep-Spawn-Loaded-range-per-world.patch
@@ -191,7 +191,7 @@ index 4d2348df25410a0b5364eec066880326d6667dad..286aad3205ef8a9e21a47ef07893844f
          this.maxCount = i * i;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 4776242cb73213686d3e020ef36fea77ef905598..f1278670dbc4ad5f879aaffb78e1df5a28734738 100644
+index 3ff94314e2dcfab964d230684ff218c634b75499..7c6ebec598bac78e3055e5c890550238c2795f23 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -1350,15 +1350,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0314-Expose-the-internal-current-tick.patch b/patches/server/0314-Expose-the-internal-current-tick.patch
index a7d618c0e6c7..c572e6161929 100644
--- a/patches/server/0314-Expose-the-internal-current-tick.patch
+++ b/patches/server/0314-Expose-the-internal-current-tick.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4acb515c423a55c9bb7ba87504cb5a04c58d2bf8..fcb0f9cf49495ffbfd9acd25cd3049ca63fb33b9 100644
+index 5fe9750472edaa5684ded6beb6acce3156bbc2b2..fc1dcd6aae389d89ab2c0233448ea64b50c065a9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2749,5 +2749,10 @@ public final class CraftServer implements Server {
+@@ -2748,5 +2748,10 @@ public final class CraftServer implements Server {
          profile.getProperties().putAll(((CraftPlayer)player).getHandle().getGameProfile().getProperties());
          return new com.destroystokyo.paper.profile.CraftPlayerProfile(profile);
      }
diff --git a/patches/server/0315-Fix-World-isChunkGenerated-calls.patch b/patches/server/0315-Fix-World-isChunkGenerated-calls.patch
index 00102047adfb..08287c2bec35 100644
--- a/patches/server/0315-Fix-World-isChunkGenerated-calls.patch
+++ b/patches/server/0315-Fix-World-isChunkGenerated-calls.patch
@@ -156,7 +156,7 @@ index 42dc999d820e62c6a222afbd9239cc671fc7de53..b850dba2b0fa5bc762b170ed7083cf89
              } catch (Throwable throwable) {
                  if (dataoutputstream != null) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index f1278670dbc4ad5f879aaffb78e1df5a28734738..f5e54c4adc9466ba23a665cc8d14b2ce4efd00d5 100644
+index 7c6ebec598bac78e3055e5c890550238c2795f23..0a9cf69ce0983f167ce63dc58eace455561da8e7 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -307,9 +307,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0332-Fix-items-not-falling-correctly.patch b/patches/server/0332-Fix-items-not-falling-correctly.patch
index db8b4a2a9661..7810b2825566 100644
--- a/patches/server/0332-Fix-items-not-falling-correctly.patch
+++ b/patches/server/0332-Fix-items-not-falling-correctly.patch
@@ -15,7 +15,7 @@ This patch resolves the conflict by offsetting checking Spigot's entity
 activation range check from an item's move method.
 
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index fda34d93a5b75919c840d3bc0efa0651e5eb4843..cecd7bd4a6dd66cfb2d632a232ff469e5fdcba44 100644
+index 2edc55f09b79ac75788a0ded8b3d2a6800674470..9b9d491c7c41590c93d606414902329b6636419f 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -150,7 +150,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
diff --git a/patches/server/0337-Implement-alternative-item-despawn-rate.patch b/patches/server/0337-Implement-alternative-item-despawn-rate.patch
index d3859bd12000..e0c9184ee535 100644
--- a/patches/server/0337-Implement-alternative-item-despawn-rate.patch
+++ b/patches/server/0337-Implement-alternative-item-despawn-rate.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Implement alternative item-despawn-rate
 Co-authored-by: Noah van der Aa <ndvdaa@gmail.com>
 
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index cecd7bd4a6dd66cfb2d632a232ff469e5fdcba44..5d742d072d2cc532ce86bff3de15a5f0f381d1c5 100644
+index 9b9d491c7c41590c93d606414902329b6636419f..a7eccb2f364ed633cb6d4914491eb686ff02e647 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -54,6 +54,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -44,15 +44,15 @@ index cecd7bd4a6dd66cfb2d632a232ff469e5fdcba44..5d742d072d2cc532ce86bff3de15a5f0
      }
  
      private void tryToMerge(ItemEntity other) {
-@@ -513,6 +514,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
+@@ -512,6 +513,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
+ 
      public void setItem(ItemStack stack) {
-         com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit
          this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
 +        this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper
      }
  
      @Override
-@@ -566,7 +568,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
+@@ -565,7 +567,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
  
      public void makeFakeItem() {
          this.setNeverPickUp();
diff --git a/patches/server/0343-Improve-Block-breakNaturally-API.patch b/patches/server/0343-Improve-Block-breakNaturally-API.patch
index 4de6b7c5ebd9..1f5f088a1c3f 100644
--- a/patches/server/0343-Improve-Block-breakNaturally-API.patch
+++ b/patches/server/0343-Improve-Block-breakNaturally-API.patch
@@ -34,10 +34,10 @@ index 6f9cb55491da718cd6564425748ab3852fda9b68..5fbdc96f29e29dfc092b9e84a988032d
              if (world.dimensionType().ultraWarm()) {
                  world.removeBlock(pos, false);
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 93bf6b8e30e5e28fa9261b8b927081d85547e400..5534348ddb3ac42b6b8a687816c2c8c1858e3b3e 100644
+index ce8f3d66b0f64531e818823761fd1823da4f01d5..e172d05e9e2b8d7844ecff286430f94c1b2fd7db 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -477,6 +477,18 @@ public class CraftBlock implements Block {
+@@ -451,6 +451,18 @@ public class CraftBlock implements Block {
  
      @Override
      public boolean breakNaturally(ItemStack item) {
@@ -56,7 +56,7 @@ index 93bf6b8e30e5e28fa9261b8b927081d85547e400..5534348ddb3ac42b6b8a687816c2c8c1
          // Order matters here, need to drop before setting to air so skulls can get their data
          net.minecraft.world.level.block.state.BlockState iblockdata = this.getNMS();
          net.minecraft.world.level.block.Block block = iblockdata.getBlock();
-@@ -486,11 +498,35 @@ public class CraftBlock implements Block {
+@@ -460,11 +472,35 @@ public class CraftBlock implements Block {
          // Modelled off EntityHuman#hasBlock
          if (block != Blocks.AIR && (item == null || !iblockdata.requiresCorrectToolForDrops() || nmsItem.isCorrectToolForDrops(iblockdata))) {
              net.minecraft.world.level.block.Block.dropResources(iblockdata, this.world.getMinecraftWorld(), position, this.world.getBlockEntity(position), null, nmsItem);
diff --git a/patches/server/0348-Entity-Jump-API.patch b/patches/server/0348-Entity-Jump-API.patch
index 7e52fa865a1f..5f414603d23b 100644
--- a/patches/server/0348-Entity-Jump-API.patch
+++ b/patches/server/0348-Entity-Jump-API.patch
@@ -48,7 +48,7 @@ index 344e933311f5cdccb66069d486b111a003639dfe..add3cd866452df727107e94fb2039bdd
              }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index d5f53ddf1bb24c933bf38efbe142411663ec2470..607e48cf2eb50f477bcacca636cacf27f01342ef 100644
+index a3842078a394241a3a9b4c398d13fcdbcb5dbe10..9ba85d099d0e6893dc3489ce0753119348e937b3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -906,5 +906,19 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0351-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0351-add-hand-to-BlockMultiPlaceEvent.patch
index 8e0a42cc5741..09a7646a9508 100644
--- a/patches/server/0351-add-hand-to-BlockMultiPlaceEvent.patch
+++ b/patches/server/0351-add-hand-to-BlockMultiPlaceEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] add hand to BlockMultiPlaceEvent
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 01ce54dba8c3efcc147b694ba57e070686375f68..ceca2bccb4c36713cf15fb1d7cab0cbd3f31aff5 100644
+index a1f6b35eec45e99013db02a727159d186150474a..accf3399f813ad062a3dba6eba99c16afe66045a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -401,13 +401,18 @@ public class CraftEventFactory {
diff --git a/patches/server/0357-Add-tick-times-API-and-mspt-command.patch b/patches/server/0357-Add-tick-times-API-and-mspt-command.patch
index 9f51624fda20..ab2086b3d8ef 100644
--- a/patches/server/0357-Add-tick-times-API-and-mspt-command.patch
+++ b/patches/server/0357-Add-tick-times-API-and-mspt-command.patch
@@ -184,10 +184,10 @@ index 4d3cd4a5dbf7adb482e60dc88ededdaccf558061..951e283d38cb7601049ac6f24385acde
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index fcb0f9cf49495ffbfd9acd25cd3049ca63fb33b9..93de9add395f36e3c1ba645434c858ae5e38e867 100644
+index fc1dcd6aae389d89ab2c0233448ea64b50c065a9..6e986a657af35ce6175c30abd7c68e3e3a878b83 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2533,6 +2533,16 @@ public final class CraftServer implements Server {
+@@ -2532,6 +2532,16 @@ public final class CraftServer implements Server {
                  net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
          };
      }
diff --git a/patches/server/0358-Expose-MinecraftServer-isRunning.patch b/patches/server/0358-Expose-MinecraftServer-isRunning.patch
index 1ea1387f8d78..fb8eae4b4984 100644
--- a/patches/server/0358-Expose-MinecraftServer-isRunning.patch
+++ b/patches/server/0358-Expose-MinecraftServer-isRunning.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
 This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 93de9add395f36e3c1ba645434c858ae5e38e867..81e8ff4c3901bb16ddfb09bda1237308b5c469e4 100644
+index 6e986a657af35ce6175c30abd7c68e3e3a878b83..79839c8e98e0489391579960b08aef055da931e4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2764,5 +2764,10 @@ public final class CraftServer implements Server {
+@@ -2763,5 +2763,10 @@ public final class CraftServer implements Server {
      public int getCurrentTick() {
          return net.minecraft.server.MinecraftServer.currentTick;
      }
diff --git a/patches/server/0359-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/server/0359-Add-Raw-Byte-ItemStack-Serialization.patch
index 178fa3a98c85..a14a6ac4261c 100644
--- a/patches/server/0359-Add-Raw-Byte-ItemStack-Serialization.patch
+++ b/patches/server/0359-Add-Raw-Byte-ItemStack-Serialization.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add Raw Byte ItemStack Serialization
 Serializes using NBT which is safer for server data migrations than bukkits format.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 6f2b9d0d2cc8b18d74b59bf77fec394d14211a24..3544ffd3af1e71cfd6fb198b4fa45da3167cd62d 100644
+index e7d5006fcf55c5a7ba1cea0dab0edd2bf410247c..46af63d8a36621f48a7610b5c3d55ae71639bcf5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -467,6 +467,52 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -448,6 +448,52 @@ public final class CraftMagicNumbers implements UnsafeValues {
      public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
          return new com.destroystokyo.paper.PaperVersionFetcher();
      }
diff --git a/patches/server/0375-Implement-Player-Client-Options-API.patch b/patches/server/0375-Implement-Player-Client-Options-API.patch
index c802d5b829c6..2a6f5b32ffc7 100644
--- a/patches/server/0375-Implement-Player-Client-Options-API.patch
+++ b/patches/server/0375-Implement-Player-Client-Options-API.patch
@@ -115,7 +115,7 @@ index 1ff911085da7d1a2a378c60c66f8e5364b9774b4..c13f088a74448f80e111bdeeb712087a
          if (getMainArm() != clientOptions.mainHand()) {
              PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6ef5547264dcd557a4dcdb5392b9fd5ef22d143d..f81ebf2e29bab66904644e106cdb2d1ca812a212 100644
+index 94cb3513aeef549da3626ff18c1ea0662252ecb9..f4a15de92c3af88624f337c36fadbea67d339064 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -604,6 +604,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0382-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0382-Fix-numerous-item-duplication-issues-and-teleport-is.patch
index 0db57134616a..afc62f6ab7cb 100644
--- a/patches/server/0382-Fix-numerous-item-duplication-issues-and-teleport-is.patch
+++ b/patches/server/0382-Fix-numerous-item-duplication-issues-and-teleport-is.patch
@@ -135,7 +135,7 @@ index 7eecbe85949e47b367014c04d7a37c2cbea80168..3d2d638da2d4b9c00f98477320b3300f
              }
          }
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index ceca2bccb4c36713cf15fb1d7cab0cbd3f31aff5..0b45481cdbbfbe4e1756e19e696e1c11d8fccd00 100644
+index accf3399f813ad062a3dba6eba99c16afe66045a..1a2f03895f348e4c2620caef74f12cb1f41dec1b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -868,6 +868,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0383-Villager-Restocks-API.patch b/patches/server/0383-Villager-Restocks-API.patch
index 87278ca4a8a8..b263d39f2a2c 100644
--- a/patches/server/0383-Villager-Restocks-API.patch
+++ b/patches/server/0383-Villager-Restocks-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Villager Restocks API
 public net.minecraft.world.entity.npc.Villager numberOfRestocksToday
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-index 0f12be424a9868c7c34174f92b503cd63399df19..6160f2c2886569b4400080d11beca399ef002ea0 100644
+index 6ee10f8a30041355a1fb0b805c7c61b7ac4ad5af..fb9f1fa2f66dbeb1ffea2679d6efe47ed616f0ab 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-@@ -85,6 +85,18 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
+@@ -87,6 +87,18 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
          this.getHandle().setVillagerXp(experience);
      }
  
diff --git a/patches/server/0385-Expose-game-version.patch b/patches/server/0385-Expose-game-version.patch
index 5765fe7db9bb..7cd7a4ea6061 100644
--- a/patches/server/0385-Expose-game-version.patch
+++ b/patches/server/0385-Expose-game-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose game version
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 81e8ff4c3901bb16ddfb09bda1237308b5c469e4..e843466c691b348b24826a9acbefa06c9098a28b 100644
+index 79839c8e98e0489391579960b08aef055da931e4..eb74938bd7429e19d675557626fe8fe3f1f691a3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -585,6 +585,13 @@ public final class CraftServer implements Server {
+@@ -584,6 +584,13 @@ public final class CraftServer implements Server {
          return this.bukkitVersion;
      }
  
diff --git a/patches/server/0388-misc-debugging-dumps.patch b/patches/server/0388-misc-debugging-dumps.patch
index 779481523b88..59ca3ab1b41c 100644
--- a/patches/server/0388-misc-debugging-dumps.patch
+++ b/patches/server/0388-misc-debugging-dumps.patch
@@ -74,10 +74,10 @@ index ed80d9551cd7cc1ec26a5d5fd7bc185b38fddd78..77e19f345bf68d12686a65e669cd597c
              this.connection.disconnect(ServerConfigurationPacketListenerImpl.DISCONNECT_REASON_INVALID_DATA);
          }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e843466c691b348b24826a9acbefa06c9098a28b..d58ecb5bbfe0c64a88da1b7705d6482d2722da18 100644
+index eb74938bd7429e19d675557626fe8fe3f1f691a3..e0adcbfb44284602c60bd140b5232a6e1c3b9c8f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1009,6 +1009,7 @@ public final class CraftServer implements Server {
+@@ -1008,6 +1008,7 @@ public final class CraftServer implements Server {
                  plugin.getDescription().getFullName(),
                  "This plugin is not properly shutting down its async tasks when it is being reloaded.  This may cause conflicts with the newly loaded version of the plugin"
              ));
diff --git a/patches/server/0391-Implement-Mob-Goal-API.patch b/patches/server/0391-Implement-Mob-Goal-API.patch
index bc48cef1c0ee..487546a6c6a1 100644
--- a/patches/server/0391-Implement-Mob-Goal-API.patch
+++ b/patches/server/0391-Implement-Mob-Goal-API.patch
@@ -792,10 +792,10 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31
          LOOK,
          JUMP,
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index d58ecb5bbfe0c64a88da1b7705d6482d2722da18..dd0b8f158718af34275589d772c64d94dfcb911d 100644
+index e0adcbfb44284602c60bd140b5232a6e1c3b9c8f..f9672add712045eb53d46ff849ba9caf72149a02 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2777,5 +2777,11 @@ public final class CraftServer implements Server {
+@@ -2776,5 +2776,11 @@ public final class CraftServer implements Server {
      public boolean isStopping() {
          return net.minecraft.server.MinecraftServer.getServer().hasStopped();
      }
diff --git a/patches/server/0392-Add-villager-reputation-API.patch b/patches/server/0392-Add-villager-reputation-API.patch
index 570f87c37385..a0dafd0a2509 100644
--- a/patches/server/0392-Add-villager-reputation-API.patch
+++ b/patches/server/0392-Add-villager-reputation-API.patch
@@ -57,10 +57,10 @@ index a28f359202e6502c6ea5e9c918ec0b3e9a3fca61..76dffb2705e5207db96895f82f1c7c56
  
      static record GossipEntry(UUID target, GossipType type, int value) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-index 6160f2c2886569b4400080d11beca399ef002ea0..b27b9001b8eb74c713e6766f0919110432775a2e 100644
+index fb9f1fa2f66dbeb1ffea2679d6efe47ed616f0ab..5e779b7f1ba40e418d24c9d37506420c83bfb3fe 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-@@ -16,6 +16,13 @@ import org.bukkit.entity.Villager;
+@@ -18,6 +18,13 @@ import org.bukkit.entity.Villager;
  import org.bukkit.entity.ZombieVillager;
  import org.bukkit.event.entity.CreatureSpawnEvent;
  
@@ -74,9 +74,9 @@ index 6160f2c2886569b4400080d11beca399ef002ea0..b27b9001b8eb74c713e6766f09191104
  public class CraftVillager extends CraftAbstractVillager implements Villager {
  
      public CraftVillager(CraftServer server, net.minecraft.world.entity.npc.Villager entity) {
-@@ -140,4 +147,45 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
-     public static VillagerProfession bukkitToNmsProfession(Profession bukkit) {
-         return BuiltInRegistries.VILLAGER_PROFESSION.get(CraftNamespacedKey.toMinecraft(bukkit.getKey()));
+@@ -176,4 +183,45 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
+                     .getOptional(CraftNamespacedKey.toMinecraft(bukkit.getKey())).orElseThrow();
+         }
      }
 +
 +    // Paper start - Add villager reputation API
diff --git a/patches/server/0393-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0393-Option-for-maximum-exp-value-when-merging-orbs.patch
index b4e0f5df2bf6..7bebe79b8838 100644
--- a/patches/server/0393-Option-for-maximum-exp-value-when-merging-orbs.patch
+++ b/patches/server/0393-Option-for-maximum-exp-value-when-merging-orbs.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Option for maximum exp value when merging orbs
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 0b45481cdbbfbe4e1756e19e696e1c11d8fccd00..b71024ebd675f4afd7ad2aa96393532758a28b63 100644
+index 1a2f03895f348e4c2620caef74f12cb1f41dec1b..463bd6c1327c2122b8c127a38399d80bf68ebdc0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -688,16 +688,30 @@ public class CraftEventFactory {
diff --git a/patches/server/0394-ExperienceOrbMergeEvent.patch b/patches/server/0394-ExperienceOrbMergeEvent.patch
index c34bb892edb3..7f2db9403368 100644
--- a/patches/server/0394-ExperienceOrbMergeEvent.patch
+++ b/patches/server/0394-ExperienceOrbMergeEvent.patch
@@ -9,7 +9,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 b71024ebd675f4afd7ad2aa96393532758a28b63..7aba049b426a25981376205410acf41327993d30 100644
+index 463bd6c1327c2122b8c127a38399d80bf68ebdc0..5954367915f2f68383d892d6927c9bfa1b739b77 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -698,7 +698,7 @@ public class CraftEventFactory {
diff --git a/patches/server/0395-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0395-Fix-PotionEffect-ignores-icon-flag.patch
index 569588e8d2a7..6dfeda8139d6 100644
--- a/patches/server/0395-Fix-PotionEffect-ignores-icon-flag.patch
+++ b/patches/server/0395-Fix-PotionEffect-ignores-icon-flag.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix PotionEffect ignores icon flag
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 607e48cf2eb50f477bcacca636cacf27f01342ef..02b7780a05f0119c2d1e9d379321105822629793 100644
+index 9ba85d099d0e6893dc3489ce0753119348e937b3..71a2ac37046adb3826bc2e76b4ac385c7e331f5e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -443,7 +443,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0398-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0398-Wait-for-Async-Tasks-during-shutdown.patch
index 728257ad505f..f033ff0e3f2f 100644
--- a/patches/server/0398-Wait-for-Async-Tasks-during-shutdown.patch
+++ b/patches/server/0398-Wait-for-Async-Tasks-during-shutdown.patch
@@ -22,10 +22,10 @@ index a107751a13ccef2729068e9b9822509374d20187..e2b4e7fb68aeaa2a95f3d1dfdd045217
          // CraftBukkit end
          this.getConnection().stop();
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dd0b8f158718af34275589d772c64d94dfcb911d..126552d1d27028f1872e9355c25a8a27ce199c73 100644
+index f9672add712045eb53d46ff849ba9caf72149a02..858bad98e46a0eec5e9b2b34acf956728b2a0f6d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1019,6 +1019,31 @@ public final class CraftServer implements Server {
+@@ -1018,6 +1018,31 @@ public final class CraftServer implements Server {
          org.spigotmc.WatchdogThread.hasStarted = true; // Paper - Disable watchdog early timeout on reload
      }
  
diff --git a/patches/server/0417-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0417-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index b647df586886..6856f7d5aad8 100644
--- a/patches/server/0417-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/patches/server/0417-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -102,10 +102,10 @@ index b664a4ae7b10ce3ea83186a6112c0db0cbd6112a..c3844274b185decd92d021e7c7343adb
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 126552d1d27028f1872e9355c25a8a27ce199c73..f212b3b42fa6086c8d6b60e246591d9dcd7cb6bf 100644
+index 858bad98e46a0eec5e9b2b34acf956728b2a0f6d..882801984304b8570669bc0ff9388fbfc3846dcf 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -958,8 +958,8 @@ public final class CraftServer implements Server {
+@@ -957,8 +957,8 @@ public final class CraftServer implements Server {
          org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
          this.console.paperConfigurations.reloadConfigs(this.console);
          for (ServerLevel world : this.console.getAllLevels()) {
@@ -117,7 +117,7 @@ index 126552d1d27028f1872e9355c25a8a27ce199c73..f212b3b42fa6086c8d6b60e246591d9d
              for (SpawnCategory spawnCategory : SpawnCategory.values()) {
                  if (CraftSpawnCategory.isValidForLimits(spawnCategory)) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index f5e54c4adc9466ba23a665cc8d14b2ce4efd00d5..872a0352008c6889f13b01f6a21e1a1da31f291e 100644
+index 0a9cf69ce0983f167ce63dc58eace455561da8e7..40a3a1e0bfb8c274b8de56d1ac3edca6c170296c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -1145,7 +1145,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0421-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0421-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
index 28c24c3f4fd0..c84336bf3786 100644
--- a/patches/server/0421-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
+++ b/patches/server/0421-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
@@ -22,10 +22,10 @@ wants it to collect even faster, they can restore that setting back to 1 instead
 Not adding it to .getType() though to keep behavior consistent with vanilla for performance reasons.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index f212b3b42fa6086c8d6b60e246591d9dcd7cb6bf..ca77f684288a26ee81e0f8bf5fa649290c48d147 100644
+index 882801984304b8570669bc0ff9388fbfc3846dcf..aa8b58a51792b1e4e6d18e13f06f697e3e2ebe72 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -385,7 +385,7 @@ public final class CraftServer implements Server {
+@@ -384,7 +384,7 @@ public final class CraftServer implements Server {
          this.overrideSpawnLimits();
          console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
          this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
@@ -34,7 +34,7 @@ index f212b3b42fa6086c8d6b60e246591d9dcd7cb6bf..ca77f684288a26ee81e0f8bf5fa64929
          this.minimumAPI = this.configuration.getString("settings.minimum-api");
          this.loadIcon();
  
-@@ -938,7 +938,7 @@ public final class CraftServer implements Server {
+@@ -937,7 +937,7 @@ public final class CraftServer implements Server {
          this.console.setMotd(config.motd);
          this.overrideSpawnLimits();
          this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
@@ -44,7 +44,7 @@ index f212b3b42fa6086c8d6b60e246591d9dcd7cb6bf..ca77f684288a26ee81e0f8bf5fa64929
          this.printSaveWarning = false;
          console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 872a0352008c6889f13b01f6a21e1a1da31f291e..53213501b5e818cdee4103c446ca9987f7e71d6d 100644
+index 40a3a1e0bfb8c274b8de56d1ac3edca6c170296c..53d4f1687527f383841ecc35ffc16d8bf8eefb78 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -279,7 +279,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0424-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0424-Convert-legacy-attributes-in-Item-Meta.patch
index fbc3090505e0..00e8b2c465ed 100644
--- a/patches/server/0424-Convert-legacy-attributes-in-Item-Meta.patch
+++ b/patches/server/0424-Convert-legacy-attributes-in-Item-Meta.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Convert legacy attributes in Item Meta
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
-index fac4097be2ee3d0bffbc92fb217f98831e78d6b3..233e372ba5d785352c9ac12dac37395bac63315c 100644
+index d4dba8c733c7560e5108b8d239b52e593f8debec..ea48f1119a940056c37d1d203437bfbfdf13663b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
 +++ b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
-@@ -12,6 +12,20 @@ import org.bukkit.craftbukkit.util.CraftNamespacedKey;
+@@ -9,6 +9,20 @@ import org.bukkit.attribute.AttributeInstance;
  public class CraftAttributeMap implements Attributable {
  
      private final AttributeMap handle;
@@ -30,10 +30,10 @@ index fac4097be2ee3d0bffbc92fb217f98831e78d6b3..233e372ba5d785352c9ac12dac37395b
      public CraftAttributeMap(AttributeMap handle) {
          this.handle = handle;
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index d7102d83bb781b6cf296cf9c637f8270f4ee8b14..d1f21b5f5600dba41a93378853aadacd24f4a1f3 100644
+index abccd9cb31c529142b64783873368fab7b38d312..224b7336b2b80c6810b45fe78c8d8ce581a53b4e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -483,7 +483,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -484,7 +484,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
  
              AttributeModifier attribMod = CraftAttributeInstance.convert(nmsModifier);
  
diff --git a/patches/server/0427-Support-components-in-ItemMeta.patch b/patches/server/0427-Support-components-in-ItemMeta.patch
index d08ab5c3a590..2bc9b2294c17 100644
--- a/patches/server/0427-Support-components-in-ItemMeta.patch
+++ b/patches/server/0427-Support-components-in-ItemMeta.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Support components in ItemMeta
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index d1f21b5f5600dba41a93378853aadacd24f4a1f3..b34f364f8580ae900e25ef3f31f58f4e8fee88e0 100644
+index 224b7336b2b80c6810b45fe78c8d8ce581a53b4e..76b4c43343fd3ee13662ac7cd6e0e5ae4df0d615 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -877,11 +877,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -878,11 +878,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          return CraftChatMessage.fromJSONComponent(displayName);
      }
  
@@ -32,7 +32,7 @@ index d1f21b5f5600dba41a93378853aadacd24f4a1f3..b34f364f8580ae900e25ef3f31f58f4e
      @Override
      public boolean hasDisplayName() {
          return this.displayName != null;
-@@ -1024,6 +1036,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1025,6 +1037,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          return this.lore == null ? null : new ArrayList<String>(Lists.transform(this.lore, CraftChatMessage::fromJSONComponent));
      }
  
@@ -47,7 +47,7 @@ index d1f21b5f5600dba41a93378853aadacd24f4a1f3..b34f364f8580ae900e25ef3f31f58f4e
      @Override
      public void setLore(List<String> lore) {
          if (lore == null || lore.isEmpty()) {
-@@ -1038,6 +1058,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1039,6 +1059,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          }
      }
  
@@ -69,7 +69,7 @@ index d1f21b5f5600dba41a93378853aadacd24f4a1f3..b34f364f8580ae900e25ef3f31f58f4e
      @Override
      public boolean hasCustomModelData() {
          return this.customModelData != null;
-@@ -1506,6 +1541,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1507,6 +1542,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
          }
  
          for (Object object : addFrom) {
diff --git a/patches/server/0429-Add-entity-liquid-API.patch b/patches/server/0429-Add-entity-liquid-API.patch
index 0118139b4db0..137f3148f2a2 100644
--- a/patches/server/0429-Add-entity-liquid-API.patch
+++ b/patches/server/0429-Add-entity-liquid-API.patch
@@ -8,10 +8,10 @@ public net.minecraft.world.entity.Entity isInRain()Z
 public net.minecraft.world.entity.Entity isInBubbleColumn()Z
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index c7cd18de51c5e7c9d194ba65902084194d4408ec..91d199250d856baa869258282bb04ed5897b14e9 100644
+index fa2cf604910977c0275f7731286618fe3c355a36..11d2fb9984f5d0cf91c8b3ae1153f0fcbb817a59 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1312,5 +1312,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1311,5 +1311,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
      public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason() {
          return getHandle().spawnReason;
      }
diff --git a/patches/server/0432-Add-PrepareResultEvent.patch b/patches/server/0432-Add-PrepareResultEvent.patch
index c1323ff0954d..7d404fbc9a8e 100644
--- a/patches/server/0432-Add-PrepareResultEvent.patch
+++ b/patches/server/0432-Add-PrepareResultEvent.patch
@@ -94,10 +94,10 @@ index 9c2fe69ced7a46bbd8b0fbe10fa67d0a39b0f375..70ecc3f673ebd56b65ad901e10f40c28
  
      private void setupRecipeList(Container input, ItemStack stack) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7aba049b426a25981376205410acf41327993d30..6018dc7aa4eaac45c1eee121925f4a22625b0e55 100644
+index 5954367915f2f68383d892d6927c9bfa1b739b77..e614b847543df4581dbbc79e3ffb69aa7c55e9cc 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1669,26 +1669,53 @@ public class CraftEventFactory {
+@@ -1671,26 +1671,53 @@ public class CraftEventFactory {
          return event;
      }
  
diff --git a/patches/server/0443-Brand-support.patch b/patches/server/0443-Brand-support.patch
index a14c9447df2b..9391d71b8fa1 100644
--- a/patches/server/0443-Brand-support.patch
+++ b/patches/server/0443-Brand-support.patch
@@ -48,7 +48,7 @@ index d1808bf9dc19fad84da5eb3b4c3d549bc624b00a..cce6febce229abdad859f183716cdefb
          return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f81ebf2e29bab66904644e106cdb2d1ca812a212..8a74046fd65f1bfa7ff22a0019fd8cdf989c7a00 100644
+index f4a15de92c3af88624f337c36fadbea67d339064..28c80b15f83947cf44f71da9f9d971f2d6e5dd5b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -3007,6 +3007,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0444-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0444-Add-playPickupItemAnimation-to-LivingEntity.patch
index 1b6b0d9a7fec..2518586ba37e 100644
--- a/patches/server/0444-Add-playPickupItemAnimation-to-LivingEntity.patch
+++ b/patches/server/0444-Add-playPickupItemAnimation-to-LivingEntity.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 02b7780a05f0119c2d1e9d379321105822629793..a0da8d022b9ab9c7b6ac6a32022739e863c2c9a0 100644
+index 71a2ac37046adb3826bc2e76b4ac385c7e331f5e..8ed8bd2c539af20aa97bff1c0f719c4c2f793fc5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -920,5 +920,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0446-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0446-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
index d802fd7dbab6..05ea1c1cfd85 100644
--- a/patches/server/0446-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
+++ b/patches/server/0446-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
@@ -21,7 +21,7 @@ index 6bb89597035894f9aedc52469a38f87f2be91893..2e2c85e58d311bff6fb65d7757987e42
              // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add
              this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 53213501b5e818cdee4103c446ca9987f7e71d6d..874598a1ae8b9adc3e746c01565986c11d12ca45 100644
+index 53d4f1687527f383841ecc35ffc16d8bf8eefb78..0f448e2652eb1d334bf9b8d6343e680365cc9e0b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -259,12 +259,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0447-Add-moon-phase-API.patch b/patches/server/0447-Add-moon-phase-API.patch
index afc9659d9898..df66928ff74b 100644
--- a/patches/server/0447-Add-moon-phase-API.patch
+++ b/patches/server/0447-Add-moon-phase-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add moon phase API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 91fbc67eefea473211b99e4338f6464f58dc5592..b5981001d8ad4d6c79b965be9a446352971b0d29 100644
+index 75d4c33768a8ab15a94bcb71b2aa724cad1ce0aa..93f44ca0c8388935baaa41f9b0ebb6de2f6906bb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -980,4 +980,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -981,4 +981,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
  
          throw new IllegalArgumentException("Cannot spawn an entity for " + clazz.getName());
      }
diff --git a/patches/server/0450-Add-BellRingEvent.patch b/patches/server/0450-Add-BellRingEvent.patch
index 6ee48b9906bb..d1b4164b8863 100644
--- a/patches/server/0450-Add-BellRingEvent.patch
+++ b/patches/server/0450-Add-BellRingEvent.patch
@@ -7,7 +7,7 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a
 village bell. Passes along the bell block and the player who rang it.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 6018dc7aa4eaac45c1eee121925f4a22625b0e55..9bdfb16720c9e5ca3254f8ea8463ca10077992ea 100644
+index e614b847543df4581dbbc79e3ffb69aa7c55e9cc..63b738c1f511e4663cad698e616cdc1528ee8c6b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -367,10 +367,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0457-Add-methods-to-get-translation-keys.patch b/patches/server/0457-Add-methods-to-get-translation-keys.patch
index e777a9128f62..ce1256ed3ee8 100644
--- a/patches/server/0457-Add-methods-to-get-translation-keys.patch
+++ b/patches/server/0457-Add-methods-to-get-translation-keys.patch
@@ -10,10 +10,10 @@ public org.bukkit.craftbukkit.inventory.CraftMetaFirework getNBT(Lorg/bukkit/Fir
 Co-authored-by: MeFisto94 <MeFisto94@users.noreply.github.com>
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 5534348ddb3ac42b6b8a687816c2c8c1858e3b3e..d2d5a43cfdf294ccc9353258250f5a990e205b88 100644
+index e172d05e9e2b8d7844ecff286430f94c1b2fd7db..5a1b0f2352016497099c68c5bcd09a43ebe8bf3a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -694,5 +694,10 @@ public class CraftBlock implements Block {
+@@ -668,5 +668,10 @@ public class CraftBlock implements Block {
      public org.bukkit.SoundGroup getBlockSoundGroup() {
          return org.bukkit.craftbukkit.CraftSoundGroup.getSoundGroup(this.getNMS().getSoundType());
      }
diff --git a/patches/server/0458-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0458-Create-HoverEvent-from-ItemStack-Entity.patch
index c1ff218feb90..a8eadef392b9 100644
--- a/patches/server/0458-Create-HoverEvent-from-ItemStack-Entity.patch
+++ b/patches/server/0458-Create-HoverEvent-from-ItemStack-Entity.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 5aece14ec931f4c564e847a2797e92da8ffb569b..ff05e29bdc8d21e9e6ddb4cb23f8fc9396481ffc 100644
+index 709c0e9ba7b33e97666ac74412761bb0e770a037..aa90b0bc1ca3f79a38b39442bf87e376cd2d73ae 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 @@ -491,4 +491,41 @@ public final class CraftItemFactory implements ItemFactory {
diff --git a/patches/server/0459-Cache-block-data-strings.patch b/patches/server/0459-Cache-block-data-strings.patch
index 8267b220db71..16519200a026 100644
--- a/patches/server/0459-Cache-block-data-strings.patch
+++ b/patches/server/0459-Cache-block-data-strings.patch
@@ -17,10 +17,10 @@ index 04258e07f806acd9a0d659b682e0119a5dc23adf..14e82938f919975c4ff8d463307d1d26
  
          if (this.isSameThread()) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-index c80aaa37b7d63acfb283641a4804dc2a32156eda..68dc8455427b6e3f60a4472db3a625028c413561 100644
+index 777539309639569d9057e4de86c3957a7a72a47f..448f90b7e15bca1fd0bcc70164e2ee9cb95f7c4e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-@@ -527,9 +527,39 @@ public class CraftBlockData implements BlockData {
+@@ -528,9 +528,39 @@ public class CraftBlockData implements BlockData {
          Preconditions.checkState(CraftBlockData.MAP.put(nms, bukkit) == null, "Duplicate mapping %s->%s", nms, bukkit);
      }
  
diff --git a/patches/server/0460-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0460-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index a52fbc026561..f72adda1b9b3 100644
--- a/patches/server/0460-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/patches/server/0460-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
@@ -69,10 +69,10 @@ index 369298dfd437c1c83801f3d4ba63484ee1b969fe..ae2b95f53e875716489821dc9b0a3a35
                          if (entity instanceof Mob) {
                              Mob entityinsentient = (Mob) entity;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 91d199250d856baa869258282bb04ed5897b14e9..889b24adb50825a3c4bd83f10c3d253e5cf80a1a 100644
+index 11d2fb9984f5d0cf91c8b3ae1153f0fcbb817a59..681a5d93933dcd02e857e260261b70e7252544a5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -580,7 +580,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -579,7 +579,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          }
  
          // entity.setLocation() throws no event, and so cannot be cancelled
diff --git a/patches/server/0464-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0464-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
index 472afd4a883c..898f425c94b6 100644
--- a/patches/server/0464-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
+++ b/patches/server/0464-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
@@ -21,10 +21,10 @@ index b0a73ddd7438b9ecd4462638f9f784d796c62c6c..71dc4112cb932c6b1305f0f22e99f069
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 3544ffd3af1e71cfd6fb198b4fa45da3167cd62d..336717e397d6d6572fd72da16f8585b349a80209 100644
+index 46af63d8a36621f48a7610b5c3d55ae71639bcf5..62ade83a9dbf4faf226b3a39c0e4249a231390dd 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -513,6 +513,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -494,6 +494,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
          Preconditions.checkArgument(dataVersion <= getDataVersion(), "Newer version! Server downgrades are not supported!");
          return compound;
      }
diff --git a/patches/server/0466-Entity-isTicking.patch b/patches/server/0466-Entity-isTicking.patch
index 4ef8d10ecad3..0467e6cc7cd0 100644
--- a/patches/server/0466-Entity-isTicking.patch
+++ b/patches/server/0466-Entity-isTicking.patch
@@ -19,10 +19,10 @@ index 71dc4112cb932c6b1305f0f22e99f069517cac08..cfdc8c37d41473300ca9a8c251e27cb2
      // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 889b24adb50825a3c4bd83f10c3d253e5cf80a1a..3f2a8efc6ad9e6e2043bf96894c47e578c68e263 100644
+index 681a5d93933dcd02e857e260261b70e7252544a5..4b826ff8c3c2bc07ab471557faf41a3398dbdfb9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1347,5 +1347,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1346,5 +1346,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
      public boolean isInLava() {
          return getHandle().isInLava();
      }
diff --git a/patches/server/0471-Optimise-getType-calls.patch b/patches/server/0471-Optimise-getType-calls.patch
index d135865cc410..46fa33fd853f 100644
--- a/patches/server/0471-Optimise-getType-calls.patch
+++ b/patches/server/0471-Optimise-getType-calls.patch
@@ -28,7 +28,7 @@ index da878e180c6b94f98dc82c6e8395f63ecc9b2c1e..a9b0f5950b6f97ea4c2a1075946b9200
          super(block, propertyMap, codec);
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunkSnapshot.java b/src/main/java/org/bukkit/craftbukkit/CraftChunkSnapshot.java
-index eebac2ea211f58c385b2ceb36ab911ac5e115296..d1aaca5de055fd5e3bf2c6d39ef397bbb2deeaae 100644
+index 89be1b21c918c5b81ec29fc460fa57d413fb498f..26223227f467c65f62d62a5cba6403979f62c753 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunkSnapshot.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunkSnapshot.java
 @@ -98,7 +98,7 @@ public class CraftChunkSnapshot implements ChunkSnapshot {
@@ -41,10 +41,10 @@ index eebac2ea211f58c385b2ceb36ab911ac5e115296..d1aaca5de055fd5e3bf2c6d39ef397bb
  
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index d2d5a43cfdf294ccc9353258250f5a990e205b88..2749f81fd74e466fa6b7c1c5f08d8defc5203b3e 100644
+index 5a1b0f2352016497099c68c5bcd09a43ebe8bf3a..ef1e77729b12a9ee0b13fa283f8200cc0c3968ce 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -224,7 +224,7 @@ public class CraftBlock implements Block {
+@@ -219,7 +219,7 @@ public class CraftBlock implements Block {
  
      @Override
      public Material getType() {
@@ -67,7 +67,7 @@ index 2773f47d4e7a9432ab1ccebfcdc22317ef762099..b722a207c0e745bb172d93b90e1241d7
  
      public void setFlag(int flag) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-index 68dc8455427b6e3f60a4472db3a625028c413561..68ffdb2140bdf8d00ed86db19d316735d9a6b2d1 100644
+index 448f90b7e15bca1fd0bcc70164e2ee9cb95f7c4e..3aa4a2ac3b81abc1446b7f7dae7f636438341790 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
 @@ -59,7 +59,7 @@ public class CraftBlockData implements BlockData {
@@ -80,7 +80,7 @@ index 68dc8455427b6e3f60a4472db3a625028c413561..68ffdb2140bdf8d00ed86db19d316735
  
      public net.minecraft.world.level.block.state.BlockState getState() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java
-index 79b6f88a32ea5eaf77757b8cc3824b6dac1558a7..7bfb9bc9689c5d9899b572862f3fbe53812f36b1 100644
+index 35cf747196b43a0f1d9237fdc12424288962f8bd..54c7877f1da51ff8be467fac5e0a37b1fd573d37 100644
 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java
 +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java
 @@ -95,7 +95,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData {
diff --git a/patches/server/0476-Player-elytra-boost-API.patch b/patches/server/0476-Player-elytra-boost-API.patch
index 24243d0d54ea..15b812e40129 100644
--- a/patches/server/0476-Player-elytra-boost-API.patch
+++ b/patches/server/0476-Player-elytra-boost-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player elytra boost API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8a74046fd65f1bfa7ff22a0019fd8cdf989c7a00..c7205ab86236fdd70d1dc4ce24174e19737db1b2 100644
+index 28c80b15f83947cf44f71da9f9d971f2d6e5dd5b..a0ee2811d691f0088d94a308705dab5529d52810 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -626,6 +626,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0479-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0479-Add-getOfflinePlayerIfCached-String.patch
index 971125205670..4485061e1404 100644
--- a/patches/server/0479-Add-getOfflinePlayerIfCached-String.patch
+++ b/patches/server/0479-Add-getOfflinePlayerIfCached-String.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String)
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index ca77f684288a26ee81e0f8bf5fa649290c48d147..aa16f21e6f47c3730294f1bec2c86ee8e3c028ba 100644
+index aa8b58a51792b1e4e6d18e13f06f697e3e2ebe72..2f04af83701777cddc1d5287b67921914779381f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1814,6 +1814,28 @@ public final class CraftServer implements Server {
+@@ -1813,6 +1813,28 @@ public final class CraftServer implements Server {
          return result;
      }
  
diff --git a/patches/server/0482-Fix-client-lag-on-advancement-loading.patch b/patches/server/0482-Fix-client-lag-on-advancement-loading.patch
index d1fcc453255a..ddef10d3c2b1 100644
--- a/patches/server/0482-Fix-client-lag-on-advancement-loading.patch
+++ b/patches/server/0482-Fix-client-lag-on-advancement-loading.patch
@@ -15,10 +15,10 @@ manually reload the advancement data for all players, which
 normally takes place as a part of the datapack reloading.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 336717e397d6d6572fd72da16f8585b349a80209..0fb0c8238be1e199220ef62576547ea6c9484a9c 100644
+index 62ade83a9dbf4faf226b3a39c0e4249a231390dd..b6436d708b2f99d3c923c112859ecd5ea2a123d8 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -346,7 +346,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -327,7 +327,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
                      Bukkit.getLogger().log(Level.SEVERE, "Error saving advancement " + key, ex);
                  }
  
diff --git a/patches/server/0489-Add-Destroy-Speed-API.patch b/patches/server/0489-Add-Destroy-Speed-API.patch
index 54a2a2c3dcd2..eda1608ac3b1 100644
--- a/patches/server/0489-Add-Destroy-Speed-API.patch
+++ b/patches/server/0489-Add-Destroy-Speed-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add Destroy Speed API
 Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-index 68ffdb2140bdf8d00ed86db19d316735d9a6b2d1..f4e37764f714419a614a7e40718924788a204d28 100644
+index 3aa4a2ac3b81abc1446b7f7dae7f636438341790..5b67d4dd280688093d7e36e59e5b2ec6ebdc796c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-@@ -688,4 +688,19 @@ public class CraftBlockData implements BlockData {
+@@ -689,4 +689,19 @@ public class CraftBlockData implements BlockData {
      public BlockState createBlockState() {
          return CraftBlockStates.getBlockState(this.state, null);
      }
diff --git a/patches/server/0490-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0490-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
index 05d2a7bd405c..cd353d76930c 100644
--- a/patches/server/0490-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
+++ b/patches/server/0490-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index c7205ab86236fdd70d1dc4ce24174e19737db1b2..4e0612ebe2bee43d14a56679fa11b1aa69fe4bad 100644
+index a0ee2811d691f0088d94a308705dab5529d52810..47fdb3c21e10f86c34c1634708dac784577cd5f0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2536,7 +2536,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0491-Add-LivingEntity-clearActiveItem.patch b/patches/server/0491-Add-LivingEntity-clearActiveItem.patch
index d76138007033..3c5a99d1c481 100644
--- a/patches/server/0491-Add-LivingEntity-clearActiveItem.patch
+++ b/patches/server/0491-Add-LivingEntity-clearActiveItem.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index a0da8d022b9ab9c7b6ac6a32022739e863c2c9a0..833c1d37fde5e726933da6ac0076c6ea072389ca 100644
+index 8ed8bd2c539af20aa97bff1c0f719c4c2f793fc5..66a4d3d3626e4382e07617d0af464e6fbd8a9427 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -887,6 +887,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0500-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0500-Fix-CraftSound-backwards-compatibility.patch
index 9795fec129a0..9ca7f86992d3 100644
--- a/patches/server/0500-Fix-CraftSound-backwards-compatibility.patch
+++ b/patches/server/0500-Fix-CraftSound-backwards-compatibility.patch
@@ -5,12 +5,12 @@ Subject: [PATCH] Fix CraftSound backwards compatibility
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftSound.java b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
-index 180275a8b9d48d0c5a7bbaa950de619aed2dad53..5b68188d1a7b5a75e2f4b61e8d415b5784e0d8c0 100644
+index 260a738d5d61cf931b939502ea9c66451855b91e..dce716b6ac407d1e1ae07272ee5c8b14f891f5fa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftSound.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
-@@ -27,4 +27,10 @@ public class CraftSound {
-     public static Sound getBukkit(SoundEvent soundEffect) {
-         return Registry.SOUNDS.get(CraftNamespacedKey.fromMinecraft(BuiltInRegistries.SOUND_EVENT.getKey(soundEffect)));
+@@ -40,4 +40,10 @@ public class CraftSound {
+         throw new IllegalArgumentException("No Reference holder found for " + bukkit
+                 + ", this can happen if a plugin creates its own sound effect with out properly registering it.");
      }
 +
 +    // Paper start
diff --git a/patches/server/0503-Expose-LivingEntity-hurt-direction.patch b/patches/server/0503-Expose-LivingEntity-hurt-direction.patch
index 12b46ea681a9..e5c1724c8296 100644
--- a/patches/server/0503-Expose-LivingEntity-hurt-direction.patch
+++ b/patches/server/0503-Expose-LivingEntity-hurt-direction.patch
@@ -36,7 +36,7 @@ index 05d9a9968588381aaa3aeb06ef4d18fed4085229..c9f4f496a92ff8465a21f22f326dc025
      public int getSleepTicks() {
          return this.getHandle().sleepCounter;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 833c1d37fde5e726933da6ac0076c6ea072389ca..4d41a73281c851c1ff9506074f7590c06105efbb 100644
+index 66a4d3d3626e4382e07617d0af464e6fbd8a9427..a1e2d78fd9a57a59887419d356be8eab72045574 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -932,5 +932,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0504-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0504-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
index b5cb8b897384..097c1f9904e3 100644
--- a/patches/server/0504-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
+++ b/patches/server/0504-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 9bdfb16720c9e5ca3254f8ea8463ca10077992ea..84941643036e4dc1cf135a24360e6a1c011969d5 100644
+index 63b738c1f511e4663cad698e616cdc1528ee8c6b..8a0c2d37830b002e7dab8e2e0567f6d1e597d5fb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -302,6 +302,10 @@ public class CraftEventFactory {
diff --git a/patches/server/0509-Additional-Block-Material-API-s.patch b/patches/server/0509-Additional-Block-Material-API-s.patch
index 558eead684b8..1526eefd6e71 100644
--- a/patches/server/0509-Additional-Block-Material-API-s.patch
+++ b/patches/server/0509-Additional-Block-Material-API-s.patch
@@ -9,10 +9,10 @@ process to do this in the Bukkit API
 Adds API for buildable, replaceable, burnable too.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 2749f81fd74e466fa6b7c1c5f08d8defc5203b3e..5e0f16acbd892f815cc504e03cd186070598b530 100644
+index ef1e77729b12a9ee0b13fa283f8200cc0c3968ce..4239fa3d992722bd1d9184bb5c33ce5c14010052 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -465,6 +465,25 @@ public class CraftBlock implements Block {
+@@ -439,6 +439,25 @@ public class CraftBlock implements Block {
          return this.getNMS().liquid();
      }
  
diff --git a/patches/server/0520-Added-WorldGameRuleChangeEvent.patch b/patches/server/0520-Added-WorldGameRuleChangeEvent.patch
index 0b2f2b4fbe5e..79640a941984 100644
--- a/patches/server/0520-Added-WorldGameRuleChangeEvent.patch
+++ b/patches/server/0520-Added-WorldGameRuleChangeEvent.patch
@@ -64,7 +64,7 @@ index 6a1001cb708a7f779a801428d2b00fbcde888bc1..2e240ad721928a9a68370114ba61c218
  
          public int get() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 874598a1ae8b9adc3e746c01565986c11d12ca45..78d89ba85910f1a8b5a85c7f9a5ff0752d664d57 100644
+index 0f448e2652eb1d334bf9b8d6343e680365cc9e0b..9df709acc93157ffd86793c259e608bd3c0ff722 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -1840,8 +1840,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0523-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0523-Implemented-BlockFailedDispenseEvent.patch
index cbf31d885b26..20f3d70b06de 100644
--- a/patches/server/0523-Implemented-BlockFailedDispenseEvent.patch
+++ b/patches/server/0523-Implemented-BlockFailedDispenseEvent.patch
@@ -32,10 +32,10 @@ index 7dd0570b2457c612484ab89a8efcedd094c4772c..b1ba2c1da9d7b59a5316574deb824740
              } else {
                  ItemStack itemstack = tileentitydispenser.getItem(i);
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 84941643036e4dc1cf135a24360e6a1c011969d5..851ac82b242d513015487c15476a66d2b8b2158d 100644
+index 8a0c2d37830b002e7dab8e2e0567f6d1e597d5fb..93946b9e5a7dc61f797e81fcff9c2cef86e61340 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1997,4 +1997,12 @@ public class CraftEventFactory {
+@@ -1999,4 +1999,12 @@ public class CraftEventFactory {
          Bukkit.getPluginManager().callEvent(event);
          return event;
      }
diff --git a/patches/server/0530-Add-sendOpLevel-API.patch b/patches/server/0530-Add-sendOpLevel-API.patch
index 6ac7b014b5cb..aa5163a0bfd4 100644
--- a/patches/server/0530-Add-sendOpLevel-API.patch
+++ b/patches/server/0530-Add-sendOpLevel-API.patch
@@ -32,7 +32,7 @@ index 709c37e41f566a8301ec26ca76eb28c44a9bf1cd..adc96e0c4f81375253b540a3b003a00e
  
      public boolean isWhiteListed(GameProfile profile) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4e0612ebe2bee43d14a56679fa11b1aa69fe4bad..ad04638955bebdf1392f9dc58be1de699858f5b3 100644
+index 47fdb3c21e10f86c34c1634708dac784577cd5f0..7362f0e73533c6b202021b93057cc0a23b5f3e99 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -640,6 +640,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0538-Implement-BlockPreDispenseEvent.patch b/patches/server/0538-Implement-BlockPreDispenseEvent.patch
index d181c4d701c1..8f6bfbc56be8 100644
--- a/patches/server/0538-Implement-BlockPreDispenseEvent.patch
+++ b/patches/server/0538-Implement-BlockPreDispenseEvent.patch
@@ -17,10 +17,10 @@ index 5cf5b451fecb1ff04d0c4aca1fb0b702c7f99bdf..9b1e51c1d95da885c80c6d05000d8343
                      tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack));
                  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 851ac82b242d513015487c15476a66d2b8b2158d..b6648899c2146dbd41c3e4cafabeb3f7db129738 100644
+index 93946b9e5a7dc61f797e81fcff9c2cef86e61340..4bce7c239e33f675fef71416d0c825e6dc874f59 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2004,5 +2004,11 @@ public class CraftEventFactory {
+@@ -2006,5 +2006,11 @@ public class CraftEventFactory {
          io.papermc.paper.event.block.BlockFailedDispenseEvent event = new io.papermc.paper.event.block.BlockFailedDispenseEvent(block);
          return event.callEvent();
      }
diff --git a/patches/server/0542-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0542-Add-dropLeash-variable-to-EntityUnleashEvent.patch
index d803e01df61c..cbeafdb54976 100644
--- a/patches/server/0542-Add-dropLeash-variable-to-EntityUnleashEvent.patch
+++ b/patches/server/0542-Add-dropLeash-variable-to-EntityUnleashEvent.patch
@@ -122,10 +122,10 @@ index 16784fcc853e23689a854e7dc6c03ed8182a164e..4eb97572a97a8d98af37c4223f42fc63
                              flag1 = true;
                          }
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index b6648899c2146dbd41c3e4cafabeb3f7db129738..afa573305f4fff403b72273b2faee76b1cb0e185 100644
+index 4bce7c239e33f675fef71416d0c825e6dc874f59..932035fe739404a1bafe05e9de71aa570ffa3726 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1592,8 +1592,10 @@ public class CraftEventFactory {
+@@ -1594,8 +1594,10 @@ public class CraftEventFactory {
          return itemInHand;
      }
  
diff --git a/patches/server/0548-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0548-Allow-adding-items-to-BlockDropItemEvent.patch
index 8036fdcc36ef..63c3ff474720 100644
--- a/patches/server/0548-Allow-adding-items-to-BlockDropItemEvent.patch
+++ b/patches/server/0548-Allow-adding-items-to-BlockDropItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index afa573305f4fff403b72273b2faee76b1cb0e185..5bb610230e5686dd8a35c5c14c506ffacd5868c9 100644
+index 932035fe739404a1bafe05e9de71aa570ffa3726..fc99df6033f4168ac1bc3ee7da11ac36d827f7bf 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -451,13 +451,30 @@ public class CraftEventFactory {
diff --git a/patches/server/0550-living-entity-allow-attribute-registration.patch b/patches/server/0550-living-entity-allow-attribute-registration.patch
index 680c5b940804..84f0585507de 100644
--- a/patches/server/0550-living-entity-allow-attribute-registration.patch
+++ b/patches/server/0550-living-entity-allow-attribute-registration.patch
@@ -22,26 +22,23 @@ index d5dfb08f550f5644ff5164170d6c16a3b25a3748..7204b973c3ad9239e82355513f6d5381
 +
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
-index 233e372ba5d785352c9ac12dac37395bac63315c..0e61caa5c9f21788fbeaa90ed75d23e10b816aac 100644
+index ea48f1119a940056c37d1d203437bfbfdf13663b..a3f989fd1775adbb84d197c51e22c1889a2f8e18 100644
 --- a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
 +++ b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
-@@ -39,6 +39,14 @@ public class CraftAttributeMap implements Attributable {
+@@ -35,4 +35,11 @@ public class CraftAttributeMap implements Attributable {
+ 
          return (nms == null) ? null : new CraftAttributeInstance(nms, attribute);
      }
- 
 +    // Paper start
 +    @Override
 +    public void registerAttribute(Attribute attribute) {
 +        Preconditions.checkArgument(attribute != null, "attribute");
-+        handle.registerAttribute(CraftAttributeMap.toMinecraft(attribute));
++        handle.registerAttribute(CraftAttribute.bukkitToMinecraft(attribute));
 +    }
 +    // Paper end
-+
-     public static net.minecraft.world.entity.ai.attributes.Attribute toMinecraft(Attribute attribute) {
-         return BuiltInRegistries.ATTRIBUTE.get(CraftNamespacedKey.toMinecraft(attribute.getKey()));
-     }
+ }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 4d41a73281c851c1ff9506074f7590c06105efbb..13b4873923d64ab4b18795ce7f2dbc9a7abf067e 100644
+index a1e2d78fd9a57a59887419d356be8eab72045574..fac638e0eab8c50e6afd0ceee6f9d051127221eb 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -710,6 +710,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0553-Expose-Tracked-Players.patch b/patches/server/0553-Expose-Tracked-Players.patch
index 706316556e37..d0b87766ad48 100644
--- a/patches/server/0553-Expose-Tracked-Players.patch
+++ b/patches/server/0553-Expose-Tracked-Players.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose Tracked Players
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 3f2a8efc6ad9e6e2043bf96894c47e578c68e263..de7deb9c27ffb7628124270091a5ba81b075c824 100644
+index 4b826ff8c3c2bc07ab471557faf41a3398dbdfb9..e7686273141637e5c7328703a33224b4042b6e2b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1352,5 +1352,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1351,5 +1351,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
      public boolean isTicking() {
          return getHandle().isTicking();
      }
diff --git a/patches/server/0561-Add-Block-isValidTool.patch b/patches/server/0561-Add-Block-isValidTool.patch
index 90157a5ee18c..f28e5d98e052 100644
--- a/patches/server/0561-Add-Block-isValidTool.patch
+++ b/patches/server/0561-Add-Block-isValidTool.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Block#isValidTool
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 5e0f16acbd892f815cc504e03cd186070598b530..7dcc1fa9c058adf2d55b1ccc6f7abf468752e116 100644
+index 4239fa3d992722bd1d9184bb5c33ce5c14010052..5a6cc60d345dc146a2ce9bbd177b67a17bf5312b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -718,5 +718,9 @@ public class CraftBlock implements Block {
+@@ -692,5 +692,9 @@ public class CraftBlock implements Block {
      public String translationKey() {
          return this.getNMS().getBlock().getDescriptionId();
      }
diff --git a/patches/server/0563-Expand-world-key-API.patch b/patches/server/0563-Expand-world-key-API.patch
index cb8ec89bcb9f..c1ab64bc8fc3 100644
--- a/patches/server/0563-Expand-world-key-API.patch
+++ b/patches/server/0563-Expand-world-key-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expand world key API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index b5981001d8ad4d6c79b965be9a446352971b0d29..0624ba7f1f5b352a5730b6b4736b24998af0ad2a 100644
+index 93f44ca0c8388935baaa41f9b0ebb6de2f6906bb..53b62be779bbb31723c4953221d8b5f22e77824c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -986,5 +986,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -987,5 +987,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
      public io.papermc.paper.world.MoonPhase getMoonPhase() {
          return io.papermc.paper.world.MoonPhase.getPhase(this.getHandle().dayTime() / 24000L);
      }
@@ -20,10 +20,10 @@ index b5981001d8ad4d6c79b965be9a446352971b0d29..0624ba7f1f5b352a5730b6b4736b2499
      // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index aa16f21e6f47c3730294f1bec2c86ee8e3c028ba..cca320f018e0a59c55af09f7707f9121ad99a0ac 100644
+index 2f04af83701777cddc1d5287b67921914779381f..ca03eb363438d97de71b1fe4b07304e4f8d3f422 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1140,9 +1140,15 @@ public final class CraftServer implements Server {
+@@ -1139,9 +1139,15 @@ public final class CraftServer implements Server {
          File folder = new File(this.getWorldContainer(), name);
          World world = this.getWorld(name);
  
@@ -41,7 +41,7 @@ index aa16f21e6f47c3730294f1bec2c86ee8e3c028ba..cca320f018e0a59c55af09f7707f9121
  
          if (folder.exists()) {
              Preconditions.checkArgument(folder.isDirectory(), "File (%s) exists and isn't a folder", name);
-@@ -1229,7 +1235,7 @@ public final class CraftServer implements Server {
+@@ -1228,7 +1234,7 @@ public final class CraftServer implements Server {
          } else if (name.equals(levelName + "_the_end")) {
              worldKey = net.minecraft.world.level.Level.END;
          } else {
@@ -50,7 +50,7 @@ index aa16f21e6f47c3730294f1bec2c86ee8e3c028ba..cca320f018e0a59c55af09f7707f9121
          }
  
          ServerLevel internal = (ServerLevel) new ServerLevel(this.console, console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(11),
-@@ -1321,6 +1327,15 @@ public final class CraftServer implements Server {
+@@ -1320,6 +1326,15 @@ public final class CraftServer implements Server {
          return null;
      }
  
@@ -67,10 +67,10 @@ index aa16f21e6f47c3730294f1bec2c86ee8e3c028ba..cca320f018e0a59c55af09f7707f9121
          // Check if a World already exists with the UID.
          if (this.getWorld(world.getUID()) != null) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 0fb0c8238be1e199220ef62576547ea6c9484a9c..1f21a5c60c5472b1694d379326d391c0866456cc 100644
+index b6436d708b2f99d3c923c112859ecd5ea2a123d8..8a2b8f8b36e54b97fa2518eb54c31da8fe0d6d67 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -524,6 +524,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -505,6 +505,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
      public int nextEntityId() {
          return net.minecraft.world.entity.Entity.nextEntityId();
      }
diff --git a/patches/server/0565-Item-Rarity-API.patch b/patches/server/0565-Item-Rarity-API.patch
index 2a9be0545b1b..fa9a145dc3ed 100644
--- a/patches/server/0565-Item-Rarity-API.patch
+++ b/patches/server/0565-Item-Rarity-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Item Rarity API
 public net.minecraft.world.item.Item rarity
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 1f21a5c60c5472b1694d379326d391c0866456cc..d50b92daec5fec3056af9620681da28b10222829 100644
+index 8a2b8f8b36e54b97fa2518eb54c31da8fe0d6d67..2039442d5d7f99e6589e4625a76ebbc62944d018 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -529,6 +529,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -510,6 +510,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
      public String getMainLevelName() {
          return ((net.minecraft.server.dedicated.DedicatedServer) net.minecraft.server.MinecraftServer.getServer()).getProperties().levelName;
      }
diff --git a/patches/server/0569-Expose-protocol-version.patch b/patches/server/0569-Expose-protocol-version.patch
index 0b31d15dba68..213d964b4dc1 100644
--- a/patches/server/0569-Expose-protocol-version.patch
+++ b/patches/server/0569-Expose-protocol-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose protocol version
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index d50b92daec5fec3056af9620681da28b10222829..da21cb49d986f899ed174c8c1abd35bcb03d31f2 100644
+index 2039442d5d7f99e6589e4625a76ebbc62944d018..aed137c6857190e6dad62ab70ae0be3613f3bea3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -543,6 +543,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -524,6 +524,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
      public io.papermc.paper.inventory.ItemRarity getItemStackRarity(org.bukkit.inventory.ItemStack itemStack) {
          return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()];
      }
diff --git a/patches/server/0573-Set-area-affect-cloud-rotation.patch b/patches/server/0573-Set-area-affect-cloud-rotation.patch
index 30ba5d84bd92..963479559a02 100644
--- a/patches/server/0573-Set-area-affect-cloud-rotation.patch
+++ b/patches/server/0573-Set-area-affect-cloud-rotation.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Set area affect cloud rotation
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 0624ba7f1f5b352a5730b6b4736b24998af0ad2a..42b6369015cdfea983b1489f7b99428eaa8c62a5 100644
+index 53b62be779bbb31723c4953221d8b5f22e77824c..0e8cf9386fa8b869e3738ac408be2dc86b9a2d9b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -952,6 +952,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -953,6 +953,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
              entity.moveTo(location.getX(), location.getY(), location.getZ());
          } else if (AreaEffectCloud.class.isAssignableFrom(clazz)) {
              entity = new net.minecraft.world.entity.AreaEffectCloud(world, x, y, z);
diff --git a/patches/server/0580-More-World-API.patch b/patches/server/0580-More-World-API.patch
index b77b6f98e0f3..a49876d9be8e 100644
--- a/patches/server/0580-More-World-API.patch
+++ b/patches/server/0580-More-World-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] More World API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 78d89ba85910f1a8b5a85c7f9a5ff0752d664d57..2091641963b0dec3931d0fb4701ba843533f0d51 100644
+index 9df709acc93157ffd86793c259e608bd3c0ff722..245464d5e805fa1a31c3a6ebe94e6705567ef5d5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -2083,6 +2083,69 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0596-Add-basic-Datapack-API.patch b/patches/server/0596-Add-basic-Datapack-API.patch
index e42c671b7be2..f4b6915d3901 100644
--- a/patches/server/0596-Add-basic-Datapack-API.patch
+++ b/patches/server/0596-Add-basic-Datapack-API.patch
@@ -92,10 +92,10 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index cca320f018e0a59c55af09f7707f9121ad99a0ac..d345a6a9ed7f97e3abcd38633617a2c4ee0a3563 100644
+index ca03eb363438d97de71b1fe4b07304e4f8d3f422..3e505c1b680e1f384c5148ba309b6cf6b3da1e45 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -304,6 +304,7 @@ public final class CraftServer implements Server {
+@@ -303,6 +303,7 @@ public final class CraftServer implements Server {
      public boolean ignoreVanillaPermissions = false;
      private final List<CraftPlayer> playerView;
      public int reloadCount;
@@ -103,7 +103,7 @@ index cca320f018e0a59c55af09f7707f9121ad99a0ac..d345a6a9ed7f97e3abcd38633617a2c4
      public static Exception excessiveVelEx; // Paper - Velocity warnings
  
      static {
-@@ -393,6 +394,7 @@ public final class CraftServer implements Server {
+@@ -392,6 +393,7 @@ public final class CraftServer implements Server {
          if (this.configuration.getBoolean("settings.use-map-color-cache")) {
              MapPalette.setMapColorCache(new CraftMapColorCache(this.logger));
          }
@@ -111,7 +111,7 @@ index cca320f018e0a59c55af09f7707f9121ad99a0ac..d345a6a9ed7f97e3abcd38633617a2c4
      }
  
      public boolean getCommandBlockOverride(String command) {
-@@ -2845,5 +2847,11 @@ public final class CraftServer implements Server {
+@@ -2844,5 +2846,11 @@ public final class CraftServer implements Server {
      public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
          return mobGoals;
      }
diff --git a/patches/server/0598-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0598-additions-to-PlayerGameModeChangeEvent.patch
index 95c5de648139..2bb04a477bd5 100644
--- a/patches/server/0598-additions-to-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0598-additions-to-PlayerGameModeChangeEvent.patch
@@ -144,7 +144,7 @@ index 73ea4907e81d7fd7830b3a9a368c88ac903428bb..4ba775edd90e716435c9ff5dc5579d96
                      }
                  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ad04638955bebdf1392f9dc58be1de699858f5b3..18a446978fdf956e935e6a6c66413b7f528ea671 100644
+index 7362f0e73533c6b202021b93057cc0a23b5f3e99..944416df4eeed12c3ca0b98db7df8295f7e327ec 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1564,7 +1564,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0599-ItemStack-repair-check-API.patch b/patches/server/0599-ItemStack-repair-check-API.patch
index 77d7423de885..bf21ddcf1916 100644
--- a/patches/server/0599-ItemStack-repair-check-API.patch
+++ b/patches/server/0599-ItemStack-repair-check-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack repair check API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index da21cb49d986f899ed174c8c1abd35bcb03d31f2..1e70a661ec459edb1bca28ddf0a833c95c2453ac 100644
+index aed137c6857190e6dad62ab70ae0be3613f3bea3..794c1da115ccfa26fd77f7b28406e6298d88f3db 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -544,6 +544,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -525,6 +525,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
          return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()];
      }
  
diff --git a/patches/server/0600-More-Enchantment-API.patch b/patches/server/0600-More-Enchantment-API.patch
index 7cd15497dccc..3be6d778875a 100644
--- a/patches/server/0600-More-Enchantment-API.patch
+++ b/patches/server/0600-More-Enchantment-API.patch
@@ -66,7 +66,7 @@ index 57decf4156f176ebcc988478c17856cbc555c5e4..3d0ce0803e1da8a2681a3cb41096ac94
  
      public net.minecraft.world.item.enchantment.Enchantment getHandle() {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 13b4873923d64ab4b18795ce7f2dbc9a7abf067e..9d9616a4adcbcc0d2567bdcf0d57efdabda076d4 100644
+index fac638e0eab8c50e6afd0ceee6f9d051127221eb..65f516044128328e7729c971a4a299cc81d51b0a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -949,5 +949,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0602-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0602-Fix-and-optimise-world-force-upgrading.patch
index 156f945d7035..453b9cca80e6 100644
--- a/patches/server/0602-Fix-and-optimise-world-force-upgrading.patch
+++ b/patches/server/0602-Fix-and-optimise-world-force-upgrading.patch
@@ -360,10 +360,10 @@ index b850dba2b0fa5bc762b170ed7083cf8904761f17..7dee0f7d49f3492c92fceff7750e6962
          return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ()));
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index d345a6a9ed7f97e3abcd38633617a2c4ee0a3563..3c2095addcf434ca52071100a9a22d6a8e2e6827 100644
+index 3e505c1b680e1f384c5148ba309b6cf6b3da1e45..a2eb6d59fca4ed219ee4215e46758c4c20d6e893 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1217,9 +1217,7 @@ public final class CraftServer implements Server {
+@@ -1216,9 +1216,7 @@ public final class CraftServer implements Server {
          worlddata.checkName(name);
          worlddata.setModdedInfo(this.console.getServerModName(), this.console.getModdedStatus().shouldReportAsModified());
  
@@ -374,7 +374,7 @@ index d345a6a9ed7f97e3abcd38633617a2c4ee0a3563..3c2095addcf434ca52071100a9a22d6a
  
          long j = BiomeManager.obfuscateSeed(creator.seed());
          List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
-@@ -1230,6 +1228,13 @@ public final class CraftServer implements Server {
+@@ -1229,6 +1227,13 @@ public final class CraftServer implements Server {
              biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
          }
  
diff --git a/patches/server/0603-Add-Mob-lookAt-API.patch b/patches/server/0603-Add-Mob-lookAt-API.patch
index 2179be5193dc..b60d6b1767ac 100644
--- a/patches/server/0603-Add-Mob-lookAt-API.patch
+++ b/patches/server/0603-Add-Mob-lookAt-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Mob#lookAt API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
-index c92f7f31c3bf96f22fb1d2e783b14b80512448a0..4d0c6e3aaf984e295061d878dd4a8ef4d19511cb 100644
+index 522b7cb1db22b02279b004916ad2a14447a6bbed..c90f9b519c82327b787d2920b3bb079efb0c7e8a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 @@ -99,5 +99,53 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
diff --git a/patches/server/0606-Attributes-API-for-item-defaults.patch b/patches/server/0606-Attributes-API-for-item-defaults.patch
index 46d838e328e1..a1c744a84d66 100644
--- a/patches/server/0606-Attributes-API-for-item-defaults.patch
+++ b/patches/server/0606-Attributes-API-for-item-defaults.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Attributes API for item defaults
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 1e70a661ec459edb1bca28ddf0a833c95c2453ac..1123bba2af7c707e8237fb1336f0b958861c4119 100644
+index 794c1da115ccfa26fd77f7b28406e6298d88f3db..b16e22ab5f371ce8d84a77a2f709d3541d48d3b6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -552,6 +552,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -533,6 +533,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
          return CraftMagicNumbers.getItem(itemToBeRepaired.getType()).isValidRepairItem(CraftItemStack.asNMSCopy(itemToBeRepaired), CraftItemStack.asNMSCopy(repairMaterial));
      }
  
@@ -20,7 +20,7 @@ index 1e70a661ec459edb1bca28ddf0a833c95c2453ac..1123bba2af7c707e8237fb1336f0b958
 +        }
 +        ImmutableMultimap.Builder<Attribute, AttributeModifier> attributeMapBuilder = ImmutableMultimap.builder();
 +        item.getDefaultAttributeModifiers(CraftEquipmentSlot.getNMS(equipmentSlot)).forEach((attributeBase, attributeModifier) -> {
-+            attributeMapBuilder.put(CraftAttributeMap.fromMinecraft(net.minecraft.core.registries.BuiltInRegistries.ATTRIBUTE.getKey(attributeBase).toString()), CraftAttributeInstance.convert(attributeModifier, equipmentSlot));
++            attributeMapBuilder.put(CraftAttribute.stringToBukkit(net.minecraft.core.registries.BuiltInRegistries.ATTRIBUTE.getKey(attributeBase).toString()), CraftAttributeInstance.convert(attributeModifier, equipmentSlot));
 +        });
 +        return attributeMapBuilder.build();
 +    }
diff --git a/patches/server/0607-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0607-Add-cause-to-Weather-ThunderChangeEvents.patch
index f22f9d8f60be..b04130b99ef4 100644
--- a/patches/server/0607-Add-cause-to-Weather-ThunderChangeEvents.patch
+++ b/patches/server/0607-Add-cause-to-Weather-ThunderChangeEvents.patch
@@ -95,7 +95,7 @@ index 14b8011c8874e05647eb1636ee1eed5d90da8200..7bfc5bbfcf67e5bbf57e99e648ff5bed
              if (weather.isCancelled()) {
                  return;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 2091641963b0dec3931d0fb4701ba843533f0d51..aa30b166cc84088cac8ed27e9bcae0dd3403fd5a 100644
+index 245464d5e805fa1a31c3a6ebe94e6705567ef5d5..180bf822d361fbae7247c78e7cc3ae412a5a7e48 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -1181,7 +1181,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0610-Add-PlayerKickEvent-causes.patch b/patches/server/0610-Add-PlayerKickEvent-causes.patch
index 5137fa867cfa..9a1e7dcbd9b9 100644
--- a/patches/server/0610-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0610-Add-PlayerKickEvent-causes.patch
@@ -479,7 +479,7 @@ index 6724d0a1af13e97bc1d3bd94fd43fef742a0deab..20ba0a0c9eae28658888a77dd2170f62
      }
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 18a446978fdf956e935e6a6c66413b7f528ea671..058e5d18e72e07e50fc33e447e30d3c8861022ee 100644
+index 944416df4eeed12c3ca0b98db7df8295f7e327ec..cbda3c45af426d31dd950ddc03d36ae394d9420e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -586,7 +586,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0614-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0614-Add-option-to-fix-items-merging-through-walls.patch
index ce33ff909f92..8f2e06ffef7a 100644
--- a/patches/server/0614-Add-option-to-fix-items-merging-through-walls.patch
+++ b/patches/server/0614-Add-option-to-fix-items-merging-through-walls.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add option to fix items merging through walls
 
 
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index 5d742d072d2cc532ce86bff3de15a5f0f381d1c5..b8db8750125315b15cc3d3e76ee629a60c4546a1 100644
+index a7eccb2f364ed633cb6d4914491eb686ff02e647..d70abca10e84b86310ce5e4d72eb939331dc00e4 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -258,6 +258,14 @@ public class ItemEntity extends Entity implements TraceableEntity {
diff --git a/patches/server/0620-Make-item-validations-configurable.patch b/patches/server/0620-Make-item-validations-configurable.patch
index 3f5b80b14af2..af27648f4fec 100644
--- a/patches/server/0620-Make-item-validations-configurable.patch
+++ b/patches/server/0620-Make-item-validations-configurable.patch
@@ -32,10 +32,10 @@ index 5d72d2c6fcab478121eb9b4216cf79532b58299e..88c899e323eb554febe191ac7df678bb
          }
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index b34f364f8580ae900e25ef3f31f58f4e8fee88e0..1481c8ca684eddca3eb5db3aceac4877043b9fcd 100644
+index 76b4c43343fd3ee13662ac7cd6e0e5ae4df0d615..9b266dd16dbf863dcf08783ec665dd237b048793 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -360,7 +360,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -361,7 +361,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
              CompoundTag display = tag.getCompound(DISPLAY.NBT);
  
              if (display.contains(NAME.NBT)) {
@@ -44,7 +44,7 @@ index b34f364f8580ae900e25ef3f31f58f4e8fee88e0..1481c8ca684eddca3eb5db3aceac4877
              }
  
              if (display.contains(LOCNAME.NBT)) {
-@@ -371,7 +371,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -372,7 +372,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
                  ListTag list = display.getList(LORE.NBT, CraftMagicNumbers.NBT.TAG_STRING);
                  this.lore = new ArrayList<String>(list.size());
                  for (int index = 0; index < list.size(); index++) {
diff --git a/patches/server/0621-Line-Of-Sight-Changes.patch b/patches/server/0621-Line-Of-Sight-Changes.patch
index 2cad6b1f27a9..0efb326f7778 100644
--- a/patches/server/0621-Line-Of-Sight-Changes.patch
+++ b/patches/server/0621-Line-Of-Sight-Changes.patch
@@ -19,10 +19,10 @@ index 59a377a291927b843b9e4fb4a558eeb729f3d6a8..1427616a0f1c80d381831d8928a4b632
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 42b6369015cdfea983b1489f7b99428eaa8c62a5..5a949e1d482e2485742e24b63395204b7fc7d1f5 100644
+index 0e8cf9386fa8b869e3738ac408be2dc86b9a2d9b..c3a26a55f46737a470448c6554d6827b1d6fc89c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -992,5 +992,21 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -993,5 +993,21 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
      public org.bukkit.NamespacedKey getKey() {
          return org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(this.getHandle().getLevel().dimension().location());
      }
@@ -45,7 +45,7 @@ index 42b6369015cdfea983b1489f7b99428eaa8c62a5..5a949e1d482e2485742e24b63395204b
      // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 9d9616a4adcbcc0d2567bdcf0d57efdabda076d4..40dd8ef6f034be2d5866a0c253566026d59ed91a 100644
+index 65f516044128328e7729c971a4a299cc81d51b0a..7876e243d6389bdfc33a5bf7e18eb3b33256919b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -583,6 +583,23 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0622-add-per-world-spawn-limits.patch b/patches/server/0622-add-per-world-spawn-limits.patch
index d2b35a2549ff..5c4088d46b63 100644
--- a/patches/server/0622-add-per-world-spawn-limits.patch
+++ b/patches/server/0622-add-per-world-spawn-limits.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] add per world spawn limits
 Taken from #2982. Credit to Chasewhip8
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index aa30b166cc84088cac8ed27e9bcae0dd3403fd5a..b778a911ec072bf375232dd94fc29cb1de1ea88c 100644
+index 180bf822d361fbae7247c78e7cc3ae412a5a7e48..975b7c20f3755e463c1d65d8de7d63f26bfaf56b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -212,6 +212,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0624-Add-more-LimitedRegion-API.patch b/patches/server/0624-Add-more-LimitedRegion-API.patch
index af3f4ff82eaa..2a50497e38f6 100644
--- a/patches/server/0624-Add-more-LimitedRegion-API.patch
+++ b/patches/server/0624-Add-more-LimitedRegion-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add more LimitedRegion API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-index bc606693566419c143d19284b110961602c2810b..23ffe4b8a19286543e12bf7408879e6d1305a78f 100644
+index a4aaa1da9987aaf2ac3b9338d272ca55ab2ac948..5830635e96ab9e10320f790f17a3b345c690ff85 100644
 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
 +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
 @@ -249,4 +249,45 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
diff --git a/patches/server/0626-Missing-Entity-API.patch b/patches/server/0626-Missing-Entity-API.patch
index 1e0ae53ca485..230b5aa981d9 100644
--- a/patches/server/0626-Missing-Entity-API.patch
+++ b/patches/server/0626-Missing-Entity-API.patch
@@ -360,10 +360,10 @@ index 61d4877b4f74362e38104bfeacb7d66534ad798e..454dd67920826b8b62c2654abfd43fc0
      @Override
      protected EntityHitResult findHitEntity(Vec3 currentPosition, Vec3 nextPosition) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5a949e1d482e2485742e24b63395204b7fc7d1f5..977012bfa4c42d619f2e9729c2be032999c403f7 100644
+index c3a26a55f46737a470448c6554d6827b1d6fc89c..c0186224fd64d70770a0e16752d17c0870121d8f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -828,14 +828,19 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -829,14 +829,19 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
              } else if (Phantom.class.isAssignableFrom(clazz)) {
                  entity = net.minecraft.world.entity.EntityType.PHANTOM.create(world);
              } else if (Fish.class.isAssignableFrom(clazz)) {
@@ -431,7 +431,7 @@ index 3f1f4d65525562b3117fdc21c8a7f535b12c3c46..90a989c7c9de6f9ba55ab640761915e9
 +    // Paper end - Horse API
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
-index 1d910c34bc1154243b5a3bd774c70f1808d60a25..e2cfb4a162efaa3cae1fdae95ec74efe4a3af627 100644
+index 78487d6c87a9b4ae3b2065957290417323c1109e..c13d7fd15d8614f1ced30569fd1eae732a31b800 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
 @@ -223,4 +223,17 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
@@ -530,13 +530,14 @@ index 86ad6073a130100258908d3f2c93c54e21e998f3..17608e0e8cc5288905d2e42ae1429f7d
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
-index 566da8f88d9ee76baf41e5a4cdf0b73fd424c6b9..533a339a2c7369475f1a66ae2c8bb1df04914614 100644
+index 94be7d7d88b38d73592a6a76ee9b9b755ba6c588..6c9531c018be29b5794d047b50007fde1b50b494 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
-@@ -44,4 +44,25 @@ public class CraftCat extends CraftTameableAnimal implements Cat {
-     public void setCollarColor(DyeColor color) {
-         this.getHandle().setCollarColor(net.minecraft.world.item.DyeColor.byId(color.getWoolData()));
+@@ -64,4 +64,26 @@ public class CraftCat extends CraftTameableAnimal implements Cat {
+                     .byId(bukkit.ordinal());
+         }
      }
++
 +    // Paper Start - More cat api
 +    @Override
 +    public void setLyingDown(boolean lyingDown) {
@@ -657,10 +658,10 @@ index fc0f0e841dc974d080e1abb9bbafb5165801131f..d657fd2c507a5b215aeab0a5f3e9c2ee
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index de7deb9c27ffb7628124270091a5ba81b075c824..4fe558a882e87912e408b5bbd223666969e30029 100644
+index e7686273141637e5c7328703a33224b4042b6e2b..367d01e22ab423b17a0b3d4732e507f8ae2979ea 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -233,10 +233,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -232,10 +232,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
                      else { return new CraftSquid(server, (Squid) entity); }
                  }
                  else if (entity instanceof AbstractFish) {
@@ -1147,10 +1148,10 @@ index c4f7216c7ca7a49048fcf5240ef2a8f80e843f1c..6079581ba2eef8ac9272d0bbbf77e31f
  
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
-index d83c0e08610fff76f7bce1103acfa48be674c018..3c14554a6a657223441eee97258734ea05965bc7 100644
+index e2a0c11867abee6add8775259c54f2052de7b1ad..fd968881eeec6dc5bdf90decc23a2bfc619c410d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
-@@ -64,13 +64,20 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
+@@ -60,13 +60,20 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
  
      @Override
      public void setConversionTime(int time) {
diff --git a/patches/server/0628-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0628-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
index 4dd7979d6be3..62c862fdb82b 100644
--- a/patches/server/0628-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
+++ b/patches/server/0628-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix return value of Block#applyBoneMeal always being false
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 7dcc1fa9c058adf2d55b1ccc6f7abf468752e116..50469bbd710375c6046647203435330c5bc21a4f 100644
+index 5a6cc60d345dc146a2ce9bbd177b67a17bf5312b..4c4e242305edf7b8bfa6761cd7e8c9498982608c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -583,7 +583,7 @@ public class CraftBlock implements Block {
+@@ -557,7 +557,7 @@ public class CraftBlock implements Block {
              }
          }
  
diff --git a/patches/server/0638-Stinger-API.patch b/patches/server/0638-Stinger-API.patch
index 3933867aa6ee..9e8f26a8d252 100644
--- a/patches/server/0638-Stinger-API.patch
+++ b/patches/server/0638-Stinger-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Stinger API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 40dd8ef6f034be2d5866a0c253566026d59ed91a..1a911126ccb7b7e298b66d3fec832dcd0c0e58f7 100644
+index 7876e243d6389bdfc33a5bf7e18eb3b33256919b..59d0002c70e2dae6ab9cb896e0a80e16993e64f3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -338,7 +338,28 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0640-Add-System.out-err-catcher.patch b/patches/server/0640-Add-System.out-err-catcher.patch
index cdb6c08dc3b5..f191c334a6ab 100644
--- a/patches/server/0640-Add-System.out-err-catcher.patch
+++ b/patches/server/0640-Add-System.out-err-catcher.patch
@@ -105,10 +105,10 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 3c2095addcf434ca52071100a9a22d6a8e2e6827..22610215d4b71843291eed9d482592dc3448ab0d 100644
+index a2eb6d59fca4ed219ee4215e46758c4c20d6e893..3253875b3001befebc8ff63a237bfa491fcd42f0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -306,6 +306,7 @@ public final class CraftServer implements Server {
+@@ -305,6 +305,7 @@ public final class CraftServer implements Server {
      public int reloadCount;
      private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper
      public static Exception excessiveVelEx; // Paper - Velocity warnings
diff --git a/patches/server/0645-Add-PlayerSetSpawnEvent.patch b/patches/server/0645-Add-PlayerSetSpawnEvent.patch
index e3c707ed20f2..dc78ab51dc9e 100644
--- a/patches/server/0645-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0645-Add-PlayerSetSpawnEvent.patch
@@ -187,7 +187,7 @@ index 1a27b7faa22e6b3dc5fce329ed06425de56c4315..b9903c29bdea8d1e3b6fce0e97be6bd9
              }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 058e5d18e72e07e50fc33e447e30d3c8861022ee..471f25a82a109a58c4093d3a834d8131357c32da 100644
+index cbda3c45af426d31dd950ddc03d36ae394d9420e..18f37eff3c60c52580d49c3398e5ef01245b4412 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1323,9 +1323,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0658-Add-missing-team-sidebar-display-slots.patch b/patches/server/0658-Add-missing-team-sidebar-display-slots.patch
index 8743a4eb1cda..84c701a25b19 100644
--- a/patches/server/0658-Add-missing-team-sidebar-display-slots.patch
+++ b/patches/server/0658-Add-missing-team-sidebar-display-slots.patch
@@ -52,10 +52,10 @@ index 73c5ffff70605b32188a9bb5fb6c0ee04cb66efe..711d227f5ee6d63356a94a0567968da4
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index fe5d3b60ad740b7f1cce040f9c8d96ac51245ef6..43ffc4180b1ef2d2000991ad58b0706141470d08 100644
+index cfaa85dc3d567bf0110e45fc4e4f24a406b41a45..313cd180cbad5727433daae4c15ffa4e1e948eaa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -251,6 +251,14 @@ public class Commodore
+@@ -239,6 +239,14 @@ public class Commodore
                              desc = getOriginalOrRewrite( desc );
                          }
                          // Paper end
diff --git a/patches/server/0660-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0660-Add-methods-to-find-targets-for-lightning-strikes.patch
index 7acd6065b2d8..f6cee6d23fd7 100644
--- a/patches/server/0660-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/server/0660-Add-methods-to-find-targets-for-lightning-strikes.patch
@@ -31,7 +31,7 @@ index b71e404acd353757cb64489cfe3804988db70409..257eedb5413521e1e3ce6a6a6376e0c8
                      blockposition1 = blockposition1.above(2);
                  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index b778a911ec072bf375232dd94fc29cb1de1ea88c..b2137bc4ef0282f9d14068609b7aca7d0708bfe3 100644
+index 975b7c20f3755e463c1d65d8de7d63f26bfaf56b..e4eb19d37ec3128a0f0c96e154605fccc8ba822a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -693,6 +693,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0661-Get-entity-default-attributes.patch b/patches/server/0661-Get-entity-default-attributes.patch
index 2f03d56c7985..cdb057450e59 100644
--- a/patches/server/0661-Get-entity-default-attributes.patch
+++ b/patches/server/0661-Get-entity-default-attributes.patch
@@ -44,7 +44,7 @@ index 0000000000000000000000000000000000000000..12135ffeacd648f6bc4d7d327059ea1a
 +}
 diff --git a/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeMap.java b/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeMap.java
 new file mode 100644
-index 0000000000000000000000000000000000000000..cf9d28ea97d93cec05c9fb768d59e283ca915565
+index 0000000000000000000000000000000000000000..68044b8439c302114240d0ae4da93ab3e0789cd2
 --- /dev/null
 +++ b/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeMap.java
 @@ -0,0 +1,32 @@
@@ -54,7 +54,7 @@ index 0000000000000000000000000000000000000000..cf9d28ea97d93cec05c9fb768d59e283
 +import org.bukkit.attribute.Attributable;
 +import org.bukkit.attribute.Attribute;
 +import org.bukkit.attribute.AttributeInstance;
-+import org.bukkit.craftbukkit.attribute.CraftAttributeMap;
++import org.bukkit.craftbukkit.attribute.CraftAttribute;
 +import org.jetbrains.annotations.NotNull;
 +import org.jetbrains.annotations.Nullable;
 +
@@ -68,7 +68,7 @@ index 0000000000000000000000000000000000000000..cf9d28ea97d93cec05c9fb768d59e283
 +
 +    @Override
 +    public @Nullable AttributeInstance getAttribute(@NotNull Attribute attribute) {
-+        net.minecraft.world.entity.ai.attributes.Attribute nmsAttribute = CraftAttributeMap.toMinecraft(attribute);
++        net.minecraft.world.entity.ai.attributes.Attribute nmsAttribute = CraftAttribute.bukkitToMinecraft(attribute);
 +        if (!this.handle.hasAttribute(nmsAttribute)) {
 +            return null;
 +        }
@@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..cf9d28ea97d93cec05c9fb768d59e283
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 1123bba2af7c707e8237fb1336f0b958861c4119..ffd94f9af2e39f1fdb076835c32cc7287329f6dd 100644
+index b16e22ab5f371ce8d84a77a2f709d3541d48d3b6..b697619abf1bce42a15a38d959dad37d49055c30 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -569,6 +569,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -550,6 +550,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
      public int getProtocolVersion() {
          return net.minecraft.SharedConstants.getCurrentVersion().getProtocolVersion();
      }
diff --git a/patches/server/0662-Left-handed-API.patch b/patches/server/0662-Left-handed-API.patch
index 3b4077b54a98..367c9ed9bcc6 100644
--- a/patches/server/0662-Left-handed-API.patch
+++ b/patches/server/0662-Left-handed-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Left handed API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
-index 4d0c6e3aaf984e295061d878dd4a8ef4d19511cb..620d918e302a00d5a6640648e3096988d15535a0 100644
+index c90f9b519c82327b787d2920b3bb079efb0c7e8a..c526304d31fd9be1b3c895187f7d9fc45edf4866 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 @@ -147,5 +147,15 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
diff --git a/patches/server/0663-Add-more-advancement-API.patch b/patches/server/0663-Add-more-advancement-API.patch
index 2acb44facc69..1d9f8d9a4a7c 100644
--- a/patches/server/0663-Add-more-advancement-API.patch
+++ b/patches/server/0663-Add-more-advancement-API.patch
@@ -164,10 +164,10 @@ index 4aa8cda2bf72627b153e636a408fb3971caf2309..e29d7c6e1cef10a76c8630855fada11c
  
      private final DisplayInfo handle;
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 43ffc4180b1ef2d2000991ad58b0706141470d08..cacd9b59741c31e70e898e7af91a1a6ed3f87f07 100644
+index 313cd180cbad5727433daae4c15ffa4e1e948eaa..8f8b14cb845bf1ba28276b3e3c0d8f8c56106c7d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -54,6 +54,7 @@ public class Commodore
+@@ -56,6 +56,7 @@ public class Commodore
      ) );
  
      // Paper start - Plugin rewrites
@@ -175,7 +175,7 @@ index 43ffc4180b1ef2d2000991ad58b0706141470d08..cacd9b59741c31e70e898e7af91a1a6e
      private static final Map<String, String> SEARCH_AND_REMOVE = initReplacementsMap();
      private static Map<String, String> initReplacementsMap()
      {
-@@ -460,6 +461,11 @@ public class Commodore
+@@ -454,6 +455,11 @@ public class Commodore
                              super.visitMethodInsn(opcode, owner, name, "()Lcom/destroystokyo/paper/profile/PlayerProfile;", itf);
                              return;
                          }
diff --git a/patches/server/0664-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0664-Add-ItemFactory-getSpawnEgg-API.patch
index e5dbfedc6533..ed29983bdd15 100644
--- a/patches/server/0664-Add-ItemFactory-getSpawnEgg-API.patch
+++ b/patches/server/0664-Add-ItemFactory-getSpawnEgg-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add ItemFactory#getSpawnEgg API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index ff05e29bdc8d21e9e6ddb4cb23f8fc9396481ffc..3b02bf4e5b657af9debb432ab412fe50e1f7b922 100644
+index aa90b0bc1ca3f79a38b39442bf87e376cd2d73ae..48a88dae70fdf2757537d4a90aa60046e6346323 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 @@ -528,4 +528,19 @@ public final class CraftItemFactory implements ItemFactory {
@@ -29,10 +29,10 @@ index ff05e29bdc8d21e9e6ddb4cb23f8fc9396481ffc..3b02bf4e5b657af9debb432ab412fe50
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index cacd9b59741c31e70e898e7af91a1a6ed3f87f07..b7d09079411f70353f44df3c623a0076367cf603 100644
+index 8f8b14cb845bf1ba28276b3e3c0d8f8c56106c7d..d7495ea25713e959d106764054ce6642af497035 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -467,6 +467,16 @@ public class Commodore
+@@ -461,6 +461,16 @@ public class Commodore
                              return;
                          }
                          // Paper end
diff --git a/patches/server/0665-Add-critical-damage-API.patch b/patches/server/0665-Add-critical-damage-API.patch
index 7879ed048b7a..b4fe4d7fb3a7 100644
--- a/patches/server/0665-Add-critical-damage-API.patch
+++ b/patches/server/0665-Add-critical-damage-API.patch
@@ -71,7 +71,7 @@ index f70f0764d9743dbfa2ead4c90d0df3dbc107672d..02574c777047b8e1375aa91e0cd75c73
          int k = entity.getRemainingFireTicks();
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 5bb610230e5686dd8a35c5c14c506ffacd5868c9..f171124710b5e731652df0074fe24360239225b2 100644
+index fc99df6033f4168ac1bc3ee7da11ac36d827f7bf..6c7f7ae5208e9fa58694f202f048d2f3524b27a4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1018,7 +1018,7 @@ public class CraftEventFactory {
diff --git a/patches/server/0667-Add-isCollidable-methods-to-various-places.patch b/patches/server/0667-Add-isCollidable-methods-to-various-places.patch
index c6003c0743d4..b5addfe224e4 100644
--- a/patches/server/0667-Add-isCollidable-methods-to-various-places.patch
+++ b/patches/server/0667-Add-isCollidable-methods-to-various-places.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add isCollidable methods to various places
 public net.minecraft.world.level.block.state.BlockBehaviour hasCollision
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 50469bbd710375c6046647203435330c5bc21a4f..e649c3296363ea2f8429593e33a7833143bcabba 100644
+index 4c4e242305edf7b8bfa6761cd7e8c9498982608c..5fa6a77ccd01deb929d86efc227439f4f280ba53 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -482,6 +482,11 @@ public class CraftBlock implements Block {
+@@ -456,6 +456,11 @@ public class CraftBlock implements Block {
      public boolean isSolid() {
          return this.getNMS().blocksMotion();
      }
@@ -39,10 +39,10 @@ index b722a207c0e745bb172d93b90e1241d7bfa173ce..792bfc7eab33b26462e76a1912bd712e
 +    // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index ffd94f9af2e39f1fdb076835c32cc7287329f6dd..c6d38178513bd54bb51640334777d4a347a93284 100644
+index b697619abf1bce42a15a38d959dad37d49055c30..ce6b2198db6a48e9e1899db94c49a6c108950f61 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -581,6 +581,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -562,6 +562,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
          var supplier = net.minecraft.world.entity.ai.attributes.DefaultAttributes.getSupplier((net.minecraft.world.entity.EntityType<? extends net.minecraft.world.entity.LivingEntity>) net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(bukkitEntityKey)));
          return new io.papermc.paper.attribute.UnmodifiableAttributeMap(supplier);
      }
diff --git a/patches/server/0670-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0670-Add-Raw-Byte-Entity-Serialization.patch
index 4bbfe755cfda..5bbc3a32d77a 100644
--- a/patches/server/0670-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/server/0670-Add-Raw-Byte-Entity-Serialization.patch
@@ -27,10 +27,10 @@ index 3b7e54b4348f0486e43b4f7930ada0a16e989650..6512c3ca611233f7541c1d0119521e05
          return this.isPassenger() ? false : this.saveAsPassenger(nbt);
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 4fe558a882e87912e408b5bbd223666969e30029..984e6fa489e6b3d833d5f83dd739a6ff8a3ec5f0 100644
+index 367d01e22ab423b17a0b3d4732e507f8ae2979ea..ad0ea49e2ee26d20ac93771a2353b186d0ccd41d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1371,5 +1371,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1370,5 +1370,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          }
          return set;
      }
@@ -47,10 +47,10 @@ index 4fe558a882e87912e408b5bbd223666969e30029..984e6fa489e6b3d833d5f83dd739a6ff
      // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index c6d38178513bd54bb51640334777d4a347a93284..e169c16626e967c30c6f9a324a40550adf5476dd 100644
+index ce6b2198db6a48e9e1899db94c49a6c108950f61..186959e6e7aef0dada59320d3f180c99a93bc90c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -492,6 +492,29 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -473,6 +473,29 @@ public final class CraftMagicNumbers implements UnsafeValues {
          return CraftItemStack.asCraftMirror(net.minecraft.world.item.ItemStack.of(ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.ITEM_STACK, compound, dataVersion, getDataVersion())));
      }
  
diff --git a/patches/server/0674-Improve-and-expand-AsyncCatcher.patch b/patches/server/0674-Improve-and-expand-AsyncCatcher.patch
index 901a93acd627..dc14586dd1db 100644
--- a/patches/server/0674-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0674-Improve-and-expand-AsyncCatcher.patch
@@ -166,7 +166,7 @@ index 47bab513feec217d875192afef61f3af95b93d24..d3fb277878adb26c7d80cf21f2707038
                  PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason});
              }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 1a911126ccb7b7e298b66d3fec832dcd0c0e58f7..661638716cd4d1b20745f3a196f6d060b3de570c 100644
+index 59d0002c70e2dae6ab9cb896e0a80e16993e64f3..26054a3b4e2609cb68751d6e37bce22df94c46b8 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -464,6 +464,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0675-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0675-Add-paper-mobcaps-and-paper-playermobcaps.patch
index 318fd7edcec8..3dfdeead726f 100644
--- a/patches/server/0675-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0675-Add-paper-mobcaps-and-paper-playermobcaps.patch
@@ -278,10 +278,10 @@ index 7983f9a21251cec4857529ad1180a62668ea5037..e1c4cf4b60b810837526c888ec82acbf
          // Paper start - add parameters and int ret type
          spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 22610215d4b71843291eed9d482592dc3448ab0d..a39127c21e313b9bdd7796b57cfb5c241d589db5 100644
+index 3253875b3001befebc8ff63a237bfa491fcd42f0..854980b4d52403a22847167b89b89cf3dda1793c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2184,6 +2184,11 @@ public final class CraftServer implements Server {
+@@ -2183,6 +2183,11 @@ public final class CraftServer implements Server {
  
      @Override
      public int getSpawnLimit(SpawnCategory spawnCategory) {
@@ -294,7 +294,7 @@ index 22610215d4b71843291eed9d482592dc3448ab0d..a39127c21e313b9bdd7796b57cfb5c24
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index b2137bc4ef0282f9d14068609b7aca7d0708bfe3..cda158bb560c32f7dbea05cd4adb3d38f6db5280 100644
+index e4eb19d37ec3128a0f0c96e154605fccc8ba822a..99f075d23484301259daabbab0569fc780e02b5b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -1699,9 +1699,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0725-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0725-Allow-delegation-to-vanilla-chunk-gen.patch
index e5000ed7322f..1c3a82d35b6b 100644
--- a/patches/server/0725-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/server/0725-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a39127c21e313b9bdd7796b57cfb5c241d589db5..f951c5ff4058f91540eb2da95ca433be5e590196 100644
+index 854980b4d52403a22847167b89b89cf3dda1793c..a68374e527a9d8f29863baf8e18fbd09d45e4185 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2364,6 +2364,88 @@ public final class CraftServer implements Server {
+@@ -2363,6 +2363,88 @@ public final class CraftServer implements Server {
          return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME));
      }
  
diff --git a/patches/server/0728-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0728-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
index c0e3e643ee27..1f09d15414ec 100644
--- a/patches/server/0728-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
+++ b/patches/server/0728-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix ChunkSnapshot#isSectionEmpty(int) and optimize
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-index b738e1f7debac7d70910d5ac908ca9d4f60640d5..007fd353bd55056ecddba2e16c5fa8c479961402 100644
+index d10dcf5b9c987bbd4761470c16c9d4693ccf896d..3a5fbdd0915ae19fc0bb717bc117792d71e73af8 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-@@ -289,13 +289,17 @@ public class CraftChunk implements Chunk {
+@@ -290,13 +290,17 @@ public class CraftChunk implements Chunk {
          PalettedContainerRO<Holder<net.minecraft.world.level.biome.Biome>>[] biome = (includeBiome || includeBiomeTempRain) ? new PalettedContainer[cs.length] : null;
  
          Registry<net.minecraft.world.level.biome.Biome> iregistry = this.worldServer.registryAccess().registryOrThrow(Registries.BIOME);
@@ -31,7 +31,7 @@ index b738e1f7debac7d70910d5ac908ca9d4f60640d5..007fd353bd55056ecddba2e16c5fa8c4
  
              LevelLightEngine lightengine = this.worldServer.getLightEngine();
              DataLayer skyLightArray = lightengine.getLayerListener(LightLayer.SKY).getDataLayerData(SectionPos.of(x, i, z));
-@@ -314,8 +318,7 @@ public class CraftChunk implements Chunk {
+@@ -315,8 +319,7 @@ public class CraftChunk implements Chunk {
              }
  
              if (biome != null) {
diff --git a/patches/server/0734-Entity-powdered-snow-API.patch b/patches/server/0734-Entity-powdered-snow-API.patch
index 2ef1f74e6b7d..5f73447eb111 100644
--- a/patches/server/0734-Entity-powdered-snow-API.patch
+++ b/patches/server/0734-Entity-powdered-snow-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Entity powdered snow API
 public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 984e6fa489e6b3d833d5f83dd739a6ff8a3ec5f0..f05d8107368e639adf60f3e5d944c65300087a3c 100644
+index ad0ea49e2ee26d20ac93771a2353b186d0ccd41d..e4c587d6304492d936ec3d84303c4cf3b093a2b0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1381,5 +1381,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1380,5 +1380,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          this.entity.setRot(location.getYaw(), location.getPitch());
          return !this.entity.valid && this.entity.level().addFreshEntity(this.entity, reason);
      }
diff --git a/patches/server/0742-Bucketable-API.patch b/patches/server/0742-Bucketable-API.patch
index 795b1844e39d..4345ec75a6b9 100644
--- a/patches/server/0742-Bucketable-API.patch
+++ b/patches/server/0742-Bucketable-API.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Bucketable API
 
 diff --git a/src/main/java/io/papermc/paper/entity/PaperBucketable.java b/src/main/java/io/papermc/paper/entity/PaperBucketable.java
 new file mode 100644
-index 0000000000000000000000000000000000000000..c4eee682f5b8cd82f71f92f0549f39b76e735cd8
+index 0000000000000000000000000000000000000000..d3fc2e5db9f3c20120b403bf03c3c340b9956cbd
 --- /dev/null
 +++ b/src/main/java/io/papermc/paper/entity/PaperBucketable.java
 @@ -0,0 +1,31 @@
@@ -38,7 +38,7 @@ index 0000000000000000000000000000000000000000..c4eee682f5b8cd82f71f92f0549f39b7
 +
 +    @Override
 +    default Sound getPickupSound() {
-+        return CraftSound.getBukkit(this.getHandle().getPickupSound());
++        return CraftSound.minecraftToBukkit(this.getHandle().getPickupSound());
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java
diff --git a/patches/server/0745-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0745-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index 48dec6656781..52d08aef3354 100644
--- a/patches/server/0745-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/server/0745-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
@@ -18,10 +18,10 @@ index 6c02d5233c782b0e5049afdf84250687ae71dcde..2503e2b2436a6e07fa22c0e55ad1539b
                  biomeProvider = gen.getDefaultBiomeProvider(worldInfo);
              }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index f951c5ff4058f91540eb2da95ca433be5e590196..7efd83f26c26166e51f7c2c6f08cf83291db61c0 100644
+index a68374e527a9d8f29863baf8e18fbd09d45e4185..02faa85848ab286c7219f09e0b2048fdad0cd005 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1224,7 +1224,7 @@ public final class CraftServer implements Server {
+@@ -1223,7 +1223,7 @@ public final class CraftServer implements Server {
          List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
          LevelStem worlddimension = iregistry.get(actualDimension);
  
@@ -31,10 +31,10 @@ index f951c5ff4058f91540eb2da95ca433be5e590196..7efd83f26c26166e51f7c2c6f08cf832
              biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
          }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index cda158bb560c32f7dbea05cd4adb3d38f6db5280..6b111e7397af92ac6e80001b783e42a26186b930 100644
+index 99f075d23484301259daabbab0569fc780e02b5b..e138428fe35c075cfffcc931b53f836129307154 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -202,6 +202,30 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -202,6 +202,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
      public int getPlayerCount() {
          return world.players().size();
      }
@@ -45,15 +45,14 @@ index cda158bb560c32f7dbea05cd4adb3d38f6db5280..6b111e7397af92ac6e80001b783e42a2
 +
 +        final net.minecraft.world.level.biome.BiomeSource biomeSource = serverCache.getGenerator().getBiomeSource();
 +        final net.minecraft.world.level.biome.Climate.Sampler sampler = serverCache.randomState().sampler();
-+        final net.minecraft.core.Registry<net.minecraft.world.level.biome.Biome> biomeRegistry = this.getHandle().registryAccess().registryOrThrow(net.minecraft.core.registries.Registries.BIOME);
 +
 +        final List<Biome> possibleBiomes = biomeSource.possibleBiomes().stream()
-+            .map(biome -> CraftBlock.biomeBaseToBiome(biomeRegistry, biome))
++            .map(biome -> org.bukkit.craftbukkit.block.CraftBiome.minecraftHolderToBukkit(biome))
 +            .toList();
 +        return new BiomeProvider() {
 +            @Override
 +            public Biome getBiome(final org.bukkit.generator.WorldInfo worldInfo, final int x, final int y, final int z) {
-+                return CraftBlock.biomeBaseToBiome(biomeRegistry, biomeSource.getNoiseBiome(x >> 2, y >> 2, z >> 2, sampler));
++                return org.bukkit.craftbukkit.block.CraftBiome.minecraftHolderToBukkit(biomeSource.getNoiseBiome(x >> 2, y >> 2, z >> 2, sampler));
 +            }
 +
 +            @Override
@@ -66,7 +65,7 @@ index cda158bb560c32f7dbea05cd4adb3d38f6db5280..6b111e7397af92ac6e80001b783e42a2
  
      private static final Random rand = new Random();
 diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftWorldInfo.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftWorldInfo.java
-index 5d655d6cd3e23e0287069f8bdf77601487e862fd..5dbd1a6d314ebbb072cb61360ca5c1043f47a38d 100644
+index 5d655d6cd3e23e0287069f8bdf77601487e862fd..cf57c6e9ce63f7b1d95d91ead2453409a31a5c52 100644
 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftWorldInfo.java
 +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftWorldInfo.java
 @@ -17,8 +17,14 @@ public class CraftWorldInfo implements WorldInfo {
@@ -101,7 +100,7 @@ index 5d655d6cd3e23e0287069f8bdf77601487e862fd..5dbd1a6d314ebbb072cb61360ca5c104
      @Override
      public String getName() {
          return this.name;
-@@ -65,4 +62,35 @@ public class CraftWorldInfo implements WorldInfo {
+@@ -65,4 +62,34 @@ public class CraftWorldInfo implements WorldInfo {
      public int getMaxHeight() {
          return this.maxHeight;
      }
@@ -118,14 +117,13 @@ index 5d655d6cd3e23e0287069f8bdf77601487e862fd..5dbd1a6d314ebbb072cb61360ca5c104
 +                registryAccess.lookupOrThrow(net.minecraft.core.registries.Registries.NOISE), getSeed());
 +        }
 +
-+        final net.minecraft.core.Registry<net.minecraft.world.level.biome.Biome> biomeRegistry = CraftWorldInfo.this.registryAccess.registryOrThrow(net.minecraft.core.registries.Registries.BIOME);
 +        final java.util.List<org.bukkit.block.Biome> possibleBiomes = CraftWorldInfo.this.vanillaChunkGenerator.getBiomeSource().possibleBiomes().stream()
-+            .map(biome -> org.bukkit.craftbukkit.block.CraftBlock.biomeBaseToBiome(biomeRegistry, biome))
++            .map(biome -> org.bukkit.craftbukkit.block.CraftBiome.minecraftHolderToBukkit(biome))
 +            .toList();
 +        return new org.bukkit.generator.BiomeProvider() {
 +            @Override
 +            public org.bukkit.block.Biome getBiome(final WorldInfo worldInfo, final int x, final int y, final int z) {
-+                return org.bukkit.craftbukkit.block.CraftBlock.biomeBaseToBiome(biomeRegistry,
++                return org.bukkit.craftbukkit.block.CraftBiome.minecraftHolderToBukkit(
 +                    CraftWorldInfo.this.vanillaChunkGenerator.getBiomeSource().getNoiseBiome(x >> 2, y >> 2, z >> 2, randomState.sampler()));
 +            }
 +
diff --git a/patches/server/0754-Multi-Block-Change-API-Implementation.patch b/patches/server/0754-Multi-Block-Change-API-Implementation.patch
index b1439fff6d2c..a5b0a3f79109 100644
--- a/patches/server/0754-Multi-Block-Change-API-Implementation.patch
+++ b/patches/server/0754-Multi-Block-Change-API-Implementation.patch
@@ -24,7 +24,7 @@ index f96d61bdeb556665d6e6e5023f9d77fd82204e89..e3f355c85eb7cc8c1683e3009502c10a
      public void write(FriendlyByteBuf buf) {
          buf.writeLong(this.sectionPos.asLong());
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 471f25a82a109a58c4093d3a834d8131357c32da..5b9701ef6d2e6ba42d5459add9d3b6370df80f5a 100644
+index 18f37eff3c60c52580d49c3398e5ef01245b4412..16f3381e9cc42c7747199e7c178bd071b798f0e4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -891,6 +891,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0756-Freeze-Tick-Lock-API.patch b/patches/server/0756-Freeze-Tick-Lock-API.patch
index bd658e616448..7d43ff10efc4 100644
--- a/patches/server/0756-Freeze-Tick-Lock-API.patch
+++ b/patches/server/0756-Freeze-Tick-Lock-API.patch
@@ -59,10 +59,10 @@ index 2a23448e756199b631355cd10b567ea1d54caa37..7b4a04193f783a077cfec47887fc6b76
  
              if (this.isInPowderSnow && this.canFreeze()) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index f05d8107368e639adf60f3e5d944c65300087a3c..87c303ff576cd05291d50d5676e86ca93a13b301 100644
+index e4c587d6304492d936ec3d84303c4cf3b093a2b0..03142d4eaa3ebdf590ec1131f28690da9c6fe748 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -669,6 +669,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -668,6 +668,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          return this.getHandle().isFullyFrozen();
      }
  
diff --git a/patches/server/0758-More-PotionEffectType-API.patch b/patches/server/0758-More-PotionEffectType-API.patch
index 8a94899c1196..dc8c655c0918 100644
--- a/patches/server/0758-More-PotionEffectType-API.patch
+++ b/patches/server/0758-More-PotionEffectType-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] More PotionEffectType API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java
-index 8f63c21186d8daa290286676bc2478d8629c533b..11e3480fec6dfaeeae08009723ffa5e4d2a93283 100644
+index 8f63c21186d8daa290286676bc2478d8629c533b..f05cbb27563fc5287875764b183c485c14589423 100644
 --- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java
 +++ b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java
 @@ -128,4 +128,51 @@ public class CraftPotionEffectType extends PotionEffectType {
@@ -25,7 +25,7 @@ index 8f63c21186d8daa290286676bc2478d8629c533b..11e3480fec6dfaeeae08009723ffa5e4
 +        final java.util.Map<org.bukkit.attribute.Attribute, org.bukkit.attribute.AttributeModifier> attributeMap = new java.util.HashMap<>();
 +        this.handle.getAttributeModifiers().forEach((attribute, attributeModifier) -> {
 +            attributeMap.put(
-+                org.bukkit.craftbukkit.attribute.CraftAttributeMap.fromMinecraft(attribute.toString()),
++                org.bukkit.craftbukkit.attribute.CraftAttribute.stringToBukkit(attribute.toString()),
 +                // use zero as amplifier to get the base amount, as it is amount = base * (amplifier + 1)
 +                org.bukkit.craftbukkit.attribute.CraftAttributeInstance.convert(attributeModifier.create(0))
 +            );
@@ -36,7 +36,7 @@ index 8f63c21186d8daa290286676bc2478d8629c533b..11e3480fec6dfaeeae08009723ffa5e4
 +    @Override
 +    public double getAttributeModifierAmount(org.bukkit.attribute.Attribute attribute, int effectAmplifier) {
 +        com.google.common.base.Preconditions.checkArgument(effectAmplifier >= 0, "effectAmplifier must be greater than or equal to 0");
-+        net.minecraft.world.entity.ai.attributes.Attribute nmsAttribute = org.bukkit.craftbukkit.attribute.CraftAttributeMap.toMinecraft(attribute);
++        net.minecraft.world.entity.ai.attributes.Attribute nmsAttribute = org.bukkit.craftbukkit.attribute.CraftAttribute.bukkitToMinecraft(attribute);
 +        com.google.common.base.Preconditions.checkArgument(this.handle.getAttributeModifiers().containsKey(nmsAttribute), attribute + " is not present on " + this.getKey());
 +        return this.handle.getAttributeModifiers().get(nmsAttribute).create(effectAmplifier).getAmount();
 +    }
diff --git a/patches/server/0760-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0760-API-for-creating-command-sender-which-forwards-feedb.patch
index 58661a78dc35..4761ed8ae45c 100644
--- a/patches/server/0760-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/server/0760-API-for-creating-command-sender-which-forwards-feedb.patch
@@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7efd83f26c26166e51f7c2c6f08cf83291db61c0..bb57e6653bea7a465eec5c2eba68f2f08611a391 100644
+index 02faa85848ab286c7219f09e0b2048fdad0cd005..d68b4ee993b2b239900f60ab08da4bfba121892a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2015,6 +2015,13 @@ public final class CraftServer implements Server {
+@@ -2014,6 +2014,13 @@ public final class CraftServer implements Server {
          return console.console;
      }
  
diff --git a/patches/server/0762-Implement-regenerateChunk.patch b/patches/server/0762-Implement-regenerateChunk.patch
index 7b18c9698334..f8c44cd0207d 100644
--- a/patches/server/0762-Implement-regenerateChunk.patch
+++ b/patches/server/0762-Implement-regenerateChunk.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk
 Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 6b111e7397af92ac6e80001b783e42a26186b930..4c53a4188d20cc1d8c2de25485aa1cd25fb9d08e 100644
+index e138428fe35c075cfffcc931b53f836129307154..8e382e4affddd416d12fa8687056ea8545b8f5e4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 @@ -141,6 +141,7 @@ import org.jetbrains.annotations.NotNull;
@@ -17,7 +17,7 @@ index 6b111e7397af92ac6e80001b783e42a26186b930..4c53a4188d20cc1d8c2de25485aa1cd2
  
      private final ServerLevel world;
      private WorldBorder worldBorder;
-@@ -426,27 +427,61 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -425,27 +426,61 @@ public class CraftWorld extends CraftRegionAccessor implements World {
      @Override
      public boolean regenerateChunk(int x, int z) {
          org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot
diff --git a/patches/server/0764-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0764-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
index 5d052d796cd8..5c0b4acf11d7 100644
--- a/patches/server/0764-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
+++ b/patches/server/0764-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit
 Copies appropriate checks from CraftWorld#getSpawnLimit
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index bb57e6653bea7a465eec5c2eba68f2f08611a391..62d9ad45da897e7e336f12a49d1225dff5f089d0 100644
+index d68b4ee993b2b239900f60ab08da4bfba121892a..26dad89a499aeb4d789bdc02a844e47d87510654 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2192,6 +2192,8 @@ public final class CraftServer implements Server {
+@@ -2191,6 +2191,8 @@ public final class CraftServer implements Server {
      @Override
      public int getSpawnLimit(SpawnCategory spawnCategory) {
          // Paper start
diff --git a/patches/server/0765-Add-GameEvent-tags.patch b/patches/server/0765-Add-GameEvent-tags.patch
index d34eff7b132b..b11fa8dab144 100644
--- a/patches/server/0765-Add-GameEvent-tags.patch
+++ b/patches/server/0765-Add-GameEvent-tags.patch
@@ -46,10 +46,10 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f
 +    }
 +}
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 62d9ad45da897e7e336f12a49d1225dff5f089d0..69e5d0359a967bb766c189a89780f3743e33fcf4 100644
+index 26dad89a499aeb4d789bdc02a844e47d87510654..127870bd5c3d180921fd011e64a480a36b1ca672 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2613,6 +2613,15 @@ public final class CraftServer implements Server {
+@@ -2612,6 +2612,15 @@ public final class CraftServer implements Server {
                      return (org.bukkit.Tag<T>) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey);
                  }
              }
@@ -65,7 +65,7 @@ index 62d9ad45da897e7e336f12a49d1225dff5f089d0..69e5d0359a967bb766c189a89780f374
              default -> throw new IllegalArgumentException();
          }
  
-@@ -2645,6 +2654,13 @@ public final class CraftServer implements Server {
+@@ -2644,6 +2653,13 @@ public final class CraftServer implements Server {
                  net.minecraft.core.Registry<EntityType<?>> entityTags = BuiltInRegistries.ENTITY_TYPE;
                  return entityTags.getTags().map(pair -> (org.bukkit.Tag<T>) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList());
              }
diff --git a/patches/server/0771-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0771-Put-world-into-worldlist-before-initing-the-world.patch
index d22b96901153..30bab8b67d81 100644
--- a/patches/server/0771-Put-world-into-worldlist-before-initing-the-world.patch
+++ b/patches/server/0771-Put-world-into-worldlist-before-initing-the-world.patch
@@ -23,10 +23,10 @@ index 7d944606f7e136aa60a0ea376ef325887bd4e6a8..e7bd891260ad4c95c6161542e6d1412c
  
              if (worlddata.getCustomBossEvents() != null) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 69e5d0359a967bb766c189a89780f3743e33fcf4..94526278422fc42a5893bec0bf96af707ae67c17 100644
+index 127870bd5c3d180921fd011e64a480a36b1ca672..bce73a95b57e4285756b2bc9a557760ae2b976e6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1253,10 +1253,11 @@ public final class CraftServer implements Server {
+@@ -1252,10 +1252,11 @@ public final class CraftServer implements Server {
              return null;
          }
  
diff --git a/patches/server/0773-Custom-Potion-Mixes.patch b/patches/server/0773-Custom-Potion-Mixes.patch
index 65c24723e317..feb6090e70ee 100644
--- a/patches/server/0773-Custom-Potion-Mixes.patch
+++ b/patches/server/0773-Custom-Potion-Mixes.patch
@@ -164,10 +164,10 @@ index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..c57efcb9a79337ec791e4e8f6671612f
  
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 94526278422fc42a5893bec0bf96af707ae67c17..f8d31fdbacf23a366ccbea4d96157fab3d0c3b88 100644
+index bce73a95b57e4285756b2bc9a557760ae2b976e6..fc02629cc39e0207bbb2ebbe829eb9829f9246b4 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -307,6 +307,7 @@ public final class CraftServer implements Server {
+@@ -306,6 +306,7 @@ public final class CraftServer implements Server {
      private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper
      public static Exception excessiveVelEx; // Paper - Velocity warnings
      private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper
@@ -175,7 +175,7 @@ index 94526278422fc42a5893bec0bf96af707ae67c17..f8d31fdbacf23a366ccbea4d96157fab
  
      static {
          ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
-@@ -336,7 +337,7 @@ public final class CraftServer implements Server {
+@@ -335,7 +336,7 @@ public final class CraftServer implements Server {
          Enchantments.SHARPNESS.getClass();
          org.bukkit.enchantments.Enchantment.stopAcceptingRegistrations();
  
@@ -184,7 +184,7 @@ index 94526278422fc42a5893bec0bf96af707ae67c17..f8d31fdbacf23a366ccbea4d96157fab
          MobEffects.BLINDNESS.getClass();
          PotionEffectType.stopAcceptingRegistrations();
          // Ugly hack :(
-@@ -2972,5 +2973,10 @@ public final class CraftServer implements Server {
+@@ -2971,5 +2972,10 @@ public final class CraftServer implements Server {
          return datapackManager;
      }
  
diff --git a/patches/server/0775-Fix-falling-block-spawn-methods.patch b/patches/server/0775-Fix-falling-block-spawn-methods.patch
index 316145f8403c..93652a8e6f1c 100644
--- a/patches/server/0775-Fix-falling-block-spawn-methods.patch
+++ b/patches/server/0775-Fix-falling-block-spawn-methods.patch
@@ -11,10 +11,10 @@ Restores the API behavior from previous versions of the server
 public net.minecraft.world.entity.item.FallingBlockEntity <init>(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 977012bfa4c42d619f2e9729c2be032999c403f7..5ca1bc3a0574c1080cb000245dbc8fa093ee7d01 100644
+index c0186224fd64d70770a0e16752d17c0870121d8f..30a893f7f63961b752e043b81dda20d946cd63aa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -598,7 +598,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -599,7 +599,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
              // Paper end
          } else if (FallingBlock.class.isAssignableFrom(clazz)) {
              BlockPos pos = BlockPos.containing(x, y, z);
@@ -24,10 +24,10 @@ index 977012bfa4c42d619f2e9729c2be032999c403f7..5ca1bc3a0574c1080cb000245dbc8fa0
              if (Snowball.class.isAssignableFrom(clazz)) {
                  entity = new net.minecraft.world.entity.projectile.Snowball(world, x, y, z);
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 4c53a4188d20cc1d8c2de25485aa1cd25fb9d08e..73069a5cdb42d6bc3db5c02f0b668af69e786501 100644
+index 8e382e4affddd416d12fa8687056ea8545b8f5e4..6993a7ec68ee0807ffb1d07667af1323a20b0bf7 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1392,7 +1392,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1391,7 +1391,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
          Preconditions.checkArgument(material != null, "Material cannot be null");
          Preconditions.checkArgument(material.isBlock(), "Material.%s must be a block", material);
  
@@ -41,7 +41,7 @@ index 4c53a4188d20cc1d8c2de25485aa1cd25fb9d08e..73069a5cdb42d6bc3db5c02f0b668af6
          return (FallingBlock) entity.getBukkitEntity();
      }
  
-@@ -1401,7 +1406,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1400,7 +1405,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
          Preconditions.checkArgument(location != null, "Location cannot be null");
          Preconditions.checkArgument(data != null, "BlockData cannot be null");
  
diff --git a/patches/server/0778-More-Projectile-API.patch b/patches/server/0778-More-Projectile-API.patch
index c6456c13f21e..e1ba9d1fe921 100644
--- a/patches/server/0778-More-Projectile-API.patch
+++ b/patches/server/0778-More-Projectile-API.patch
@@ -116,7 +116,7 @@ index 40e5b19bc8fa3de3b3d54da0762aee5bd7bb8d7b..b3814bd6c6d6aae090fe417696535ed1
  
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-index 5056ec1ad51be9209591d34d32d256c350feed63..9f30946c7a198e2a277b65c02fcd75570c5dbad6 100644
+index 5056ec1ad51be9209591d34d32d256c350feed63..96a20efc60efef4485eca9ebffed92dc195ed357 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
 @@ -58,20 +58,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
@@ -158,12 +158,12 @@ index 5056ec1ad51be9209591d34d32d256c350feed63..9f30946c7a198e2a277b65c02fcd7557
 +    @org.jetbrains.annotations.NotNull
 +    @Override
 +    public org.bukkit.Sound getHitSound() {
-+        return org.bukkit.craftbukkit.CraftSound.getBukkit(this.getHandle().soundEvent);
++        return org.bukkit.craftbukkit.CraftSound.minecraftToBukkit(this.getHandle().soundEvent);
 +    }
 +
 +    @Override
 +    public void setHitSound(@org.jetbrains.annotations.NotNull org.bukkit.Sound sound) {
-+        this.getHandle().setSoundEvent(org.bukkit.craftbukkit.CraftSound.getSoundEffect(sound));
++        this.getHandle().setSoundEvent(org.bukkit.craftbukkit.CraftSound.bukkitToMinecraft(sound));
 +    }
 +
      @Override
diff --git a/patches/server/0781-Implement-getComputedBiome-API.patch b/patches/server/0781-Implement-getComputedBiome-API.patch
index af32f7bebc15..9644f0562d3f 100644
--- a/patches/server/0781-Implement-getComputedBiome-API.patch
+++ b/patches/server/0781-Implement-getComputedBiome-API.patch
@@ -5,17 +5,17 @@ Subject: [PATCH] Implement getComputedBiome API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5ca1bc3a0574c1080cb000245dbc8fa093ee7d01..5be114bc70c6fdbcb7d804e7558a5172c4461b96 100644
+index 30a893f7f63961b752e043b81dda20d946cd63aa..57bb76050919d187adef4bfa8b21416a70867d23 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -220,6 +220,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
-         return CraftBlock.biomeBaseToBiome(this.getHandle().registryAccess().registryOrThrow(Registries.BIOME), this.getHandle().getNoiseBiome(x >> 2, y >> 2, z >> 2));
+@@ -221,6 +221,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+         return CraftBiome.minecraftHolderToBukkit(this.getHandle().getNoiseBiome(x >> 2, y >> 2, z >> 2));
      }
  
 +    // Paper start
 +    @Override
 +    public Biome getComputedBiome(int x, int y, int z) {
-+        return CraftBlock.biomeBaseToBiome(this.getHandle().registryAccess().registryOrThrow(Registries.BIOME), this.getHandle().getBiome(new BlockPos(x, y, z)));
++        return CraftBiome.minecraftHolderToBukkit(this.getHandle().getBiome(new BlockPos(x, y, z)));
 +    }
 +    // Paper end
 +
@@ -23,10 +23,10 @@ index 5ca1bc3a0574c1080cb000245dbc8fa093ee7d01..5be114bc70c6fdbcb7d804e7558a5172
      public void setBiome(Location location, Biome biome) {
          this.setBiome(location.getBlockX(), location.getBlockY(), location.getBlockZ(), biome);
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index e649c3296363ea2f8429593e33a7833143bcabba..0a3fa0f75d2d9f09be8c29d35cb22953ceb8906b 100644
+index 5fa6a77ccd01deb929d86efc227439f4f280ba53..8fb44799c3273841ffc0996aa8984513e391c70d 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -344,6 +344,13 @@ public class CraftBlock implements Block {
+@@ -339,6 +339,13 @@ public class CraftBlock implements Block {
          return this.getWorld().getBiome(this.getX(), this.getY(), this.getZ());
      }
  
@@ -41,7 +41,7 @@ index e649c3296363ea2f8429593e33a7833143bcabba..0a3fa0f75d2d9f09be8c29d35cb22953
      public void setBiome(Biome bio) {
          this.getWorld().setBiome(this.getX(), this.getY(), this.getZ(), bio);
 diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-index 23ffe4b8a19286543e12bf7408879e6d1305a78f..935bca901f0618d77f3bf6c057bcbc606c742fac 100644
+index 5830635e96ab9e10320f790f17a3b345c690ff85..881de6bf2edf74783fc3faaf0d6b08e49c32334f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
 +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
 @@ -165,6 +165,14 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
diff --git a/patches/server/0783-Implement-enchantWithLevels-API.patch b/patches/server/0783-Implement-enchantWithLevels-API.patch
index 6999d72cfeb3..ab96d4c51c2a 100644
--- a/patches/server/0783-Implement-enchantWithLevels-API.patch
+++ b/patches/server/0783-Implement-enchantWithLevels-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement enchantWithLevels API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 3b02bf4e5b657af9debb432ab412fe50e1f7b922..4c0b250bb9e3cf52173b563b36fd27d9e893e154 100644
+index 48a88dae70fdf2757537d4a90aa60046e6346323..6e91c7ccc36e088be60739dd71b287f0b922a055 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 @@ -458,6 +458,21 @@ public final class CraftItemFactory implements ItemFactory {
diff --git a/patches/server/0784-Fix-saving-in-unloadWorld.patch b/patches/server/0784-Fix-saving-in-unloadWorld.patch
index 16014f9a597e..d0978c07dd24 100644
--- a/patches/server/0784-Fix-saving-in-unloadWorld.patch
+++ b/patches/server/0784-Fix-saving-in-unloadWorld.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix saving in unloadWorld
 Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index f8d31fdbacf23a366ccbea4d96157fab3d0c3b88..a2b2d054232ba74935e94b899dc3944cbe374bbf 100644
+index fc02629cc39e0207bbb2ebbe829eb9829f9246b4..734e558bf61ca04b51fd3ae7f71cd5a9c1192725 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1301,7 +1301,7 @@ public final class CraftServer implements Server {
+@@ -1300,7 +1300,7 @@ public final class CraftServer implements Server {
  
          try {
              if (save) {
diff --git a/patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch
index 729df02c4d29..ba9af2dff684 100644
--- a/patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch
+++ b/patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch
@@ -196,7 +196,7 @@ index b13d89b1516130507402cd3b4bdb9f3c2a36e807..936644ec4a57e51a1c11a5bf4e8449ab
              }
              // CraftBukkit end
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index f171124710b5e731652df0074fe24360239225b2..5a2fc10fb677291df95fceccff734cb9a78c81d6 100644
+index 6c7f7ae5208e9fa58694f202f048d2f3524b27a4..2581c8f91e6c7eca246d11220cba0187b9a2143f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1385,11 +1385,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0791-cache-resource-keys.patch b/patches/server/0791-cache-resource-keys.patch
index c36993cac8f1..d444813b7a91 100644
--- a/patches/server/0791-cache-resource-keys.patch
+++ b/patches/server/0791-cache-resource-keys.patch
@@ -4,38 +4,48 @@ Date: Sun, 20 Mar 2022 22:06:47 -0700
 Subject: [PATCH] cache resource keys
 
 
-diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 0a3fa0f75d2d9f09be8c29d35cb22953ceb8906b..df104b1f7753d98318a5cc511c6e0e1c68e5c277 100644
---- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -369,12 +369,13 @@ public class CraftBlock implements Block {
-         return (biome == null) ? Biome.CUSTOM : biome;
+diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBiome.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBiome.java
+index 95b956802f83b583a823fcd24808363775a56842..33d2e89ac40465b0c4633f9c51378b80f7c397a9 100644
+--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBiome.java
++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBiome.java
+@@ -3,6 +3,7 @@ package org.bukkit.craftbukkit.block;
+ import com.google.common.base.Preconditions;
+ import net.minecraft.core.Holder;
+ import net.minecraft.core.registries.Registries;
++import net.minecraft.resources.ResourceKey;
+ import org.bukkit.Registry;
+ import org.bukkit.block.Biome;
+ import org.bukkit.craftbukkit.CraftRegistry;
+@@ -27,13 +28,14 @@ public class CraftBiome {
+         return CraftBiome.minecraftToBukkit(minecraft.value());
      }
  
-+    private static final java.util.Map<org.bukkit.block.Biome, net.minecraft.resources.ResourceKey<net.minecraft.world.level.biome.Biome>> BIOME_KEY_CACHE = Collections.synchronizedMap(new java.util.EnumMap<>(Biome.class)); // Paper
-     public static Holder<net.minecraft.world.level.biome.Biome> biomeToBiomeBase(net.minecraft.core.Registry<net.minecraft.world.level.biome.Biome> registry, Biome bio) {
-         if (bio == null || bio == Biome.CUSTOM) {
++    private static final java.util.Map<org.bukkit.block.Biome, ResourceKey<net.minecraft.world.level.biome.Biome>> BIOME_KEY_CACHE = java.util.Collections.synchronizedMap(new java.util.EnumMap<>(Biome.class)); // Paper
+     public static net.minecraft.world.level.biome.Biome bukkitToMinecraft(Biome bukkit) {
+         if (bukkit == null || bukkit == Biome.CUSTOM) {
              return null;
          }
  
--        return registry.getHolderOrThrow(ResourceKey.create(Registries.BIOME, CraftNamespacedKey.toMinecraft(bio.getKey())));
-+        return registry.getHolderOrThrow(BIOME_KEY_CACHE.computeIfAbsent(bio, b -> ResourceKey.create(Registries.BIOME, CraftNamespacedKey.toMinecraft(b.getKey())))); // Paper - cache key
+         return CraftRegistry.getMinecraftRegistry(Registries.BIOME)
+-                .getOptional(CraftNamespacedKey.toMinecraft(bukkit.getKey())).orElseThrow();
++                .getOptional(BIOME_KEY_CACHE.computeIfAbsent(bukkit, b -> ResourceKey.create(Registries.BIOME, CraftNamespacedKey.toMinecraft(b.getKey())))).orElseThrow();
      }
  
-     @Override
-diff --git a/src/main/java/org/bukkit/craftbukkit/tag/CraftEntityTag.java b/src/main/java/org/bukkit/craftbukkit/tag/CraftEntityTag.java
-index e0bf615fb1b99abbab2be55a4ee345204b36e218..7b3b12b4b2f5dbd37e23a7f5a0ad2abd04d259e2 100644
---- a/src/main/java/org/bukkit/craftbukkit/tag/CraftEntityTag.java
-+++ b/src/main/java/org/bukkit/craftbukkit/tag/CraftEntityTag.java
-@@ -16,9 +16,10 @@ public class CraftEntityTag extends CraftTag<net.minecraft.world.entity.EntityTy
-         super(registry, tag);
+     public static Holder<net.minecraft.world.level.biome.Biome> bukkitToMinecraftHolder(Biome bukkit) {
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityType.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityType.java
+index 198f51b297aa65dad665a637b4a71036491406bc..18ef90b574dca82c1729868a83612ca06a6ccdce 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityType.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityType.java
+@@ -20,10 +20,10 @@ public class CraftEntityType {
+         return bukkit;
      }
  
-+    private static final java.util.Map<org.bukkit.entity.EntityType, net.minecraft.resources.ResourceKey<net.minecraft.world.entity.EntityType<?>>> KEY_CACHE = java.util.Collections.synchronizedMap(new java.util.EnumMap<>(EntityType.class)); // Paper
-     @Override
-     public boolean isTagged(EntityType entity) {
--        return registry.getHolderOrThrow(ResourceKey.create(Registries.ENTITY_TYPE, CraftNamespacedKey.toMinecraft(entity.getKey()))).is(tag);
-+        return registry.getHolderOrThrow(KEY_CACHE.computeIfAbsent(entity, type -> ResourceKey.create(Registries.ENTITY_TYPE, CraftNamespacedKey.toMinecraft(type.getKey())))).is(tag); // Paper - cache key
++    private static final java.util.Map<EntityType, net.minecraft.resources.ResourceKey<net.minecraft.world.entity.EntityType<?>>> KEY_CACHE = java.util.Collections.synchronizedMap(new java.util.EnumMap<>(EntityType.class)); // Paper
+     public static net.minecraft.world.entity.EntityType<?> bukkitToMinecraft(EntityType bukkit) {
+         Preconditions.checkArgument(bukkit != null);
+-
+         return CraftRegistry.getMinecraftRegistry(Registries.ENTITY_TYPE)
+-                .getOptional(CraftNamespacedKey.toMinecraft(bukkit.getKey())).orElseThrow();
++                .getOptional(KEY_CACHE.computeIfAbsent(bukkit, type -> net.minecraft.resources.ResourceKey.create(Registries.ENTITY_TYPE, CraftNamespacedKey.toMinecraft(type.getKey())))).orElseThrow();
      }
- 
-     @Override
+ }
diff --git a/patches/server/0798-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0798-Pass-ServerLevel-for-gamerule-callbacks.patch
index 50d9b3787690..a58d230a06fd 100644
--- a/patches/server/0798-Pass-ServerLevel-for-gamerule-callbacks.patch
+++ b/patches/server/0798-Pass-ServerLevel-for-gamerule-callbacks.patch
@@ -167,10 +167,10 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d
              this.onChanged(server);
          }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 73069a5cdb42d6bc3db5c02f0b668af69e786501..50820bf2a2050985947005ce682e27d11f587584 100644
+index 6993a7ec68ee0807ffb1d07667af1323a20b0bf7..a36fb1cf5970eaf7b9aaea9bee5de7f6bad1494c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1945,7 +1945,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1944,7 +1944,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
          // Paper end
          GameRules.Value<?> handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule));
          handle.deserialize(event.getValue()); // Paper
@@ -179,7 +179,7 @@ index 73069a5cdb42d6bc3db5c02f0b668af69e786501..50820bf2a2050985947005ce682e27d1
          return true;
      }
  
-@@ -1986,7 +1986,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1985,7 +1985,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
          // Paper end
          GameRules.Value<?> handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName()));
          handle.deserialize(event.getValue()); // Paper
diff --git a/patches/server/0800-WorldCreator-keepSpawnLoaded.patch b/patches/server/0800-WorldCreator-keepSpawnLoaded.patch
index b4733335065a..866f96bd2f0d 100644
--- a/patches/server/0800-WorldCreator-keepSpawnLoaded.patch
+++ b/patches/server/0800-WorldCreator-keepSpawnLoaded.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a2b2d054232ba74935e94b899dc3944cbe374bbf..a264f215c65eab124dc420be92cdd5bee26e0fdd 100644
+index 734e558bf61ca04b51fd3ae7f71cd5a9c1192725..5649690f26ffdb5ae9b3bd7a94840896bb24f339 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1260,6 +1260,7 @@ public final class CraftServer implements Server {
+@@ -1259,6 +1259,7 @@ public final class CraftServer implements Server {
          internal.setSpawnSettings(true, true);
          // Paper - move up
  
diff --git a/patches/server/0811-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0811-Fix-OfflinePlayer-getBedSpawnLocation.patch
index 13111af547d4..0c622e6685f3 100644
--- a/patches/server/0811-Fix-OfflinePlayer-getBedSpawnLocation.patch
+++ b/patches/server/0811-Fix-OfflinePlayer-getBedSpawnLocation.patch
@@ -8,7 +8,7 @@ instance of CraftOfflinePlayer the world was incorrect
 due to the logic for reading the NBT not being up-to-date.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
-index f572a74b85df36a6da76b78ec29d807273867537..aa070258c1f2546ac68869cb62c8752c80c758ab 100644
+index 779b6bac307e252fe614cfce958d2eeed94c5f77..3762230eeee47114f683dfa428a8e55cf2f42b48 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 @@ -36,6 +36,7 @@ import org.bukkit.profile.PlayerProfile;
diff --git a/patches/server/0816-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0816-Throw-exception-on-world-create-while-being-ticked.patch
index 7b89c12c6cad..a5c75ad33ced 100644
--- a/patches/server/0816-Throw-exception-on-world-create-while-being-ticked.patch
+++ b/patches/server/0816-Throw-exception-on-world-create-while-being-ticked.patch
@@ -45,10 +45,10 @@ index a197fa2864382363860b4a3db8160ed64f928df7..dd05048c5c9c37002708f0eee4e4fa0f
          this.profiler.popPush("connection");
          MinecraftTimings.connectionTimer.startTiming(); // Spigot
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a264f215c65eab124dc420be92cdd5bee26e0fdd..2e734dea30809bed1b11905a34e54ab5fe65b6f6 100644
+index 5649690f26ffdb5ae9b3bd7a94840896bb24f339..b578cc60ae18fde838876dfe515f2d0f60948d46 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -877,6 +877,11 @@ public final class CraftServer implements Server {
+@@ -876,6 +876,11 @@ public final class CraftServer implements Server {
          return new ArrayList<World>(this.worlds.values());
      }
  
@@ -60,7 +60,7 @@ index a264f215c65eab124dc420be92cdd5bee26e0fdd..2e734dea30809bed1b11905a34e54ab5
      public DedicatedPlayerList getHandle() {
          return this.playerList;
      }
-@@ -1136,6 +1141,7 @@ public final class CraftServer implements Server {
+@@ -1135,6 +1140,7 @@ public final class CraftServer implements Server {
      @Override
      public World createWorld(WorldCreator creator) {
          Preconditions.checkState(this.console.getAllLevels().iterator().hasNext(), "Cannot create additional worlds on STARTUP");
@@ -68,7 +68,7 @@ index a264f215c65eab124dc420be92cdd5bee26e0fdd..2e734dea30809bed1b11905a34e54ab5
          Preconditions.checkArgument(creator != null, "WorldCreator cannot be null");
  
          String name = creator.name();
-@@ -1275,6 +1281,7 @@ public final class CraftServer implements Server {
+@@ -1274,6 +1280,7 @@ public final class CraftServer implements Server {
  
      @Override
      public boolean unloadWorld(World world, boolean save) {
diff --git a/patches/server/0818-Dont-resent-entity-on-art-update.patch b/patches/server/0818-Dont-resent-entity-on-art-update.patch
index aa24ac355d56..4ce24fc14e71 100644
--- a/patches/server/0818-Dont-resent-entity-on-art-update.patch
+++ b/patches/server/0818-Dont-resent-entity-on-art-update.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Dont resent entity on art update
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java
-index be722f9c7f14270a29b1d3694c905426520d73c6..7f4b7ce6b85b4774f58be2c9afd4230a821dd9cc 100644
+index e780118d894d5421be8c50c8be02e41603cd0f32..3d13a79f9add2e45db7f8538ee15e0d4e37a1314 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java
-@@ -37,7 +37,7 @@ public class CraftPainting extends CraftHanging implements Painting {
+@@ -36,7 +36,7 @@ public class CraftPainting extends CraftHanging implements Painting {
              painting.setDirection(painting.getDirection());
              return false;
          }
diff --git a/patches/server/0823-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0823-Don-t-broadcast-messages-to-command-blocks.patch
index c0bd53a43ff2..5fba7c158e0a 100644
--- a/patches/server/0823-Don-t-broadcast-messages-to-command-blocks.patch
+++ b/patches/server/0823-Don-t-broadcast-messages-to-command-blocks.patch
@@ -20,10 +20,10 @@ index e05eb08a9c229b371887676da510df948b896a85..ceeedbd88c56c08ec8b047c9ca2f14cc
              Date date = new Date();
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2e734dea30809bed1b11905a34e54ab5fe65b6f6..8f3c46827225ea8194b7759b5fb5ad7dc6a2bee1 100644
+index b578cc60ae18fde838876dfe515f2d0f60948d46..9cb82440c037e67b5fa5bb9cd6d584b4bfe20cb0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1777,7 +1777,7 @@ public final class CraftServer implements Server {
+@@ -1776,7 +1776,7 @@ public final class CraftServer implements Server {
          // Paper end
          Set<CommandSender> recipients = new HashSet<>();
          for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
diff --git a/patches/server/0824-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0824-Prevent-empty-items-from-being-added-to-world.patch
index c5e2423361c0..0e17a2f7d04f 100644
--- a/patches/server/0824-Prevent-empty-items-from-being-added-to-world.patch
+++ b/patches/server/0824-Prevent-empty-items-from-being-added-to-world.patch
@@ -18,16 +18,3 @@ index 4b1e55503e0ca813bc893a3a8258af8ab9a13f18..540fe85572003cb78dda7d996215d26a
              // Paper start - capture all item additions to the world
              if (captureDrops != null && entity instanceof net.minecraft.world.entity.item.ItemEntity) {
                  captureDrops.add((net.minecraft.world.entity.item.ItemEntity) entity);
-diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index b8db8750125315b15cc3d3e76ee629a60c4546a1..6b3a17e6717b8c03c5bd674771b29e4becd42c71 100644
---- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-@@ -520,7 +520,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
-     }
- 
-     public void setItem(ItemStack stack) {
--        com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit
-+        // com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit // Paper - Remove check
-         this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
-         this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper
-     }
diff --git a/patches/server/0832-More-Teleport-API.patch b/patches/server/0832-More-Teleport-API.patch
index 15b4b71ee99b..213f919b8f33 100644
--- a/patches/server/0832-More-Teleport-API.patch
+++ b/patches/server/0832-More-Teleport-API.patch
@@ -31,10 +31,10 @@ index 85651f43ef7c979d3024f168cb9f42956e544a7d..8014c067396dc595ec456847e05615f8
              d0 = to.getX();
              d1 = to.getY();
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 87c303ff576cd05291d50d5676e86ca93a13b301..b19665fd570c86274caef62dc3e365f0e6a7ca8e 100644
+index 03142d4eaa3ebdf590ec1131f28690da9c6fe748..863d5a2c6729f8675b03a0575a7eb69ccaf04f4b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -567,15 +567,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -566,15 +566,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
  
      @Override
      public boolean teleport(Location location, TeleportCause cause) {
@@ -74,7 +74,7 @@ index 87c303ff576cd05291d50d5676e86ca93a13b301..b19665fd570c86274caef62dc3e365f0
          // Let the server handle cross world teleports
          if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5b9701ef6d2e6ba42d5459add9d3b6370df80f5a..c0b8e37112c6e69fa04d35c39393fde6b780340d 100644
+index 16f3381e9cc42c7747199e7c178bd071b798f0e4..842471eb7dd0d68368e551220922b05b26e476e2 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1212,13 +1212,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0834-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0834-Don-t-use-level-random-in-entity-constructors.patch
index 502d940d759f..e60ad26bb80f 100644
--- a/patches/server/0834-Don-t-use-level-random-in-entity-constructors.patch
+++ b/patches/server/0834-Don-t-use-level-random-in-entity-constructors.patch
@@ -31,7 +31,7 @@ index e06d5eea4bc81be264a1f5d5fad2d4548c4ae8d2..55026e1731e41b4e3e4c6a8fef5d96a3
          }
  
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index 6b3a17e6717b8c03c5bd674771b29e4becd42c71..22d29a2e58c5615dcee04ba68752fb76489c8a28 100644
+index d70abca10e84b86310ce5e4d72eb939331dc00e4..1a06d8c839e94fe2c1920035d606b62e0dc5cfba 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -64,7 +64,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
diff --git a/patches/server/0836-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0836-Warn-on-plugins-accessing-faraway-chunks.patch
index b2390db67a0e..6a827aa08f58 100644
--- a/patches/server/0836-Warn-on-plugins-accessing-faraway-chunks.patch
+++ b/patches/server/0836-Warn-on-plugins-accessing-faraway-chunks.patch
@@ -18,10 +18,10 @@ index 7e898e34490a47b1c505a67f8d0266384f4e37ff..1531809d6bb80ae1fd50a08a541578f4
  
      private static boolean isOutsideSpawnableHeight(int y) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 50820bf2a2050985947005ce682e27d11f587584..9707487f2533c30dc1998fafc626e50948ee4dab 100644
+index a36fb1cf5970eaf7b9aaea9bee5de7f6bad1494c..efefb334aba5a7dc03fbe210b9528109d31ad3fa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -310,9 +310,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -309,9 +309,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
      public boolean setSpawnLocation(int x, int y, int z) {
          return this.setSpawnLocation(x, y, z, 0.0F);
      }
@@ -46,7 +46,7 @@ index 50820bf2a2050985947005ce682e27d11f587584..9707487f2533c30dc1998fafc626e509
          // Paper start - add ticket to hold chunk for a little while longer if plugin accesses it
          net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkSource().getChunkAtIfLoadedImmediately(x, z);
          if (chunk == null) {
-@@ -427,6 +442,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -426,6 +441,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
      @Override
      public boolean regenerateChunk(int x, int z) {
          org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot
@@ -54,7 +54,7 @@ index 50820bf2a2050985947005ce682e27d11f587584..9707487f2533c30dc1998fafc626e509
          // Paper start - implement regenerateChunk method
          final ServerLevel serverLevel = this.world;
          final net.minecraft.server.level.ServerChunkCache serverChunkCache = serverLevel.getChunkSource();
-@@ -517,6 +533,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -516,6 +532,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
      @Override
      public boolean loadChunk(int x, int z, boolean generate) {
          org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
@@ -62,7 +62,7 @@ index 50820bf2a2050985947005ce682e27d11f587584..9707487f2533c30dc1998fafc626e509
          // Paper start - Optimize this method
          ChunkPos chunkPos = new ChunkPos(x, z);
          ChunkAccess immediate = world.getChunkSource().getChunkAtIfLoadedImmediately(x, z); // Paper
-@@ -580,6 +597,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -579,6 +596,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
  
      @Override
      public boolean addPluginChunkTicket(int x, int z, Plugin plugin) {
@@ -70,7 +70,7 @@ index 50820bf2a2050985947005ce682e27d11f587584..9707487f2533c30dc1998fafc626e509
          Preconditions.checkArgument(plugin != null, "null plugin");
          Preconditions.checkArgument(plugin.isEnabled(), "plugin is not enabled");
  
-@@ -648,6 +666,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -647,6 +665,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
  
      @Override
      public void setChunkForceLoaded(int x, int z, boolean forced) {
@@ -78,7 +78,7 @@ index 50820bf2a2050985947005ce682e27d11f587584..9707487f2533c30dc1998fafc626e509
          this.getHandle().setChunkForced(x, z, forced);
      }
  
-@@ -960,6 +979,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -959,6 +978,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
  
      @Override
      public int getHighestBlockYAt(int x, int z, org.bukkit.HeightMap heightMap) {
@@ -86,7 +86,7 @@ index 50820bf2a2050985947005ce682e27d11f587584..9707487f2533c30dc1998fafc626e509
          // Transient load for this tick
          return this.world.getChunk(x >> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z);
      }
-@@ -2371,6 +2391,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2370,6 +2390,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
      // Spigot end
      // Paper start
      public java.util.concurrent.CompletableFuture<Chunk> getChunkAtAsync(int x, int z, boolean gen, boolean urgent) {
diff --git a/patches/server/0837-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0837-Custom-Chat-Completion-Suggestions-API.patch
index 3d19341d3e4e..09e0db6d59ac 100644
--- a/patches/server/0837-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/server/0837-Custom-Chat-Completion-Suggestions-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index c0b8e37112c6e69fa04d35c39393fde6b780340d..4fd4f2dee936c9b96b5297e16bb0061f3bfe2579 100644
+index 842471eb7dd0d68368e551220922b05b26e476e2..ff03991672c2ca9d23e370d406a9a138659cf050 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -652,6 +652,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0839-Collision-API.patch b/patches/server/0839-Collision-API.patch
index 24c5f6349c0a..73e98382d876 100644
--- a/patches/server/0839-Collision-API.patch
+++ b/patches/server/0839-Collision-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Collision API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5be114bc70c6fdbcb7d804e7558a5172c4461b96..3b9d7f92f4e47da2d7eb1e9cb9e996ee36b57e4c 100644
+index 57bb76050919d187adef4bfa8b21416a70867d23..254cdf5efe85583c5ef126d46af7c5246daa97c2 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -1020,5 +1020,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -1021,5 +1021,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
  
          return this.getHandle().clip(new net.minecraft.world.level.ClipContext(start, end, net.minecraft.world.level.ClipContext.Block.COLLIDER, net.minecraft.world.level.ClipContext.Fluid.NONE, null)).getType() == net.minecraft.world.phys.HitResult.Type.MISS;
      }
@@ -22,10 +22,10 @@ index 5be114bc70c6fdbcb7d804e7558a5172c4461b96..3b9d7f92f4e47da2d7eb1e9cb9e996ee
      // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index b19665fd570c86274caef62dc3e365f0e6a7ca8e..ba0c1be4f5303bd6a33fd27f4e8c9910a8325695 100644
+index 863d5a2c6729f8675b03a0575a7eb69ccaf04f4b..f4a9b72f76742b128632183720866df9283ca753 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1419,4 +1419,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1418,4 +1418,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed.
      }
      // Paper end
diff --git a/patches/server/0841-Block-Ticking-API.patch b/patches/server/0841-Block-Ticking-API.patch
index bce0100d29a5..ea73ea61f08f 100644
--- a/patches/server/0841-Block-Ticking-API.patch
+++ b/patches/server/0841-Block-Ticking-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Block Ticking API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index df104b1f7753d98318a5cc511c6e0e1c68e5c277..f3ac362b7b65a5273ff5fdad1d8065c5f654a53a 100644
+index 8fb44799c3273841ffc0996aa8984513e391c70d..e8dd0b9184e164b41cb4b361f23b6925e7670f8f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -735,5 +735,21 @@ public class CraftBlock implements Block {
+@@ -708,5 +708,21 @@ public class CraftBlock implements Block {
      public boolean isValidTool(ItemStack itemStack) {
          return getDrops(itemStack).size() != 0;
      }
@@ -31,10 +31,10 @@ index df104b1f7753d98318a5cc511c6e0e1c68e5c277..f3ac362b7b65a5273ff5fdad1d8065c5
      // Paper end
  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-index f4e37764f714419a614a7e40718924788a204d28..86fb50f946ff57d66c561ba0ee6f1116f63479fb 100644
+index 5b67d4dd280688093d7e36e59e5b2ec6ebdc796c..0bf863f597f3657a0f158756a2a91bda7eb453f6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
-@@ -703,4 +703,11 @@ public class CraftBlockData implements BlockData {
+@@ -704,4 +704,11 @@ public class CraftBlockData implements BlockData {
          return speed;
      }
      // Paper end - destroy speed API
diff --git a/patches/server/0842-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0842-Add-Velocity-IP-Forwarding-Support.patch
index 732f5e4db04e..865dde2ada7e 100644
--- a/patches/server/0842-Add-Velocity-IP-Forwarding-Support.patch
+++ b/patches/server/0842-Add-Velocity-IP-Forwarding-Support.patch
@@ -215,10 +215,10 @@ index f7ad9f51d4fb45d41c718a97c1fad72504d0c0ad..78810048fde7fd6299cdc99634ba6467
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8f3c46827225ea8194b7759b5fb5ad7dc6a2bee1..ef4c259504694d27534834a5d33e78a8d33ece6c 100644
+index 9cb82440c037e67b5fa5bb9cd6d584b4bfe20cb0..3b264f630a28416f0faacafba91e047bfb0f5190 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -806,7 +806,7 @@ public final class CraftServer implements Server {
+@@ -805,7 +805,7 @@ public final class CraftServer implements Server {
      @Override
      public long getConnectionThrottle() {
          // Spigot Start - Automatically set connection throttle for bungee configurations
diff --git a/patches/server/0844-Add-NamespacedKey-biome-methods.patch b/patches/server/0844-Add-NamespacedKey-biome-methods.patch
index 0c72cf269012..2cce9ca95135 100644
--- a/patches/server/0844-Add-NamespacedKey-biome-methods.patch
+++ b/patches/server/0844-Add-NamespacedKey-biome-methods.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add NamespacedKey biome methods
 Co-authored-by: Thonk <30448663+ExcessiveAmountsOfZombies@users.noreply.github.com>
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index e169c16626e967c30c6f9a324a40550adf5476dd..58f2eaf81f24f1548bdc9f46528cb4b94b18de69 100644
+index 186959e6e7aef0dada59320d3f180c99a93bc90c..437b331dc1f77d8fda895a42550bfb1035c8c3c1 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -610,6 +610,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -591,6 +591,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
          Preconditions.checkArgument(material.isBlock(), material + " is not a block");
          return getBlock(material).hasCollision;
      }
diff --git a/patches/server/0851-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0851-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
index d88f3876b663..f2fc80e18c6b 100644
--- a/patches/server/0851-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
+++ b/patches/server/0851-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add a consumer parameter to ProjectileSource#launchProjectile
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 661638716cd4d1b20745f3a196f6d060b3de570c..c45d7e1262534255025392a804c9e4f47213f637 100644
+index 26054a3b4e2609cb68751d6e37bce22df94c46b8..f0d8000915db9ae497dddb09e9bde87a516a1b4b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -509,8 +509,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0854-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0854-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
index c9938548a4a5..dcc6c03d549c 100644
--- a/patches/server/0854-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
+++ b/patches/server/0854-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Mitigate effects of WorldCreator#keepSpawnLoaded ret type
 TODO: Remove in 1.21?
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index b7d09079411f70353f44df3c623a0076367cf603..d2f4d7d129c692d92de74598dd94ea2d6a9f0d28 100644
+index d7495ea25713e959d106764054ce6642af497035..7131ae1fdfd7ac22f8178ff4d6265b4b6c14acb8 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -466,6 +466,12 @@ public class Commodore
+@@ -460,6 +460,12 @@ public class Commodore
                              super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, CB_PACKAGE + "/advancement/CraftAdvancement", "getDisplay0", desc, false);
                              return;
                          }
diff --git a/patches/server/0862-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0862-Correctly-handle-interactions-with-items-on-cooldown.patch
index 9b591db9feb3..8e624ce97fb5 100644
--- a/patches/server/0862-Correctly-handle-interactions-with-items-on-cooldown.patch
+++ b/patches/server/0862-Correctly-handle-interactions-with-items-on-cooldown.patch
@@ -30,7 +30,7 @@ index fb7a401269a2ebfc998c14e1957dfd580d444c06..482e6b217c073ceff30c238c3a8cd8ea
          this.interactResult = event.useItemInHand() == Event.Result.DENY;
          this.interactPosition = blockposition.immutable();
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 5a2fc10fb677291df95fceccff734cb9a78c81d6..4b28ae4a9bc9a295457cfcb84a86705db8f18502 100644
+index 2581c8f91e6c7eca246d11220cba0187b9a2143f..b00547dea90673a43715197bc5873cf94cfbd038 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -544,7 +544,13 @@ public class CraftEventFactory {
diff --git a/patches/server/0864-Elder-Guardian-appearance-API.patch b/patches/server/0864-Elder-Guardian-appearance-API.patch
index d8cd1b222a97..6163706d913d 100644
--- a/patches/server/0864-Elder-Guardian-appearance-API.patch
+++ b/patches/server/0864-Elder-Guardian-appearance-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4fd4f2dee936c9b96b5297e16bb0061f3bfe2579..a60aa6f6fd00cc52cb7bedcf620b4b665191676d 100644
+index ff03991672c2ca9d23e370d406a9a138659cf050..68f02c0ba6e04ba8bb6433bc2f94d6eed5deeb4a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -3170,6 +3170,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0866-Add-entity-knockback-API.patch b/patches/server/0866-Add-entity-knockback-API.patch
index 99dda3f0885c..a7530e45fbab 100644
--- a/patches/server/0866-Add-entity-knockback-API.patch
+++ b/patches/server/0866-Add-entity-knockback-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add entity knockback API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index c45d7e1262534255025392a804c9e4f47213f637..2477c1be05de15f8210da464787c38cc039891c0 100644
+index f0d8000915db9ae497dddb09e9bde87a516a1b4b..f466b51947e1e6ed9e20ee1e5a0a535e9614efaa 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -1016,5 +1016,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0881-Add-Player-Warden-Warning-API.patch b/patches/server/0881-Add-Player-Warden-Warning-API.patch
index 766402222171..37030b6551b9 100644
--- a/patches/server/0881-Add-Player-Warden-Warning-API.patch
+++ b/patches/server/0881-Add-Player-Warden-Warning-API.patch
@@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick
 public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a60aa6f6fd00cc52cb7bedcf620b4b665191676d..b119a4cce62a7fc10b1bf369f0abfa55e4fa9a38 100644
+index 68f02c0ba6e04ba8bb6433bc2f94d6eed5deeb4a..527098dc1761d1e4c3d9adf0a1a3a1483b20ce7f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -3175,6 +3175,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0882-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0882-More-vanilla-friendly-methods-to-update-trades.patch
index 059214189668..9c5c52b75678 100644
--- a/patches/server/0882-More-vanilla-friendly-methods-to-update-trades.patch
+++ b/patches/server/0882-More-vanilla-friendly-methods-to-update-trades.patch
@@ -35,10 +35,10 @@ index 84cee8fb09f90424438de336f60d9388da1b39de..f555e29c7f9ea4ddb243a018bdc93d2b
  
      public void gossip(ServerLevel world, Villager villager, long time) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-index b27b9001b8eb74c713e6766f0919110432775a2e..f29e221e5b850516c169c03bfbd2b0885d1a841b 100644
+index 5e779b7f1ba40e418d24c9d37506420c83bfb3fe..a67b5d20b956e0bf801c9eeb9330567c21927010 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-@@ -93,6 +93,34 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
+@@ -95,6 +95,34 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
      }
  
      // Paper start
diff --git a/patches/server/0885-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0885-Fix-async-entity-add-due-to-fungus-trees.patch
index 3d040ad44ccc..b1c37090977a 100644
--- a/patches/server/0885-Fix-async-entity-add-due-to-fungus-trees.patch
+++ b/patches/server/0885-Fix-async-entity-add-due-to-fungus-trees.patch
@@ -17,10 +17,10 @@ index 52fd12c474c01f3b53d0f6596b7a6fafee52bd0d..877498729c66de9aa6a27c9148f7494d
                  BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null;
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 3b9d7f92f4e47da2d7eb1e9cb9e996ee36b57e4c..d8908ba20280d21a2114afebdf13b1a5520e48e7 100644
+index 254cdf5efe85583c5ef126d46af7c5246daa97c2..6f3598c12ad8f5d35863669c1f85b5581aa82a60 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -401,10 +401,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -402,10 +402,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
                  ((ChorusFlowerBlock) Blocks.CHORUS_FLOWER).generatePlant(access, pos, random, 8);
                  return true;
              case CRIMSON_FUNGUS:
diff --git a/patches/server/0886-ItemStack-damage-API.patch b/patches/server/0886-ItemStack-damage-API.patch
index 3ddc1cb75b48..c46fbd71d92c 100644
--- a/patches/server/0886-ItemStack-damage-API.patch
+++ b/patches/server/0886-ItemStack-damage-API.patch
@@ -11,7 +11,7 @@ the logic associated with damaging them
 public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 2477c1be05de15f8210da464787c38cc039891c0..0bd820f556494880926c719981a8d33797ee350d 100644
+index f466b51947e1e6ed9e20ee1e5a0a535e9614efaa..4971f918a014ba418f95a0d438aa3531eeef6908 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -1017,6 +1017,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0887-Friction-API.patch b/patches/server/0887-Friction-API.patch
index ee93938f683a..2ac1f3430813 100644
--- a/patches/server/0887-Friction-API.patch
+++ b/patches/server/0887-Friction-API.patch
@@ -54,7 +54,7 @@ index b8174fd81aba6d47d4882fdd442fb3c011b755ac..ac89d89081cde83b700dd7c13930cd14
          if (nbt.contains("Attributes", 9) && this.level() != null && !this.level().isClientSide) {
              this.getAttributes().load(nbt.getList("Attributes", 10));
 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index 22d29a2e58c5615dcee04ba68752fb76489c8a28..d39f31e7cf315c7cdc1daab28164380e44dd8341 100644
+index 1a06d8c839e94fe2c1920035d606b62e0dc5cfba..eb0351aa12eebcefab1d1d14641fc3c60cbbcab8 100644
 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
 @@ -55,6 +55,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -132,7 +132,7 @@ index d160db37a3b7ef44b6de8fef209eeccef46c3a95..5e83fabb20bc2b0668cbf48530053ca1
      public int getHealth() {
          return item.health;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 0bd820f556494880926c719981a8d33797ee350d..dc6f09332d76b9f23e42fce42a2900d7a3d968a4 100644
+index 4971f918a014ba418f95a0d438aa3531eeef6908..b4b56bebf5308f4dcc51c1a2815f9689a6918b13 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -1064,6 +1064,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0895-fix-Instruments.patch b/patches/server/0895-fix-Instruments.patch
index 8ee99ca3340e..1810db2e5454 100644
--- a/patches/server/0895-fix-Instruments.patch
+++ b/patches/server/0895-fix-Instruments.patch
@@ -6,46 +6,46 @@ Subject: [PATCH] fix Instruments
 properly handle Player#playNote
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b119a4cce62a7fc10b1bf369f0abfa55e4fa9a38..ecca4cc87fa3b00ac29db87ee69aaa1a24d4e00f 100644
+index 527098dc1761d1e4c3d9adf0a1a3a1483b20ce7f..99d4c05c20089fb9520813de8a3b2de92b7d3829 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -726,29 +726,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
  
          if (this.getHandle().connection == null) return;
  
--        String instrumentName = switch (instrument.ordinal()) {
--            case 0 -> "harp";
--            case 1 -> "basedrum";
--            case 2 -> "snare";
--            case 3 -> "hat";
--            case 4 -> "bass";
--            case 5 -> "flute";
--            case 6 -> "bell";
--            case 7 -> "guitar";
--            case 8 -> "chime";
--            case 9 -> "xylophone";
--            case 10 -> "iron_xylophone";
--            case 11 -> "cow_bell";
--            case 12 -> "didgeridoo";
--            case 13 -> "bit";
--            case 14 -> "banjo";
--            case 15 -> "pling";
--            case 16 -> "xylophone";
+-        Sound instrumentSound = switch (instrument.ordinal()) {
+-            case 0 -> Sound.BLOCK_NOTE_BLOCK_HARP;
+-            case 1 -> Sound.BLOCK_NOTE_BLOCK_BASEDRUM;
+-            case 2 -> Sound.BLOCK_NOTE_BLOCK_SNARE;
+-            case 3 -> Sound.BLOCK_NOTE_BLOCK_HAT;
+-            case 4 -> Sound.BLOCK_NOTE_BLOCK_BASS;
+-            case 5 -> Sound.BLOCK_NOTE_BLOCK_FLUTE;
+-            case 6 -> Sound.BLOCK_NOTE_BLOCK_BELL;
+-            case 7 -> Sound.BLOCK_NOTE_BLOCK_GUITAR;
+-            case 8 -> Sound.BLOCK_NOTE_BLOCK_CHIME;
+-            case 9 -> Sound.BLOCK_NOTE_BLOCK_XYLOPHONE;
+-            case 10 -> Sound.BLOCK_NOTE_BLOCK_IRON_XYLOPHONE;
+-            case 11 -> Sound.BLOCK_NOTE_BLOCK_COW_BELL;
+-            case 12 -> Sound.BLOCK_NOTE_BLOCK_DIDGERIDOO;
+-            case 13 -> Sound.BLOCK_NOTE_BLOCK_BIT;
+-            case 14 -> Sound.BLOCK_NOTE_BLOCK_BANJO;
+-            case 15 -> Sound.BLOCK_NOTE_BLOCK_PLING;
+-            case 16 -> Sound.BLOCK_NOTE_BLOCK_XYLOPHONE;
 -            default -> null;
 -        };
 -
 -        float f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
--        this.getHandle().connection.send(new ClientboundSoundPacket(BuiltInRegistries.SOUND_EVENT.wrapAsHolder(CraftSound.getSoundEffect("block.note_block." + instrumentName)), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
+-        this.getHandle().connection.send(new ClientboundSoundPacket(CraftSound.bukkitToMinecraftHolder(instrumentSound), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
 +        // Paper start - fix all this (modeled off of NoteBlock)
-+        net.minecraft.world.level.block.state.properties.NoteBlockInstrument nms = CraftBlockData.toNMS(instrument, net.minecraft.world.level.block.state.properties.NoteBlockInstrument.class);
-+        float f;
-+        if (nms.isTunable()) {
-+            f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
++        net.minecraft.world.level.block.state.properties.NoteBlockInstrument noteBlockInstrument = CraftBlockData.toNMS(instrument, net.minecraft.world.level.block.state.properties.NoteBlockInstrument.class);
++        float pitch;
++        if (noteBlockInstrument.isTunable()) {
++            pitch = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
 +        } else {
-+            f = 1.0f;
++            pitch = 1.0f;
 +        }
-+        if (!nms.hasCustomSound()) {
-+            this.getHandle().connection.send(new ClientboundSoundPacket(nms.getSoundEvent(), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
++        if (!noteBlockInstrument.hasCustomSound()) {
++            this.getHandle().connection.send(new ClientboundSoundPacket(noteBlockInstrument.getSoundEvent(), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, pitch, this.getHandle().getRandom().nextLong()));
 +        }
 +        // Paper end
      }
diff --git a/patches/server/0899-Add-Sneaking-API-for-Entities.patch b/patches/server/0899-Add-Sneaking-API-for-Entities.patch
index e2081bc1352f..f94fb0ad2228 100644
--- a/patches/server/0899-Add-Sneaking-API-for-Entities.patch
+++ b/patches/server/0899-Add-Sneaking-API-for-Entities.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Sneaking API for Entities
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index ba0c1be4f5303bd6a33fd27f4e8c9910a8325695..6915da7ef7f1179f1efb3a959194c573e6b362e9 100644
+index f4a9b72f76742b128632183720866df9283ca753..c612c97ca33b445c019ffa8d5074038f4a624db7 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1202,6 +1202,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1201,6 +1201,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          return Pose.values()[this.getHandle().getPose().ordinal()];
      }
  
diff --git a/patches/server/0905-Flying-Fall-Damage.patch b/patches/server/0905-Flying-Fall-Damage.patch
index 8a8aa0a61d7b..c891e1e6f953 100644
--- a/patches/server/0905-Flying-Fall-Damage.patch
+++ b/patches/server/0905-Flying-Fall-Damage.patch
@@ -26,7 +26,7 @@ index 6bf59f8e7f23ffabd2c6f739fe0daf9da6246e1d..d58b4c0dbe651b5068212e5f14dce316
          } else {
              if (fallDistance >= 2.0F) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ecca4cc87fa3b00ac29db87ee69aaa1a24d4e00f..3db0278b66d11cf2d7e4c415e859ed39efbec5d7 100644
+index 99d4c05c20089fb9520813de8a3b2de92b7d3829..17c24a282524d73372a95c06a3a37e44a7f1314b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -2392,6 +2392,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0906-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0906-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
index b0bd1ad9c990..8f3fb0e7f4d6 100644
--- a/patches/server/0906-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
+++ b/patches/server/0906-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
@@ -130,7 +130,7 @@ index da4609caecc8183d02c301c7cedbca52ed39323f..716021520c228b5bbced525b751f5d41
      // See BlockStateFactory#createBlockState(World, BlockPosition, IBlockData, TileEntity)
      private static CraftBlockState getBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 4b28ae4a9bc9a295457cfcb84a86705db8f18502..52875848c97be4569b03f3ebdb02a332da06e361 100644
+index b00547dea90673a43715197bc5873cf94cfbd038..4d96082a3135406f63c6e02e34d8bf6b2d184eb9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1020,7 +1020,7 @@ public class CraftEventFactory {
diff --git a/patches/server/0911-Win-Screen-API.patch b/patches/server/0911-Win-Screen-API.patch
index 06a50044beca..9e1aea3edcdd 100644
--- a/patches/server/0911-Win-Screen-API.patch
+++ b/patches/server/0911-Win-Screen-API.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API
 public net.minecraft.server.level.ServerPlayer seenCredits
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 3db0278b66d11cf2d7e4c415e859ed39efbec5d7..e2dd9441bdcebe0a31f2047b0d704c2b90d32dfa 100644
+index 17c24a282524d73372a95c06a3a37e44a7f1314b..e91b45268d96dfa79cd6472824b203e5250df0a5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1215,6 +1215,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0914-Add-Entity-Body-Yaw-API.patch b/patches/server/0914-Add-Entity-Body-Yaw-API.patch
index 084c4be98bae..e4d7a9ccab49 100644
--- a/patches/server/0914-Add-Entity-Body-Yaw-API.patch
+++ b/patches/server/0914-Add-Entity-Body-Yaw-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 6915da7ef7f1179f1efb3a959194c573e6b362e9..fd89da8b92492c3b507b68d1040d293977528441 100644
+index c612c97ca33b445c019ffa8d5074038f4a624db7..56fe7baf22b040af77a08b7ebddad3aa8a53185f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1430,6 +1430,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1429,6 +1429,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
      public boolean isInPowderedSnow() {
          return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed.
      }
@@ -41,7 +41,7 @@ index 6915da7ef7f1179f1efb3a959194c573e6b362e9..fd89da8b92492c3b507b68d1040d2939
      // Paper Start - Collision API
      @Override
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index dc6f09332d76b9f23e42fce42a2900d7a3d968a4..22847ea7063a660934515a1108e66f9265f1685f 100644
+index b4b56bebf5308f4dcc51c1a2815f9689a6918b13..e997aebe36436570e2461a4685f0fb371ce4ce14 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -1056,6 +1056,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0917-Add-EntityFertilizeEggEvent.patch b/patches/server/0917-Add-EntityFertilizeEggEvent.patch
index a55692c02164..e2025f7a2cb4 100644
--- a/patches/server/0917-Add-EntityFertilizeEggEvent.patch
+++ b/patches/server/0917-Add-EntityFertilizeEggEvent.patch
@@ -69,10 +69,10 @@ index 36b3945832733b5ad66d25aa3a31335234d2acff..47a5125e44cea1ece84657cdb874807f
          this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F);
          } // Paper
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 52875848c97be4569b03f3ebdb02a332da06e361..bdcb1752d0959bbabc17d411f36680bad6669651 100644
+index 4d96082a3135406f63c6e02e34d8bf6b2d184eb9..be120d2d5dd58512a102ea670761b9336a48a8c3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2049,4 +2049,29 @@ public class CraftEventFactory {
+@@ -2051,4 +2051,29 @@ public class CraftEventFactory {
          return event.callEvent();
      }
      // Paper end
diff --git a/patches/server/0937-Add-Mob-Experience-reward-API.patch b/patches/server/0937-Add-Mob-Experience-reward-API.patch
index 3c07d5e97191..47d2f879f2bb 100644
--- a/patches/server/0937-Add-Mob-Experience-reward-API.patch
+++ b/patches/server/0937-Add-Mob-Experience-reward-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Mob Experience reward API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
-index 620d918e302a00d5a6640648e3096988d15535a0..18b9b0dc70f6872a9d71c120bcd2edca531b0ac4 100644
+index c526304d31fd9be1b3c895187f7d9fc45edf4866..153e4c88c168097eb4a78650e7c9c120bec202a3 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
 @@ -158,4 +158,11 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
diff --git a/patches/server/0939-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0939-Fix-DamageCause-for-Falling-Blocks.patch
index 0460fff4942c..0b43d09dfaea 100644
--- a/patches/server/0939-Fix-DamageCause-for-Falling-Blocks.patch
+++ b/patches/server/0939-Fix-DamageCause-for-Falling-Blocks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index bdcb1752d0959bbabc17d411f36680bad6669651..9f012b6ccedc2f325f1cb7ee2d4cb843db4e6a41 100644
+index be120d2d5dd58512a102ea670761b9336a48a8c3..87266f10b5922327060dbe910010e76559be8ca6 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1060,6 +1060,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0944-Expand-PlayerItemMendEvent.patch b/patches/server/0944-Expand-PlayerItemMendEvent.patch
index 25dc1597531f..c5799173eb56 100644
--- a/patches/server/0944-Expand-PlayerItemMendEvent.patch
+++ b/patches/server/0944-Expand-PlayerItemMendEvent.patch
@@ -33,7 +33,7 @@ index 8d8fe55a05eea237a8af99ed15ab16d6167daa77..eca634792d2a7cc649675e3394e84dba
              return k > 0 ? this.repairPlayerItems(player, k) : 0;
          } else {
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index e2dd9441bdcebe0a31f2047b0d704c2b90d32dfa..6a6e3dcdd4cbf93ab68361b0a388a1028b4f96d9 100644
+index e91b45268d96dfa79cd6472824b203e5250df0a5..f036f8bbb5861edec3a05d4c96fc495dd055d529 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1737,11 +1737,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -51,7 +51,7 @@ index e2dd9441bdcebe0a31f2047b0d704c2b90d32dfa..6a6e3dcdd4cbf93ab68361b0a388a102
              }
          }
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 9f012b6ccedc2f325f1cb7ee2d4cb843db4e6a41..4798ece84ad42cce048811a6b1dc9bb779f73945 100644
+index 87266f10b5922327060dbe910010e76559be8ca6..862b38e552615eba73841bb7d1e3e87185eb6a5a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1296,10 +1296,10 @@ public class CraftEventFactory {
diff --git a/patches/server/0951-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0951-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
index 2f5b244c6122..2d866dedaa40 100644
--- a/patches/server/0951-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
+++ b/patches/server/0951-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index ef4c259504694d27534834a5d33e78a8d33ece6c..9b0877f67d5845030b3f11240e89e77401a01c3e 100644
+index 3b264f630a28416f0faacafba91e047bfb0f5190..652730486f93ea829865f7e140823b600ce3bb64 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -360,7 +360,11 @@ public final class CraftServer implements Server {
+@@ -359,7 +359,11 @@ public final class CraftServer implements Server {
          }
          this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile());
          this.commandsConfiguration.options().copyDefaults(true);
diff --git a/patches/server/0954-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0954-Add-method-to-remove-all-active-potion-effects.patch
index b1726ab069a1..c21ed94db890 100644
--- a/patches/server/0954-Add-method-to-remove-all-active-potion-effects.patch
+++ b/patches/server/0954-Add-method-to-remove-all-active-potion-effects.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 22847ea7063a660934515a1108e66f9265f1685f..5ce1c779addafad90d54f2dc76578ec6df5af071 100644
+index e997aebe36436570e2461a4685f0fb371ce4ce14..fe2124694eb080cab685a1ce1f6a66e2fcdf6a17 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
 @@ -503,6 +503,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
diff --git a/patches/server/0962-Call-missing-BlockDispenseEvent.patch b/patches/server/0962-Call-missing-BlockDispenseEvent.patch
index 0b125c631816..9d8ee0fc19d8 100644
--- a/patches/server/0962-Call-missing-BlockDispenseEvent.patch
+++ b/patches/server/0962-Call-missing-BlockDispenseEvent.patch
@@ -50,10 +50,10 @@ index c0baec6ae9bd90410f47aa04d7c7704233375d1a..e9b748a81ec223a701b56d2dc890c9eb
                              for (int k = 0; k < 5; ++k) {
                                  worldserver.sendParticles(ParticleTypes.SPLASH, (double) blockposition.getX() + worldserver.random.nextDouble(), (double) (blockposition.getY() + 1), (double) blockposition.getZ() + worldserver.random.nextDouble(), 1, 0.0D, 0.0D, 0.0D, 1.0D);
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 4798ece84ad42cce048811a6b1dc9bb779f73945..7e21999652796ae90f8c4b0747ecef2fd90c480a 100644
+index 862b38e552615eba73841bb7d1e3e87185eb6a5a..bef88faefc8023a9640b843eaa5216594d0c4386 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2055,6 +2055,32 @@ public class CraftEventFactory {
+@@ -2057,6 +2057,32 @@ public class CraftEventFactory {
      }
      // Paper end
  
diff --git a/patches/server/0967-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0967-fix-item-meta-for-tadpole-buckets.patch
index 92343107f90e..a9cac8a138a2 100644
--- a/patches/server/0967-fix-item-meta-for-tadpole-buckets.patch
+++ b/patches/server/0967-fix-item-meta-for-tadpole-buckets.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] fix item meta for tadpole buckets
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 4c0b250bb9e3cf52173b563b36fd27d9e893e154..3f4e55bb9a4134e54adddca3c662285164068d95 100644
+index 6e91c7ccc36e088be60739dd71b287f0b922a055..57f4cf40359fe9bb427eb0134660d00839a63c86 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
 @@ -348,6 +348,7 @@ public final class CraftItemFactory implements ItemFactory {
diff --git a/patches/server/0968-Suppress-Item-Meta-Validation-Checks.patch b/patches/server/0968-Suppress-Item-Meta-Validation-Checks.patch
index cd59fe39f900..ee6670b47c52 100644
--- a/patches/server/0968-Suppress-Item-Meta-Validation-Checks.patch
+++ b/patches/server/0968-Suppress-Item-Meta-Validation-Checks.patch
@@ -47,18 +47,18 @@ index c92981aedebe934cefa1c96a0328fb91fe17acbc..80138632e5216c71fe7060a59dbb2915
      CraftMetaArmor(Map<String, Object> map) {
          super(map);
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 1481c8ca684eddca3eb5db3aceac4877043b9fcd..076e06908a0cf97f86a64a15ca0231c5b0f06fec 100644
+index 9b266dd16dbf863dcf08783ec665dd237b048793..4bfa08fe53604145a7b1c4e7630bf46519223b59 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -488,7 +488,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -489,7 +489,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
                  continue;
              }
  
--            Attribute attribute = CraftAttributeMap.fromMinecraft(attributeName);
+-            Attribute attribute = CraftAttribute.stringToBukkit(attributeName);
 +            // Paper start
 +            Attribute attribute;
 +            try {
-+                attribute = CraftAttributeMap.fromMinecraft(attributeName);
++                attribute = CraftAttribute.stringToBukkit(attributeName);
 +            } catch (IllegalArgumentException e) {
 +                attribute = null;
 +            }
@@ -67,7 +67,7 @@ index 1481c8ca684eddca3eb5db3aceac4877043b9fcd..076e06908a0cf97f86a64a15ca0231c5
                  continue;
              }
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
-index fe7a8e48a620630a6365edd22466f348de0dc508..cd7aa61a419c4610b841b74b74cfe5a636f292fb 100644
+index 9b9e20014042da4324c9f4babb05d8ba9513f81d..ee37b43060e0b102ab23cf318fd22041f5abaeb0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
 @@ -72,11 +72,13 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
@@ -78,7 +78,7 @@ index fe7a8e48a620630a6365edd22466f348de0dc508..cd7aa61a419c4610b841b74b74cfe5a6
          if (tag.contains(SKULL_OWNER.NBT, CraftMagicNumbers.NBT.TAG_COMPOUND)) {
              this.setProfile(NbtUtils.readGameProfile(tag.getCompound(SKULL_OWNER.NBT)));
          } else if (tag.contains(SKULL_OWNER.NBT, CraftMagicNumbers.NBT.TAG_STRING) && !tag.getString(SKULL_OWNER.NBT).isEmpty()) {
-             this.setProfile(new CraftGameProfile(null, tag.getString(SKULL_OWNER.NBT)));
+             this.setProfile(new GameProfile(Util.NIL_UUID, tag.getString(SKULL_OWNER.NBT)));
          }
 +        } catch (Exception ignored) {} // Paper
  
diff --git a/patches/server/0969-Fix-BanList-API.patch b/patches/server/0969-Fix-BanList-API.patch
index cfa843a407a3..ae76a8357818 100644
--- a/patches/server/0969-Fix-BanList-API.patch
+++ b/patches/server/0969-Fix-BanList-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix BanList API
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
-index aa070258c1f2546ac68869cb62c8752c80c758ab..c6129dc565b8f874b73e2fefcabd4be1c221fd73 100644
+index 3762230eeee47114f683dfa428a8e55cf2f42b48..fda82c7c3b7e28b6d3ed4b28c956a069a975c22c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 @@ -114,17 +114,17 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57
              return null;
          }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6a6e3dcdd4cbf93ab68361b0a388a1028b4f96d9..8b2ed0f06bc8dd5cf3b1ad51ead49539c9206b30 100644
+index f036f8bbb5861edec3a05d4c96fc495dd055d529..d997deef986fd50a23c1fbb10774e4974e0a1cc0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -1635,23 +1635,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -256,7 +256,7 @@ index 6a6e3dcdd4cbf93ab68361b0a388a1028b4f96d9..8b2ed0f06bc8dd5cf3b1ad51ead49539
      }
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
-index 8d2997efaacbe37d9007861ac871fd2719c2d663..b9af7d0591fee7dc1ce98b20387ffeb31096f6a6 100644
+index 2d877acc4cb338193449ae37cafb0cfdc452d6b0..51a6e84198f5b95488e8c757951ba14be4c55625 100644
 --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
 +++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
 @@ -31,7 +31,7 @@ import org.bukkit.profile.PlayerProfile;
diff --git a/patches/server/0971-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0971-Fix-possible-NPE-on-painting-creation.patch
index 36cecd13d081..8485ab12556e 100644
--- a/patches/server/0971-Fix-possible-NPE-on-painting-creation.patch
+++ b/patches/server/0971-Fix-possible-NPE-on-painting-creation.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix possible NPE on painting creation
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index d8908ba20280d21a2114afebdf13b1a5520e48e7..3d2b01a04bb0bf4aaa3bbc7550f13e953ed16895 100644
+index 6f3598c12ad8f5d35863669c1f85b5581aa82a60..3de391034dc8367c538008893615514c628d948e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -916,6 +916,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -917,6 +917,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
                          AABB bb = (ItemFrame.class.isAssignableFrom(clazz))
                                  ? net.minecraft.world.entity.decoration.ItemFrame.calculateBoundingBox(null, pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height)
                                  : HangingEntity.calculateBoundingBox(null, pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height);
@@ -16,7 +16,7 @@ index d8908ba20280d21a2114afebdf13b1a5520e48e7..3d2b01a04bb0bf4aaa3bbc7550f13e95
                          List<net.minecraft.world.entity.Entity> list = (List<net.minecraft.world.entity.Entity>) this.getHandle().getEntities(null, bb);
                          for (Iterator<net.minecraft.world.entity.Entity> it = list.iterator(); !taken && it.hasNext(); ) {
                              net.minecraft.world.entity.Entity e = it.next();
-@@ -942,7 +943,8 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -943,7 +944,8 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
                  if (Painting.class.isAssignableFrom(clazz)) {
                      if (this.isNormalWorld() && randomizeData) {
                          entity = net.minecraft.world.entity.decoration.Painting.create(world, pos, dir).orElse(null);
diff --git a/patches/server/0973-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0973-ExperienceOrb-should-call-EntitySpawnEvent.patch
index 393650c97e4f..aa8cb4735357 100644
--- a/patches/server/0973-ExperienceOrb-should-call-EntitySpawnEvent.patch
+++ b/patches/server/0973-ExperienceOrb-should-call-EntitySpawnEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7e21999652796ae90f8c4b0747ecef2fd90c480a..7f6e5c65306b3984804b7dd2751b34584f13a8f5 100644
+index bef88faefc8023a9640b843eaa5216594d0c4386..11f413f6c06a7da58c9411e4e240d48099774356 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -720,7 +720,10 @@ public class CraftEventFactory {
diff --git a/patches/server/0978-Folia-scheduler-and-owned-region-API.patch b/patches/server/0978-Folia-scheduler-and-owned-region-API.patch
index a5b4d3ced805..f2b064b8214a 100644
--- a/patches/server/0978-Folia-scheduler-and-owned-region-API.patch
+++ b/patches/server/0978-Folia-scheduler-and-owned-region-API.patch
@@ -1224,10 +1224,10 @@ index ac7f1f317782a6c6ad41614fbe6c25498da63010..426023af3cbed9c17048e669c87a1c66
      public void setLevelCallback(EntityInLevelCallback changeListener) {
          this.levelCallback = changeListener;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9b0877f67d5845030b3f11240e89e77401a01c3e..76adf846817aa8665f6601496317986e62a191cd 100644
+index 652730486f93ea829865f7e140823b600ce3bb64..3c5ae22e97a0dc7307161b6a96140dae2be25995 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -309,6 +309,76 @@ public final class CraftServer implements Server {
+@@ -308,6 +308,76 @@ public final class CraftServer implements Server {
      private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper
      private final CraftPotionBrewer potionBrewer = new CraftPotionBrewer(); // Paper
  
@@ -1305,7 +1305,7 @@ index 9b0877f67d5845030b3f11240e89e77401a01c3e..76adf846817aa8665f6601496317986e
          ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
          ConfigurationSerialization.registerClass(CraftPlayerProfile.class);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index fd89da8b92492c3b507b68d1040d293977528441..daa7c3e4cc59b1325d694fbc621e595c28c12c6b 100644
+index 56fe7baf22b040af77a08b7ebddad3aa8a53185f..39940331a3322213856b0ef4ca71f00965d05b4f 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 @@ -207,6 +207,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1324,7 +1324,7 @@ index fd89da8b92492c3b507b68d1040d293977528441..daa7c3e4cc59b1325d694fbc621e595c
  
      public CraftEntity(final CraftServer server, final Entity entity) {
          this.server = server;
-@@ -831,6 +840,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -830,6 +839,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          return this.entity;
      }
  
diff --git a/patches/server/0980-API-for-updating-recipes-on-clients.patch b/patches/server/0980-API-for-updating-recipes-on-clients.patch
index 34b781e1c0e0..b6d9838ada54 100644
--- a/patches/server/0980-API-for-updating-recipes-on-clients.patch
+++ b/patches/server/0980-API-for-updating-recipes-on-clients.patch
@@ -39,10 +39,10 @@ index 723a87701a44e379c80e6def91c5340e37c87ba1..986ab7dd2135b4cb871923b20e3dc83e
          Iterator iterator1 = this.players.iterator();
  
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 76adf846817aa8665f6601496317986e62a191cd..87a4141c3fdaaa6ef855f6ceff5f44e03d894c46 100644
+index 3c5ae22e97a0dc7307161b6a96140dae2be25995..a3d1d4d259014f55feda56dc97c2cfd48891de12 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1132,6 +1132,18 @@ public final class CraftServer implements Server {
+@@ -1131,6 +1131,18 @@ public final class CraftServer implements Server {
          ReloadCommand.reload(console);
      }
  
@@ -61,7 +61,7 @@ index 76adf846817aa8665f6601496317986e62a191cd..87a4141c3fdaaa6ef855f6ceff5f44e0
      private void loadIcon() {
          this.icon = new CraftIconCache(null);
          try {
-@@ -1474,6 +1486,13 @@ public final class CraftServer implements Server {
+@@ -1473,6 +1485,13 @@ public final class CraftServer implements Server {
  
      @Override
      public boolean addRecipe(Recipe recipe) {
@@ -75,7 +75,7 @@ index 76adf846817aa8665f6601496317986e62a191cd..87a4141c3fdaaa6ef855f6ceff5f44e0
          CraftRecipe toAdd;
          if (recipe instanceof CraftRecipe) {
              toAdd = (CraftRecipe) recipe;
-@@ -1503,6 +1522,11 @@ public final class CraftServer implements Server {
+@@ -1502,6 +1521,11 @@ public final class CraftServer implements Server {
              }
          }
          toAdd.addToCraftingManager();
@@ -87,7 +87,7 @@ index 76adf846817aa8665f6601496317986e62a191cd..87a4141c3fdaaa6ef855f6ceff5f44e0
          return true;
      }
  
-@@ -1622,10 +1646,23 @@ public final class CraftServer implements Server {
+@@ -1621,10 +1645,23 @@ public final class CraftServer implements Server {
  
      @Override
      public boolean removeRecipe(NamespacedKey recipeKey) {
diff --git a/patches/server/0981-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0981-Fix-rotation-when-spawning-display-entities.patch
index c900f445f182..d0ab343b2d6f 100644
--- a/patches/server/0981-Fix-rotation-when-spawning-display-entities.patch
+++ b/patches/server/0981-Fix-rotation-when-spawning-display-entities.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix rotation when spawning display entities
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 3d2b01a04bb0bf4aaa3bbc7550f13e953ed16895..e3501ff996487bc1020470a5bf7c892dbfcdaacd 100644
+index 3de391034dc8367c538008893615514c628d948e..7673e6c8a16455366d46a64df00c97663089c2ce 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -986,6 +986,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -987,6 +987,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
  
              if (entity != null) {
                  entity.setPos(x, y, z);
diff --git a/patches/server/0982-Only-capture-actual-tree-growth.patch b/patches/server/0982-Only-capture-actual-tree-growth.patch
index 15bc8126dc55..146e0f5cad06 100644
--- a/patches/server/0982-Only-capture-actual-tree-growth.patch
+++ b/patches/server/0982-Only-capture-actual-tree-growth.patch
@@ -57,10 +57,10 @@ index f43e6fe77e943239c1f1d6fa3e31235949f79546..53ac4e618fec3fe384d8a106c521f3ea
                      }
                  }
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index f3ac362b7b65a5273ff5fdad1d8065c5f654a53a..bb5837c74edfecec9956b635546a8ecfe1c7dfa5 100644
+index e8dd0b9184e164b41cb4b361f23b6925e7670f8f..24ba4e1fd80d8effc8e70224103d3b93d69cb2ac 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -592,6 +592,7 @@ public class CraftBlock implements Block {
+@@ -565,6 +565,7 @@ public class CraftBlock implements Block {
              if (!event.isCancelled()) {
                  for (BlockState blockstate : blocks) {
                      blockstate.update(true);
diff --git a/patches/server/0984-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0984-Respect-randomizeData-on-more-entities-when-spawning.patch
index 7d2fd2d075d1..dd08dc14b019 100644
--- a/patches/server/0984-Respect-randomizeData-on-more-entities-when-spawning.patch
+++ b/patches/server/0984-Respect-randomizeData-on-more-entities-when-spawning.patch
@@ -9,10 +9,10 @@ Subject: [PATCH] Respect randomizeData on more entities when spawning
 * ExperienceOrb
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index e3501ff996487bc1020470a5bf7c892dbfcdaacd..bf2cd1eb04c10b8422ddca8efd397290bf58ea4d 100644
+index 7673e6c8a16455366d46a64df00c97663089c2ce..1a17875426468b287c8ea3f559ea516d0218f7a0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -603,6 +603,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -604,6 +604,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
          } else if (org.bukkit.entity.Item.class.isAssignableFrom(clazz)) {
              entity = new net.minecraft.world.entity.item.ItemEntity(world, x, y, z, new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.DIRT));
              // Paper end
@@ -24,7 +24,7 @@ index e3501ff996487bc1020470a5bf7c892dbfcdaacd..bf2cd1eb04c10b8422ddca8efd397290
          } else if (FallingBlock.class.isAssignableFrom(clazz)) {
              BlockPos pos = BlockPos.containing(x, y, z);
              entity = new FallingBlockEntity(world, x, y, z, this.getHandle().getBlockState(pos)); // Paper
-@@ -658,6 +663,14 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -659,6 +664,14 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
                  entity.moveTo(x, y, z, yaw, pitch);
              } else if (Firework.class.isAssignableFrom(clazz)) {
                  entity = new FireworkRocketEntity(world, x, y, z, net.minecraft.world.item.ItemStack.EMPTY);
@@ -39,7 +39,7 @@ index e3501ff996487bc1020470a5bf7c892dbfcdaacd..bf2cd1eb04c10b8422ddca8efd397290
              }
          } else if (Minecart.class.isAssignableFrom(clazz)) {
              if (PoweredMinecart.class.isAssignableFrom(clazz)) {
-@@ -959,8 +972,19 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -960,8 +973,19 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
              }
          } else if (TNTPrimed.class.isAssignableFrom(clazz)) {
              entity = new PrimedTnt(world, x, y, z, null);
diff --git a/patches/server/0985-Use-correct-seed-on-api-world-load.patch b/patches/server/0985-Use-correct-seed-on-api-world-load.patch
index ce69d5fe0381..f518b6abe5da 100644
--- a/patches/server/0985-Use-correct-seed-on-api-world-load.patch
+++ b/patches/server/0985-Use-correct-seed-on-api-world-load.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Use correct seed on api world load
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 87a4141c3fdaaa6ef855f6ceff5f44e03d894c46..cbe4d0c7743ab8bca93041177c8ffdf0fb570570 100644
+index a3d1d4d259014f55feda56dc97c2cfd48891de12..23c66510e877670e194b74a0935f1a810ce762b5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1313,7 +1313,7 @@ public final class CraftServer implements Server {
+@@ -1312,7 +1312,7 @@ public final class CraftServer implements Server {
  
          // Paper - move down
  
diff --git a/patches/server/0988-Fix-custom-statistic-criteria-creation.patch b/patches/server/0988-Fix-custom-statistic-criteria-creation.patch
index 36b38e1ad4a6..361523edd95b 100644
--- a/patches/server/0988-Fix-custom-statistic-criteria-creation.patch
+++ b/patches/server/0988-Fix-custom-statistic-criteria-creation.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix custom statistic criteria creation
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 58f2eaf81f24f1548bdc9f46528cb4b94b18de69..868d502a9bc49bf5e1295c28a76fc09ed37f8591 100644
+index 437b331dc1f77d8fda895a42550bfb1035c8c3c1..96f6e0554baf5915dd1f5b93f3bcfe7a13393c29 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -623,6 +623,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -604,6 +604,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
          net.minecraft.core.Holder<net.minecraft.world.level.biome.Biome> biomeBase = cra.getHandle().registryAccess().registryOrThrow(net.minecraft.core.registries.Registries.BIOME).getHolderOrThrow(net.minecraft.resources.ResourceKey.create(net.minecraft.core.registries.Registries.BIOME, org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(biomeKey)));
          cra.setBiome(x, y, z, biomeBase);
      }
diff --git a/patches/server/0989-Bandaid-fix-for-Effect.patch b/patches/server/0989-Bandaid-fix-for-Effect.patch
index 3a386db86c78..fcaf0489aaee 100644
--- a/patches/server/0989-Bandaid-fix-for-Effect.patch
+++ b/patches/server/0989-Bandaid-fix-for-Effect.patch
@@ -45,10 +45,10 @@ index 5a5a8945c786e16ff0df62494ddd1ac85c42b53f..63f9735d356dafd579cee4423d3037eb
          case COMPOSTER_FILL_ATTEMPT:
              datavalue = ((Boolean) data) ? 1 : 0;
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 9707487f2533c30dc1998fafc626e50948ee4dab..1b996cbbbbf3f753f1144d553f763e15f23593bd 100644
+index efefb334aba5a7dc03fbe210b9528109d31ad3fa..7aef2714791674086246ab4b5b92c8965dbfdae0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1369,7 +1369,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1368,7 +1368,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
      public <T> void playEffect(Location loc, Effect effect, T data, int radius) {
          if (data != null) {
              Preconditions.checkArgument(effect.getData() != null, "Effect.%s does not have a valid Data", effect);
@@ -58,7 +58,7 @@ index 9707487f2533c30dc1998fafc626e50948ee4dab..1b996cbbbbf3f753f1144d553f763e15
              // Special case: the axis is optional for ELECTRIC_SPARK
              Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect);
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8b2ed0f06bc8dd5cf3b1ad51ead49539c9206b30..1975444d38d5130efde54f9122387997658d87e7 100644
+index d997deef986fd50a23c1fbb10774e4974e0a1cc0..7c73dd0717924531523e126bc79282aee4a3103c 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -862,7 +862,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0991-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0991-API-for-an-entity-s-scoreboard-name.patch
index 20923b834a9b..1a0045c1c87f 100644
--- a/patches/server/0991-API-for-an-entity-s-scoreboard-name.patch
+++ b/patches/server/0991-API-for-an-entity-s-scoreboard-name.patch
@@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different
 methods depending on the implementation of Entity you were working with.
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index daa7c3e4cc59b1325d694fbc621e595c28c12c6b..4a84b595e33dd8a378b8bdefbc97aa22af4a1e72 100644
+index 39940331a3322213856b0ef4ca71f00965d05b4f..bcd25a26bab436504c58edc1f5fb0a0337459464 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1486,4 +1486,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1485,4 +1485,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
          return !this.getHandle().level().noCollision(this.getHandle(), aabb);
      }
      // Paper End - Collision API
diff --git a/patches/server/0993-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0993-Deprecate-and-replace-methods-with-old-StructureType.patch
index c9aa97e35966..9a940e820897 100644
--- a/patches/server/0993-Deprecate-and-replace-methods-with-old-StructureType.patch
+++ b/patches/server/0993-Deprecate-and-replace-methods-with-old-StructureType.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index cbe4d0c7743ab8bca93041177c8ffdf0fb570570..fdd4cb183bc3689ed1df1ff40ceaa41c8a356ea4 100644
+index 23c66510e877670e194b74a0935f1a810ce762b5..7e38dd8b7015f8f648c551ab0a83c4822bfa37a0 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1855,6 +1855,11 @@ public final class CraftServer implements Server {
+@@ -1854,6 +1854,11 @@ public final class CraftServer implements Server {
  
          ServerLevel worldServer = ((CraftWorld) world).getHandle();
          Location structureLocation = world.locateNearestStructure(location, structureType, radius, findUnexplored);
@@ -20,7 +20,7 @@ index cbe4d0c7743ab8bca93041177c8ffdf0fb570570..fdd4cb183bc3689ed1df1ff40ceaa41c
          BlockPos structurePosition = CraftLocation.toBlockPosition(structureLocation);
  
          // Create map with trackPlayer = true, unlimitedTracking = true
-@@ -1865,6 +1870,31 @@ public final class CraftServer implements Server {
+@@ -1864,6 +1869,31 @@ public final class CraftServer implements Server {
  
          return CraftItemStack.asBukkitCopy(stack);
      }
diff --git a/patches/server/0998-Add-Listing-API-for-Player.patch b/patches/server/0998-Add-Listing-API-for-Player.patch
index 8891b44b9a3a..d0c52891a097 100644
--- a/patches/server/0998-Add-Listing-API-for-Player.patch
+++ b/patches/server/0998-Add-Listing-API-for-Player.patch
@@ -113,7 +113,7 @@ index 986ab7dd2135b4cb871923b20e3dc83e17e2bae9..ba415d400c706c0483c0dc8da959b5ff
          // Paper end
          player.sentListPacket = true;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 1975444d38d5130efde54f9122387997658d87e7..5db28d16070b5d5ec076ec3c7c84e5d7cf230601 100644
+index 7c73dd0717924531523e126bc79282aee4a3103c..4f6c3bbb9850f307c382ee961e544f0035b2d29e 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -184,6 +184,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/1000-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/server/1000-Expose-clicked-BlockFace-during-BlockDamageEvent.patch
index cbe1991b7df3..566e62b5de85 100644
--- a/patches/server/1000-Expose-clicked-BlockFace-during-BlockDamageEvent.patch
+++ b/patches/server/1000-Expose-clicked-BlockFace-during-BlockDamageEvent.patch
@@ -18,7 +18,7 @@ index 0435c8262480bf5d83fd4306205f32b979911811..1b0302df0ed420fd7f9d6803d796abf7
                  if (blockEvent.isCancelled()) {
                      // Let the client know the block still exists
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7f6e5c65306b3984804b7dd2751b34584f13a8f5..e6f1df5706f2fd4e14f98053344bda03c1c12773 100644
+index 11f413f6c06a7da58c9411e4e240d48099774356..37bba53fe2c55668a8e280b669fc138d4413a405 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -650,13 +650,13 @@ public class CraftEventFactory {
diff --git a/patches/server/1002-Expand-Pose-API.patch b/patches/server/1002-Expand-Pose-API.patch
index 509291831fd2..67a17d8d1cfd 100644
--- a/patches/server/1002-Expand-Pose-API.patch
+++ b/patches/server/1002-Expand-Pose-API.patch
@@ -25,10 +25,10 @@ index 426023af3cbed9c17048e669c87a1c66bda4ad1b..f20ae9153b7098980ce6c0e75fcbbb4d
          if (pose == this.getPose()) {
              return;
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 4a84b595e33dd8a378b8bdefbc97aa22af4a1e72..327c9db9907a0b6953fa9ca133ec2f7dd3c74127 100644
+index bcd25a26bab436504c58edc1f5fb0a0337459464..e932cfac619c30b8c7444a9fa41e0403a6eadf6a 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1227,6 +1227,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1226,6 +1226,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
      public boolean isSneaking() {
          return this.getHandle().isShiftKeyDown();
      }
diff --git a/patches/server/1004-Deep-clone-unhandled-nbt-tags.patch b/patches/server/1004-Deep-clone-unhandled-nbt-tags.patch
index f37bf3749487..cca733166360 100644
--- a/patches/server/1004-Deep-clone-unhandled-nbt-tags.patch
+++ b/patches/server/1004-Deep-clone-unhandled-nbt-tags.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Deep clone unhandled nbt tags
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 076e06908a0cf97f86a64a15ca0231c5b0f06fec..3df1822b55358a9bdf41bcacd5b7fecfd8f05dfa 100644
+index 4bfa08fe53604145a7b1c4e7630bf46519223b59..9d4cb06b8009c6e22db4237cffa99008bbec6e84 100644
 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -303,7 +303,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -304,7 +304,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
      private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
  
      private CompoundTag internalTag;
@@ -17,7 +17,7 @@ index 076e06908a0cf97f86a64a15ca0231c5b0f06fec..3df1822b55358a9bdf41bcacd5b7fecf
      private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY);
  
      private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only
-@@ -344,8 +344,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -345,8 +345,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
              this.destroyableKeys = new java.util.HashSet<>(meta.destroyableKeys);
          }
          // Paper end
@@ -30,7 +30,7 @@ index 076e06908a0cf97f86a64a15ca0231c5b0f06fec..3df1822b55358a9bdf41bcacd5b7fecf
  
          this.internalTag = meta.internalTag;
          if (this.internalTag != null) {
-@@ -1393,7 +1395,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1394,7 +1396,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
              if (this.hasAttributeModifiers()) {
                  clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
              }
diff --git a/patches/server/1010-Implement-OfflinePlayer-isConnected.patch b/patches/server/1010-Implement-OfflinePlayer-isConnected.patch
index 157d1931e982..94c72e3a588f 100644
--- a/patches/server/1010-Implement-OfflinePlayer-isConnected.patch
+++ b/patches/server/1010-Implement-OfflinePlayer-isConnected.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement OfflinePlayer#isConnected
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
-index c6129dc565b8f874b73e2fefcabd4be1c221fd73..c1b874cd6e0498fce3cd53fdbaca30d290e004d7 100644
+index fda82c7c3b7e28b6d3ed4b28c956a069a975c22c..03fc90a470c0f63d44161843cac88bea09166858 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 @@ -53,6 +53,13 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -23,7 +23,7 @@ index c6129dc565b8f874b73e2fefcabd4be1c221fd73..c1b874cd6e0498fce3cd53fdbaca30d2
      public String getName() {
          Player player = this.getPlayer();
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5db28d16070b5d5ec076ec3c7c84e5d7cf230601..ae3ded93ea1440ec2cb9bb7740e9a983210de0fa 100644
+index 4f6c3bbb9850f307c382ee961e544f0035b2d29e..e188bb3ba5d2ec28421947c0b66b25eecb569bfe 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -274,6 +274,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/1012-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/1012-Add-titleOverride-to-InventoryOpenEvent.patch
index 7e78a4e41bb1..1faf111c41fc 100644
--- a/patches/server/1012-Add-titleOverride-to-InventoryOpenEvent.patch
+++ b/patches/server/1012-Add-titleOverride-to-InventoryOpenEvent.patch
@@ -79,7 +79,7 @@ index 5b01ffcdbfff7dbd05143cb08479c90e9b29dfba..017e97c1618b8ee4640b36a0ec1b0702
          if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper
          player.containerMenu = container;
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index e6f1df5706f2fd4e14f98053344bda03c1c12773..10330600acecdc1a1024183c5989dd36a3b176bd 100644
+index 37bba53fe2c55668a8e280b669fc138d4413a405..50fed722bbba5c663e4be33a179ea75dfa2dd9e9 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -1415,10 +1415,21 @@ public class CraftEventFactory {
diff --git a/work/Bukkit b/work/Bukkit
index d7a7a6c677a8..dfe1fb485315 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit d7a7a6c677a84a646a24069572b2ba8b189b4693
+Subproject commit dfe1fb4853158bd17f6955527ad3bf85f4d5150d
diff --git a/work/CraftBukkit b/work/CraftBukkit
index 28c102328648..f71a799f03aa 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit 28c10232864804265dd3fa4e2008a55e1718b128
+Subproject commit f71a799f03aae4277a48b4a1082b478833975682