From eee81acfb0ad6244b807e927d1c25d609145869f Mon Sep 17 00:00:00 2001
From: Noah van der Aa <ndvdaa@gmail.com>
Date: Fri, 22 Sep 2023 09:24:44 +0200
Subject: [PATCH] more more more more more more work

---
 .../server/Add-BellRevealRaiderEvent.patch    |  0
 .../Add-ElderGuardianAppearanceEvent.patch    |  0
 ...g-for-mobs-immune-to-default-effects.patch |  0
 .../server/Add-more-LimitedRegion-API.patch   |  0
 ...n-to-fix-items-merging-through-walls.patch |  0
 .../server/Adds-PlayerArmSwingEvent.patch     |  2 +-
 ...nect-for-book-edit-is-called-on-main.patch |  2 +-
 ...PlayerDropItemEvent-using-wrong-item.patch |  0
 ...from-signs-not-firing-command-events.patch |  0
 .../Fix-dangerous-end-portal-logic.patch      |  7 +--
 ...ncorrect-message-for-outdated-client.patch | 10 ++---
 .../Fix-invulnerable-end-crystals.patch       |  4 +-
 .../server/Fix-potions-splash-events.patch    |  0
 ...-of-Block-applyBoneMeal-always-being.patch |  0
 ...k-event-leave-message-not-being-sent.patch | 44 ++++++++++---------
 .../server/Line-Of-Sight-Changes.patch        |  0
 .../Make-item-validations-configurable.patch  |  0
 .../server/Missing-Entity-API.patch           |  0
 ...e-Biome-Mob-Lookups-for-Mob-Spawning.patch |  0
 ...ttedContainer-instead-of-ThreadingDe.patch | 16 +++----
 ...etChunkIfLoadedImmediately-in-places.patch |  2 +-
 .../server/add-per-world-spawn-limits.patch   |  0
 22 files changed, 45 insertions(+), 42 deletions(-)
 rename patches/{unapplied => }/server/Add-BellRevealRaiderEvent.patch (100%)
 rename patches/{unapplied => }/server/Add-ElderGuardianAppearanceEvent.patch (100%)
 rename patches/{unapplied => }/server/Add-config-for-mobs-immune-to-default-effects.patch (100%)
 rename patches/{unapplied => }/server/Add-more-LimitedRegion-API.patch (100%)
 rename patches/{unapplied => }/server/Add-option-to-fix-items-merging-through-walls.patch (100%)
 rename patches/{unapplied => }/server/Adds-PlayerArmSwingEvent.patch (92%)
 rename patches/{unapplied => }/server/Ensure-disconnect-for-book-edit-is-called-on-main.patch (92%)
 rename patches/{unapplied => }/server/Fix-PlayerDropItemEvent-using-wrong-item.patch (100%)
 rename patches/{unapplied => }/server/Fix-commands-from-signs-not-firing-command-events.patch (100%)
 rename patches/{unapplied => }/server/Fix-dangerous-end-portal-logic.patch (96%)
 rename patches/{unapplied => }/server/Fix-incorrect-message-for-outdated-client.patch (73%)
 rename patches/{unapplied => }/server/Fix-invulnerable-end-crystals.patch (96%)
 rename patches/{unapplied => }/server/Fix-potions-splash-events.patch (100%)
 rename patches/{unapplied => }/server/Fix-return-value-of-Block-applyBoneMeal-always-being.patch (100%)
 rename patches/{unapplied => }/server/Fixes-kick-event-leave-message-not-being-sent.patch (75%)
 rename patches/{unapplied => }/server/Line-Of-Sight-Changes.patch (100%)
 rename patches/{unapplied => }/server/Make-item-validations-configurable.patch (100%)
 rename patches/{unapplied => }/server/Missing-Entity-API.patch (100%)
 rename patches/{unapplied => }/server/Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch (100%)
 rename patches/{unapplied => }/server/Synchronize-PalettedContainer-instead-of-ThreadingDe.patch (84%)
 rename patches/{unapplied => }/server/Use-getChunkIfLoadedImmediately-in-places.patch (96%)
 rename patches/{unapplied => }/server/add-per-world-spawn-limits.patch (100%)

diff --git a/patches/unapplied/server/Add-BellRevealRaiderEvent.patch b/patches/server/Add-BellRevealRaiderEvent.patch
similarity index 100%
rename from patches/unapplied/server/Add-BellRevealRaiderEvent.patch
rename to patches/server/Add-BellRevealRaiderEvent.patch
diff --git a/patches/unapplied/server/Add-ElderGuardianAppearanceEvent.patch b/patches/server/Add-ElderGuardianAppearanceEvent.patch
similarity index 100%
rename from patches/unapplied/server/Add-ElderGuardianAppearanceEvent.patch
rename to patches/server/Add-ElderGuardianAppearanceEvent.patch
diff --git a/patches/unapplied/server/Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/Add-config-for-mobs-immune-to-default-effects.patch
similarity index 100%
rename from patches/unapplied/server/Add-config-for-mobs-immune-to-default-effects.patch
rename to patches/server/Add-config-for-mobs-immune-to-default-effects.patch
diff --git a/patches/unapplied/server/Add-more-LimitedRegion-API.patch b/patches/server/Add-more-LimitedRegion-API.patch
similarity index 100%
rename from patches/unapplied/server/Add-more-LimitedRegion-API.patch
rename to patches/server/Add-more-LimitedRegion-API.patch
diff --git a/patches/unapplied/server/Add-option-to-fix-items-merging-through-walls.patch b/patches/server/Add-option-to-fix-items-merging-through-walls.patch
similarity index 100%
rename from patches/unapplied/server/Add-option-to-fix-items-merging-through-walls.patch
rename to patches/server/Add-option-to-fix-items-merging-through-walls.patch
diff --git a/patches/unapplied/server/Adds-PlayerArmSwingEvent.patch b/patches/server/Adds-PlayerArmSwingEvent.patch
similarity index 92%
rename from patches/unapplied/server/Adds-PlayerArmSwingEvent.patch
rename to patches/server/Adds-PlayerArmSwingEvent.patch
index e7e92cea69..899e2bd6e0 100644
--- a/patches/unapplied/server/Adds-PlayerArmSwingEvent.patch
+++ b/patches/server/Adds-PlayerArmSwingEvent.patch
@@ -8,7 +8,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
 +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
          } // Paper end
  
          // Arm swing animation
diff --git a/patches/unapplied/server/Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/Ensure-disconnect-for-book-edit-is-called-on-main.patch
similarity index 92%
rename from patches/unapplied/server/Ensure-disconnect-for-book-edit-is-called-on-main.patch
rename to patches/server/Ensure-disconnect-for-book-edit-is-called-on-main.patch
index 441844f38e..17ffc7e666 100644
--- a/patches/unapplied/server/Ensure-disconnect-for-book-edit-is-called-on-main.patch
+++ b/patches/server/Ensure-disconnect-for-book-edit-is-called-on-main.patch
@@ -8,7 +8,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
 +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
          // Paper end
          // CraftBukkit start
          if (this.lastBookTick + 20 > MinecraftServer.currentTick) {
diff --git a/patches/unapplied/server/Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/Fix-PlayerDropItemEvent-using-wrong-item.patch
similarity index 100%
rename from patches/unapplied/server/Fix-PlayerDropItemEvent-using-wrong-item.patch
rename to patches/server/Fix-PlayerDropItemEvent-using-wrong-item.patch
diff --git a/patches/unapplied/server/Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/Fix-commands-from-signs-not-firing-command-events.patch
similarity index 100%
rename from patches/unapplied/server/Fix-commands-from-signs-not-firing-command-events.patch
rename to patches/server/Fix-commands-from-signs-not-firing-command-events.patch
diff --git a/patches/unapplied/server/Fix-dangerous-end-portal-logic.patch b/patches/server/Fix-dangerous-end-portal-logic.patch
similarity index 96%
rename from patches/unapplied/server/Fix-dangerous-end-portal-logic.patch
rename to patches/server/Fix-dangerous-end-portal-logic.patch
index d17c618531..1eafeba01a 100644
--- a/patches/unapplied/server/Fix-dangerous-end-portal-logic.patch
+++ b/patches/server/Fix-dangerous-end-portal-logic.patch
@@ -15,9 +15,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/world/entity/Entity.java
 +++ b/src/main/java/net/minecraft/world/entity/Entity.java
 @@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
-         return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
      }
-     // Paper end - optimise entity tracking
+     // Paper end
+ 
 +    // Paper start - make end portalling safe
 +    public BlockPos portalBlock;
 +    public ServerLevel portalWorld;
@@ -48,9 +48,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        this.teleportTo(worldserver, null);
 +    }
 +    // Paper end - make end portalling safe
- 
++
      public Entity(EntityType<?> type, Level world) {
          this.id = Entity.ENTITY_COUNTER.incrementAndGet();
+         this.passengers = ImmutableList.of();
 @@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
              }
  
diff --git a/patches/unapplied/server/Fix-incorrect-message-for-outdated-client.patch b/patches/server/Fix-incorrect-message-for-outdated-client.patch
similarity index 73%
rename from patches/unapplied/server/Fix-incorrect-message-for-outdated-client.patch
rename to patches/server/Fix-incorrect-message-for-outdated-client.patch
index 06545159de..4fd022e490 100644
--- a/patches/unapplied/server/Fix-incorrect-message-for-outdated-client.patch
+++ b/patches/server/Fix-incorrect-message-for-outdated-client.patch
@@ -9,11 +9,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
 +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
 @@ -0,0 +0,0 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
-                 if (packet.getProtocolVersion() != SharedConstants.getCurrentVersion().getProtocolVersion()) {
+                 if (packet.protocolVersion() != SharedConstants.getCurrentVersion().getProtocolVersion()) {
                      Component ichatmutablecomponent; // Paper - Fix hex colors not working in some kick messages
  
--                    if (packet.getProtocolVersion() < 754) {
-+                    if (packet.getProtocolVersion() < SharedConstants.getCurrentVersion().getProtocolVersion()) { // Paper - Fix incorrect message for outdated clients
-                         ichatmutablecomponent = org.bukkit.craftbukkit.util.CraftChatMessage.fromString( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedClientMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName() ) , true )[0]; // Spigot // Paper - Fix hex colors not working in some kick messages
+-                    if (packet.protocolVersion() < 754) {
++                    if (packet.protocolVersion() < SharedConstants.getCurrentVersion().getProtocolVersion()) { // Paper - Fix incorrect message for outdated clients
+                         ichatmutablecomponent = org.bukkit.craftbukkit.util.CraftChatMessage.fromString( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedClientMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName() ) )[0]; // Spigot // Paper - Fix hex colors not working in some kick messages
                      } else {
-                         ichatmutablecomponent = org.bukkit.craftbukkit.util.CraftChatMessage.fromString( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedServerMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName() ) , true )[0]; // Spigot // Paper - Fix hex colors not working in some kick messages
+                         ichatmutablecomponent = org.bukkit.craftbukkit.util.CraftChatMessage.fromString( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedServerMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName() ) )[0]; // Spigot // Paper - Fix hex colors not working in some kick messages
diff --git a/patches/unapplied/server/Fix-invulnerable-end-crystals.patch b/patches/server/Fix-invulnerable-end-crystals.patch
similarity index 96%
rename from patches/unapplied/server/Fix-invulnerable-end-crystals.patch
rename to patches/server/Fix-invulnerable-end-crystals.patch
index 14488ae949..4475e67e56 100644
--- a/patches/unapplied/server/Fix-invulnerable-end-crystals.patch
+++ b/patches/server/Fix-invulnerable-end-crystals.patch
@@ -61,5 +61,5 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
              endCrystal.moveTo((double)spike.getCenterX() + 0.5D, (double)(spike.getHeight() + 1), (double)spike.getCenterZ() + 0.5D, random.nextFloat() * 360.0F, 0.0F);
 +        endCrystal.generatedByDragonFight = true; // Paper
              world.addFreshEntity(endCrystal);
-             this.setBlock(world, new BlockPos(spike.getCenterX(), spike.getHeight(), spike.getCenterZ()), Blocks.BEDROCK.defaultBlockState());
-         }
+             BlockPos blockPos2 = endCrystal.blockPosition();
+             this.setBlock(world, blockPos2.below(), Blocks.BEDROCK.defaultBlockState());
diff --git a/patches/unapplied/server/Fix-potions-splash-events.patch b/patches/server/Fix-potions-splash-events.patch
similarity index 100%
rename from patches/unapplied/server/Fix-potions-splash-events.patch
rename to patches/server/Fix-potions-splash-events.patch
diff --git a/patches/unapplied/server/Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/Fix-return-value-of-Block-applyBoneMeal-always-being.patch
similarity index 100%
rename from patches/unapplied/server/Fix-return-value-of-Block-applyBoneMeal-always-being.patch
rename to patches/server/Fix-return-value-of-Block-applyBoneMeal-always-being.patch
diff --git a/patches/unapplied/server/Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/Fixes-kick-event-leave-message-not-being-sent.patch
similarity index 75%
rename from patches/unapplied/server/Fixes-kick-event-leave-message-not-being-sent.patch
rename to patches/server/Fixes-kick-event-leave-message-not-being-sent.patch
index 8e4318ec31..8720974d92 100644
--- a/patches/unapplied/server/Fixes-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/Fixes-kick-event-leave-message-not-being-sent.patch
@@ -9,9 +9,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
 +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
 @@ -0,0 +0,0 @@ public class ServerPlayer extends Player {
+     public boolean joining = true;
      public boolean sentListPacket = false;
      public boolean supressTrackerForLogin = false; // Paper
-     public Integer clientViewDistance;
 -    public String kickLeaveMessage = null; // SPIGOT-3034: Forward leave message to PlayerQuitEvent
      // CraftBukkit end
      public boolean isRealPlayer; // Paper
@@ -20,24 +20,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
 +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
-             // Do not kick the player
-             return;
-         }
--        this.player.kickLeaveMessage = event.getLeaveMessage(); // CraftBukkit - SPIGOT-3034: Forward leave message to PlayerQuitEvent
-         // Send the possibly modified leave message
-         final Component ichatbasecomponent = PaperAdventure.asVanilla(event.reason()); // Paper - Adventure
-         // CraftBukkit end
-@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
-         this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> {
-             this.connection.disconnect(ichatbasecomponent);
-         }));
--        this.onDisconnect(ichatbasecomponent); // CraftBukkit - fire quit instantly
-+        this.onDisconnect(ichatbasecomponent, event.leaveMessage()); // CraftBukkit - fire quit instantly // Paper - use kick event leave message
-         this.connection.setReadOnly();
-         MinecraftServer minecraftserver = this.server;
-         Connection networkmanager = this.connection;
-@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
  
      @Override
      public void onDisconnect(Component reason) {
@@ -49,7 +32,26 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
          // CraftBukkit start - Rarely it would send a disconnect line twice
          if (this.processedDisconnect) {
              return;
-@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+         }
+         // CraftBukkit end
+         ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), reason.getString());
+-        this.removePlayerFromWorld();
++        this.removePlayerFromWorld(quitMessage); // Paper
+         super.onDisconnect(reason);
+     }
+ 
++    // Paper start
+     private void removePlayerFromWorld() {
++        this.removePlayerFromWorld(null);
++    }
++
++    private void removePlayerFromWorld(@Nullable net.kyori.adventure.text.Component quitMessage) {
++        // Paper end
+         this.chatMessageChain.close();
+         // CraftBukkit start - Replace vanilla quit message handling with our own.
+         /*
+@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
  
          this.player.disconnect();
          // Paper start - Adventure
@@ -78,7 +80,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
              entityplayer.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper
          }
  
--        PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : PaperAdventure.asAdventure(entityplayer.getDisplayName())), entityplayer.quitReason); // Paper - Adventure & quit reason
+-        PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName())), entityplayer.quitReason); // Paper - Adventure & quit reason
 +        PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), leaveMessage, entityplayer.quitReason); // Paper - Adventure & quit reason
          this.cserver.getPluginManager().callEvent(playerQuitEvent);
          entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
diff --git a/patches/unapplied/server/Line-Of-Sight-Changes.patch b/patches/server/Line-Of-Sight-Changes.patch
similarity index 100%
rename from patches/unapplied/server/Line-Of-Sight-Changes.patch
rename to patches/server/Line-Of-Sight-Changes.patch
diff --git a/patches/unapplied/server/Make-item-validations-configurable.patch b/patches/server/Make-item-validations-configurable.patch
similarity index 100%
rename from patches/unapplied/server/Make-item-validations-configurable.patch
rename to patches/server/Make-item-validations-configurable.patch
diff --git a/patches/unapplied/server/Missing-Entity-API.patch b/patches/server/Missing-Entity-API.patch
similarity index 100%
rename from patches/unapplied/server/Missing-Entity-API.patch
rename to patches/server/Missing-Entity-API.patch
diff --git a/patches/unapplied/server/Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
similarity index 100%
rename from patches/unapplied/server/Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
rename to patches/server/Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
diff --git a/patches/unapplied/server/Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
similarity index 84%
rename from patches/unapplied/server/Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
rename to patches/server/Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
index 61d806d98a..1685367dfe 100644
--- a/patches/unapplied/server/Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
+++ b/patches/server/Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
@@ -18,7 +18,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java
 +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java
 @@ -0,0 +0,0 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
-     private final T @org.jetbrains.annotations.Nullable [] presetValues; // Paper - Anti-Xray - Add preset values
+     public final IdMap<T> registry;
      private volatile PalettedContainer.Data<T> data;
      private final PalettedContainer.Strategy strategy;
 -    private final ThreadingDetector threadingDetector = new ThreadingDetector("PalettedContainer");
@@ -34,7 +34,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        // this.threadingDetector.checkAndUnlock(); // Paper - disable this
      }
  
-     // Paper start - Anti-Xray - Add preset values
+     public static <T> Codec<PalettedContainer<T>> codecRW(IdMap<T> idList, Codec<T> entryCodec, PalettedContainer.Strategy paletteProvider, T defaultValue) {
 @@ -0,0 +0,0 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
      }
  
@@ -42,8 +42,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 -    public int onResize(int newBits, T object) {
 +    public synchronized int onResize(int newBits, T object) { // Paper - synchronize
          PalettedContainer.Data<T> data = this.data;
- 
-         // Paper start - Anti-Xray - Add preset values
+         PalettedContainer.Data<T> data2 = this.createOrReuseData(data, newBits);
+         data2.copyFrom(data.palette, data.storage);
 @@ -0,0 +0,0 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
          return this.getAndSet(this.strategy.getIndex(x, y, z), value);
      }
@@ -72,11 +72,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
  
          try {
 @@ -0,0 +0,0 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
+     }
+ 
      @Override
-     @Deprecated @io.papermc.paper.annotation.DoNotUse public void write(FriendlyByteBuf buf) { this.write(buf, null, 0); }
-     @Override
--    public void write(FriendlyByteBuf buf, @Nullable com.destroystokyo.paper.antixray.ChunkPacketInfo<T> chunkPacketInfo, int chunkSectionIndex) {
-+    public synchronized void write(FriendlyByteBuf buf, @Nullable com.destroystokyo.paper.antixray.ChunkPacketInfo<T> chunkPacketInfo, int chunkSectionIndex) { // Paper - synchronize
+-    public void write(FriendlyByteBuf buf) {
++    public synchronized void write(FriendlyByteBuf buf) { // Paper - synchronize
          this.acquire();
  
          try {
diff --git a/patches/unapplied/server/Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/Use-getChunkIfLoadedImmediately-in-places.patch
similarity index 96%
rename from patches/unapplied/server/Use-getChunkIfLoadedImmediately-in-places.patch
rename to patches/server/Use-getChunkIfLoadedImmediately-in-places.patch
index 196e898ad3..6fadb1fc8f 100644
--- a/patches/unapplied/server/Use-getChunkIfLoadedImmediately-in-places.patch
+++ b/patches/server/Use-getChunkIfLoadedImmediately-in-places.patch
@@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +
      public abstract ResourceKey<LevelStem> getTypeKey();
  
-     protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor
+     protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator) { // Paper
 diff --git a/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java b/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java
diff --git a/patches/unapplied/server/add-per-world-spawn-limits.patch b/patches/server/add-per-world-spawn-limits.patch
similarity index 100%
rename from patches/unapplied/server/add-per-world-spawn-limits.patch
rename to patches/server/add-per-world-spawn-limits.patch