From d523c6211b2eff78fc45a370306ef452d3b8eb5a Mon Sep 17 00:00:00 2001
From: Noah van der Aa <ndvdaa@gmail.com>
Date: Wed, 23 Oct 2024 23:12:09 +0200
Subject: [PATCH] MOOOOORE

---
 ...eEvent-and-CollarColorable-interface.patch |  0
 .../server/Add-EntityPortalReadyEvent.patch   |  2 +-
 .../Add-NamespacedKey-biome-methods.patch     |  0
 .../server/Add-Player-getFishHook.patch       |  0
 .../server/Add-PlayerStopUsingItemEvent.patch |  0
 .../Add-Velocity-IP-Forwarding-Support.patch  |  0
 .../server/Add-WardenAngerChangeEvent.patch   |  0
 .../Add-and-fix-missing-BlockFadeEvents.patch |  2 +-
 ...rtant-BlockStateListPopulator-method.patch |  0
 ...-strict-advancement-dimension-checks.patch |  0
 .../Add-support-for-Proxy-Protocol.patch      |  0
 ...us-missing-EntityDropItemEvent-calls.patch |  4 ++--
 .../server/Block-Ticking-API.patch            |  0
 .../server/Collision-API.patch                |  0
 ...stom-Chat-Completion-Suggestions-API.patch |  0
 ...t-selector-resolving-in-books-by-def.patch |  0
 ...-chunk-for-dynamic-game-event-listen.patch |  0
 ...broadcast-messages-to-command-blocks.patch |  0
 .../server/Don-t-tick-markers.patch           |  2 +-
 ...-level-random-in-entity-constructors.patch |  0
 .../Dont-resent-entity-on-art-update.patch    |  0
 .../server/Expand-FallingBlock-API.patch      | 14 ++++++------
 ...-CauldronLevelChange-on-initial-fill.patch | 10 ++++-----
 .../server/Fix-Bee-flower-NPE.patch           | 14 ++++++------
 ...shPotion-and-LingeringPotion-spawnin.patch |  0
 ...ntory-for-smokers-and-blast-furnaces.patch |  0
 ...ix-OfflinePlayer-getBedSpawnLocation.patch |  0
 ...g-not-using-commands.spam-exclusions.patch |  6 ++---
 ...elled-powdered-snow-bucket-placement.patch |  2 +-
 ...and-message-for-brigadier-syntax-exc.patch |  0
 .../Force-close-world-loading-screen.patch    | 16 +++++++-------
 .../server/More-Teleport-API.patch            |  4 ++--
 .../server/Nameable-Banner-API.patch          |  0
 ...mpty-items-from-being-added-to-world.patch |  2 +-
 ...entity-loading-causing-async-lookups.patch |  4 ++--
 .../Sanitize-sent-BlockEntity-NBT.patch       |  0
 ...ck-entities-after-destroy-prediction.patch |  2 +-
 ...n-on-world-create-while-being-ticked.patch |  8 +++----
 ..._destroyed-trigger-in-the-correct-pl.patch |  0
 ...-on-plugins-accessing-faraway-chunks.patch |  0
 ...-snow-cauldrons-not-turning-to-water.patch | 22 +++++++++----------
 41 files changed, 57 insertions(+), 57 deletions(-)
 rename patches/{unapplied => }/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch (100%)
 rename patches/{unapplied => }/server/Add-EntityPortalReadyEvent.patch (91%)
 rename patches/{unapplied => }/server/Add-NamespacedKey-biome-methods.patch (100%)
 rename patches/{unapplied => }/server/Add-Player-getFishHook.patch (100%)
 rename patches/{unapplied => }/server/Add-PlayerStopUsingItemEvent.patch (100%)
 rename patches/{unapplied => }/server/Add-Velocity-IP-Forwarding-Support.patch (100%)
 rename patches/{unapplied => }/server/Add-WardenAngerChangeEvent.patch (100%)
 rename patches/{unapplied => }/server/Add-and-fix-missing-BlockFadeEvents.patch (98%)
 rename patches/{unapplied => }/server/Add-missing-important-BlockStateListPopulator-method.patch (100%)
 rename patches/{unapplied => }/server/Add-option-for-strict-advancement-dimension-checks.patch (100%)
 rename patches/{unapplied => }/server/Add-support-for-Proxy-Protocol.patch (100%)
 rename patches/{unapplied => }/server/Add-various-missing-EntityDropItemEvent-calls.patch (98%)
 rename patches/{unapplied => }/server/Block-Ticking-API.patch (100%)
 rename patches/{unapplied => }/server/Collision-API.patch (100%)
 rename patches/{unapplied => }/server/Custom-Chat-Completion-Suggestions-API.patch (100%)
 rename patches/{unapplied => }/server/Disable-component-selector-resolving-in-books-by-def.patch (100%)
 rename patches/{unapplied => }/server/Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch (100%)
 rename patches/{unapplied => }/server/Don-t-broadcast-messages-to-command-blocks.patch (100%)
 rename patches/{unapplied => }/server/Don-t-tick-markers.patch (98%)
 rename patches/{unapplied => }/server/Don-t-use-level-random-in-entity-constructors.patch (100%)
 rename patches/{unapplied => }/server/Dont-resent-entity-on-art-update.patch (100%)
 rename patches/{unapplied => }/server/Expand-FallingBlock-API.patch (85%)
 rename patches/{unapplied => }/server/Fire-CauldronLevelChange-on-initial-fill.patch (95%)
 rename patches/{unapplied => }/server/Fix-Bee-flower-NPE.patch (55%)
 rename patches/{unapplied => }/server/Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch (100%)
 rename patches/{unapplied => }/server/Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch (100%)
 rename patches/{unapplied => }/server/Fix-OfflinePlayer-getBedSpawnLocation.patch (100%)
 rename patches/{unapplied => }/server/Fix-Spigot-Config-not-using-commands.spam-exclusions.patch (65%)
 rename patches/{unapplied => }/server/Fix-suggest-command-message-for-brigadier-syntax-exc.patch (100%)
 rename patches/{unapplied => }/server/More-Teleport-API.patch (99%)
 rename patches/{unapplied => }/server/Nameable-Banner-API.patch (100%)
 rename patches/{unapplied => }/server/Prevent-empty-items-from-being-added-to-world.patch (97%)
 rename patches/{unapplied => }/server/Prevent-entity-loading-causing-async-lookups.patch (97%)
 rename patches/{unapplied => }/server/Sanitize-sent-BlockEntity-NBT.patch (100%)
 rename patches/{unapplied => }/server/Send-block-entities-after-destroy-prediction.patch (98%)
 rename patches/{unapplied => }/server/Throw-exception-on-world-create-while-being-ticked.patch (95%)
 rename patches/{unapplied => }/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch (100%)
 rename patches/{unapplied => }/server/Warn-on-plugins-accessing-faraway-chunks.patch (100%)
 rename patches/{unapplied => }/server/fix-powder-snow-cauldrons-not-turning-to-water.patch (69%)

diff --git a/patches/unapplied/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch
similarity index 100%
rename from patches/unapplied/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch
rename to patches/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch
diff --git a/patches/unapplied/server/Add-EntityPortalReadyEvent.patch b/patches/server/Add-EntityPortalReadyEvent.patch
similarity index 91%
rename from patches/unapplied/server/Add-EntityPortalReadyEvent.patch
rename to patches/server/Add-EntityPortalReadyEvent.patch
index fadcbd9848..43b6c2251f 100644
--- a/patches/unapplied/server/Add-EntityPortalReadyEvent.patch
+++ b/patches/server/Add-EntityPortalReadyEvent.patch
@@ -22,4 +22,4 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        // Paper end - Add EntityPortalReadyEvent
  
          if (worldserver1 == null) {
-             return new DimensionTransition(PlayerTeleportEvent.TeleportCause.NETHER_PORTAL); // always fire event in case plugins wish to change it
+             return new TeleportTransition(PlayerTeleportEvent.TeleportCause.NETHER_PORTAL); // always fire event in case plugins wish to change it
diff --git a/patches/unapplied/server/Add-NamespacedKey-biome-methods.patch b/patches/server/Add-NamespacedKey-biome-methods.patch
similarity index 100%
rename from patches/unapplied/server/Add-NamespacedKey-biome-methods.patch
rename to patches/server/Add-NamespacedKey-biome-methods.patch
diff --git a/patches/unapplied/server/Add-Player-getFishHook.patch b/patches/server/Add-Player-getFishHook.patch
similarity index 100%
rename from patches/unapplied/server/Add-Player-getFishHook.patch
rename to patches/server/Add-Player-getFishHook.patch
diff --git a/patches/unapplied/server/Add-PlayerStopUsingItemEvent.patch b/patches/server/Add-PlayerStopUsingItemEvent.patch
similarity index 100%
rename from patches/unapplied/server/Add-PlayerStopUsingItemEvent.patch
rename to patches/server/Add-PlayerStopUsingItemEvent.patch
diff --git a/patches/unapplied/server/Add-Velocity-IP-Forwarding-Support.patch b/patches/server/Add-Velocity-IP-Forwarding-Support.patch
similarity index 100%
rename from patches/unapplied/server/Add-Velocity-IP-Forwarding-Support.patch
rename to patches/server/Add-Velocity-IP-Forwarding-Support.patch
diff --git a/patches/unapplied/server/Add-WardenAngerChangeEvent.patch b/patches/server/Add-WardenAngerChangeEvent.patch
similarity index 100%
rename from patches/unapplied/server/Add-WardenAngerChangeEvent.patch
rename to patches/server/Add-WardenAngerChangeEvent.patch
diff --git a/patches/unapplied/server/Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/Add-and-fix-missing-BlockFadeEvents.patch
similarity index 98%
rename from patches/unapplied/server/Add-and-fix-missing-BlockFadeEvents.patch
rename to patches/server/Add-and-fix-missing-BlockFadeEvents.patch
index 1fae68e304..d9d11debb1 100644
--- a/patches/unapplied/server/Add-and-fix-missing-BlockFadeEvents.patch
+++ b/patches/server/Add-and-fix-missing-BlockFadeEvents.patch
@@ -68,4 +68,4 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +            // Paper end - Call BlockFadeEvent
              world.playSound(null, pos, SoundEvents.SNIFFER_EGG_HATCH, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F);
              world.destroyBlock(pos, false);
-             Sniffer sniffer = EntityType.SNIFFER.create(world);
+             Sniffer sniffer = EntityType.SNIFFER.create(world, EntitySpawnReason.BREEDING);
diff --git a/patches/unapplied/server/Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/Add-missing-important-BlockStateListPopulator-method.patch
similarity index 100%
rename from patches/unapplied/server/Add-missing-important-BlockStateListPopulator-method.patch
rename to patches/server/Add-missing-important-BlockStateListPopulator-method.patch
diff --git a/patches/unapplied/server/Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/Add-option-for-strict-advancement-dimension-checks.patch
similarity index 100%
rename from patches/unapplied/server/Add-option-for-strict-advancement-dimension-checks.patch
rename to patches/server/Add-option-for-strict-advancement-dimension-checks.patch
diff --git a/patches/unapplied/server/Add-support-for-Proxy-Protocol.patch b/patches/server/Add-support-for-Proxy-Protocol.patch
similarity index 100%
rename from patches/unapplied/server/Add-support-for-Proxy-Protocol.patch
rename to patches/server/Add-support-for-Proxy-Protocol.patch
diff --git a/patches/unapplied/server/Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/Add-various-missing-EntityDropItemEvent-calls.patch
similarity index 98%
rename from patches/unapplied/server/Add-various-missing-EntityDropItemEvent-calls.patch
rename to patches/server/Add-various-missing-EntityDropItemEvent-calls.patch
index 3877b91cf6..d2e2b82cf6 100644
--- a/patches/unapplied/server/Add-various-missing-EntityDropItemEvent-calls.patch
+++ b/patches/server/Add-various-missing-EntityDropItemEvent-calls.patch
@@ -27,7 +27,7 @@ diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
 +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
-@@ -0,0 +0,0 @@ public class Dolphin extends WaterAnimal {
+@@ -0,0 +0,0 @@ public class Dolphin extends AgeableWaterCreature {
                  float f2 = 0.02F * Dolphin.this.random.nextFloat();
  
                  entityitem.setDeltaMovement((double) (0.3F * -Mth.sin(Dolphin.this.getYRot() * 0.017453292F) * Mth.cos(Dolphin.this.getXRot() * 0.017453292F) + Mth.cos(f1) * f2), (double) (0.3F * Mth.sin(Dolphin.this.getXRot() * 0.017453292F) * 1.5F), (double) (0.3F * Mth.cos(Dolphin.this.getYRot() * 0.017453292F) * Mth.cos(Dolphin.this.getXRot() * 0.017453292F) + Mth.sin(f1) * f2));
@@ -40,7 +40,7 @@ diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
 +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
-@@ -0,0 +0,0 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
+@@ -0,0 +0,0 @@ public class Fox extends Animal implements VariantHolder<Fox.Variant> {
              entityitem.setPickUpDelay(40);
              entityitem.setThrower(this);
              this.playSound(SoundEvents.FOX_SPIT, 1.0F, 1.0F);
diff --git a/patches/unapplied/server/Block-Ticking-API.patch b/patches/server/Block-Ticking-API.patch
similarity index 100%
rename from patches/unapplied/server/Block-Ticking-API.patch
rename to patches/server/Block-Ticking-API.patch
diff --git a/patches/unapplied/server/Collision-API.patch b/patches/server/Collision-API.patch
similarity index 100%
rename from patches/unapplied/server/Collision-API.patch
rename to patches/server/Collision-API.patch
diff --git a/patches/unapplied/server/Custom-Chat-Completion-Suggestions-API.patch b/patches/server/Custom-Chat-Completion-Suggestions-API.patch
similarity index 100%
rename from patches/unapplied/server/Custom-Chat-Completion-Suggestions-API.patch
rename to patches/server/Custom-Chat-Completion-Suggestions-API.patch
diff --git a/patches/unapplied/server/Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/Disable-component-selector-resolving-in-books-by-def.patch
similarity index 100%
rename from patches/unapplied/server/Disable-component-selector-resolving-in-books-by-def.patch
rename to patches/server/Disable-component-selector-resolving-in-books-by-def.patch
diff --git a/patches/unapplied/server/Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
similarity index 100%
rename from patches/unapplied/server/Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
rename to patches/server/Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
diff --git a/patches/unapplied/server/Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/Don-t-broadcast-messages-to-command-blocks.patch
similarity index 100%
rename from patches/unapplied/server/Don-t-broadcast-messages-to-command-blocks.patch
rename to patches/server/Don-t-broadcast-messages-to-command-blocks.patch
diff --git a/patches/unapplied/server/Don-t-tick-markers.patch b/patches/server/Don-t-tick-markers.patch
similarity index 98%
rename from patches/unapplied/server/Don-t-tick-markers.patch
rename to patches/server/Don-t-tick-markers.patch
index 570f90081e..866926d5d1 100644
--- a/patches/unapplied/server/Don-t-tick-markers.patch
+++ b/patches/server/Don-t-tick-markers.patch
@@ -26,7 +26,7 @@ diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/mai
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
 +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -0,0 +0,0 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -0,0 +0,0 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
          }
  
          public void onTickingStart(Entity entity) {
diff --git a/patches/unapplied/server/Don-t-use-level-random-in-entity-constructors.patch b/patches/server/Don-t-use-level-random-in-entity-constructors.patch
similarity index 100%
rename from patches/unapplied/server/Don-t-use-level-random-in-entity-constructors.patch
rename to patches/server/Don-t-use-level-random-in-entity-constructors.patch
diff --git a/patches/unapplied/server/Dont-resent-entity-on-art-update.patch b/patches/server/Dont-resent-entity-on-art-update.patch
similarity index 100%
rename from patches/unapplied/server/Dont-resent-entity-on-art-update.patch
rename to patches/server/Dont-resent-entity-on-art-update.patch
diff --git a/patches/unapplied/server/Expand-FallingBlock-API.patch b/patches/server/Expand-FallingBlock-API.patch
similarity index 85%
rename from patches/unapplied/server/Expand-FallingBlock-API.patch
rename to patches/server/Expand-FallingBlock-API.patch
index 54c98f061f..071e973d8b 100644
--- a/patches/unapplied/server/Expand-FallingBlock-API.patch
+++ b/patches/server/Expand-FallingBlock-API.patch
@@ -25,14 +25,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
      public FallingBlockEntity(EntityType<? extends FallingBlockEntity> type, Level world) {
          super(type, world);
 @@ -0,0 +0,0 @@ public class FallingBlockEntity extends Entity {
-                 }
+                     }
  
-                 if (!this.onGround() && !flag1) {
--                    if (!this.level().isClientSide && (this.time > 100 && (blockposition.getY() <= this.level().getMinBuildHeight() || blockposition.getY() > this.level().getMaxBuildHeight()) || this.time > 600)) {
-+                    if (!this.level().isClientSide && ((this.time > 100 && autoExpire) && (blockposition.getY() <= this.level().getMinBuildHeight() || blockposition.getY() > this.level().getMaxBuildHeight()) || (this.time > 600 && autoExpire))) { // Paper - Expand FallingBlock API
-                         if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) {
-                             this.spawnAtLocation((ItemLike) block);
-                         }
+                     if (!this.onGround() && !flag1) {
+-                        if (this.time > 100 && (blockposition.getY() <= this.level().getMinY() || blockposition.getY() > this.level().getMaxY()) || this.time > 600) {
++                        if ((this.time > 100 && autoExpire) && (blockposition.getY() <= this.level().getMinY() || blockposition.getY() > this.level().getMaxY()) || (this.time > 600 && autoExpire)) { // Paper - Expand FallingBlock API
+                             if (this.dropItem && worldserver.getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) {
+                                 this.spawnAtLocation(worldserver, (ItemLike) block);
+                             }
 @@ -0,0 +0,0 @@ public class FallingBlockEntity extends Entity {
          }
  
diff --git a/patches/unapplied/server/Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/Fire-CauldronLevelChange-on-initial-fill.patch
similarity index 95%
rename from patches/unapplied/server/Fire-CauldronLevelChange-on-initial-fill.patch
rename to patches/server/Fire-CauldronLevelChange-on-initial-fill.patch
index 8d8d836fff..cbe80b6b97 100644
--- a/patches/unapplied/server/Fire-CauldronLevelChange-on-initial-fill.patch
+++ b/patches/server/Fire-CauldronLevelChange-on-initial-fill.patch
@@ -16,7 +16,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
                      // CraftBukkit start
 -                    if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, Blocks.WATER_CAULDRON.defaultBlockState(), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY)) {
 +                    if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, Blocks.WATER_CAULDRON.defaultBlockState(), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper - Call CauldronLevelChangeEvent
-                         return ItemInteractionResult.SUCCESS;
+                         return InteractionResult.SUCCESS;
                      }
                      // CraftBukkit end
 @@ -0,0 +0,0 @@ public interface CauldronInteraction {
@@ -25,7 +25,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
                          // CraftBukkit start
 -                        if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, iblockdata.cycle(LayeredCauldronBlock.LEVEL), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY)) {
 +                        if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, iblockdata.cycle(LayeredCauldronBlock.LEVEL), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper - Call CauldronLevelChangeEvent
-                             return ItemInteractionResult.SUCCESS;
+                             return InteractionResult.SUCCESS;
                          }
                          // CraftBukkit end
 @@ -0,0 +0,0 @@ public interface CauldronInteraction {
@@ -34,16 +34,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
                  // CraftBukkit start
 -                if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.CAULDRON.defaultBlockState(), player, CauldronLevelChangeEvent.ChangeReason.BUCKET_FILL)) {
 +                if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.CAULDRON.defaultBlockState(), player, CauldronLevelChangeEvent.ChangeReason.BUCKET_FILL, false)) { // Paper - Call CauldronLevelChangeEvent
-                     return ItemInteractionResult.SUCCESS;
+                     return InteractionResult.SUCCESS;
                  }
                  // CraftBukkit end
 @@ -0,0 +0,0 @@ public interface CauldronInteraction {
-     static ItemInteractionResult emptyBucket(Level world, BlockPos pos, Player player, InteractionHand hand, ItemStack stack, BlockState state, SoundEvent soundEvent) {
+     static InteractionResult emptyBucket(Level world, BlockPos pos, Player player, InteractionHand hand, ItemStack stack, BlockState state, SoundEvent soundEvent) {
          if (!world.isClientSide) {
              // CraftBukkit start
 -            if (!LayeredCauldronBlock.changeLevel(state, world, pos, state, player, CauldronLevelChangeEvent.ChangeReason.BUCKET_EMPTY)) {
 +            if (!LayeredCauldronBlock.changeLevel(state, world, pos, state, player, CauldronLevelChangeEvent.ChangeReason.BUCKET_EMPTY, false)) { // Paper - Call CauldronLevelChangeEvent
-                 return ItemInteractionResult.SUCCESS;
+                 return InteractionResult.SUCCESS;
              }
              // CraftBukkit end
 diff --git a/src/main/java/net/minecraft/world/level/block/CauldronBlock.java b/src/main/java/net/minecraft/world/level/block/CauldronBlock.java
diff --git a/patches/unapplied/server/Fix-Bee-flower-NPE.patch b/patches/server/Fix-Bee-flower-NPE.patch
similarity index 55%
rename from patches/unapplied/server/Fix-Bee-flower-NPE.patch
rename to patches/server/Fix-Bee-flower-NPE.patch
index 0fb1583d57..f3b85980ba 100644
--- a/patches/unapplied/server/Fix-Bee-flower-NPE.patch
+++ b/patches/server/Fix-Bee-flower-NPE.patch
@@ -9,11 +9,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
 +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
 @@ -0,0 +0,0 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
-             ++this.pollinatingTicks;
-             if (this.pollinatingTicks > 600) {
-                 Bee.this.savedFlowerPos = null;
--            } else {
-+            } else if (Bee.this.savedFlowerPos != null) { // Paper - add null check since API can manipulate this
-                 Vec3 vec3d = Vec3.atBottomCenterOf(Bee.this.savedFlowerPos).add(0.0D, 0.6000000238418579D, 0.0D);
+                     Bee.this.dropFlower();
+                     this.pollinating = false;
+                     Bee.this.remainingCooldownBeforeLocatingNewFlower = 200;
+-                } else {
++                } else if (Bee.this.savedFlowerPos != null) { // Paper - add null check since API can manipulate this
+                     Vec3 vec3d = Vec3.atBottomCenterOf(Bee.this.savedFlowerPos).add(0.0D, 0.6000000238418579D, 0.0D);
  
-                 if (vec3d.distanceTo(Bee.this.position()) > 1.0D) {
+                     if (vec3d.distanceTo(Bee.this.position()) > 1.0D) {
diff --git a/patches/unapplied/server/Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
similarity index 100%
rename from patches/unapplied/server/Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
rename to patches/server/Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
diff --git a/patches/unapplied/server/Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
similarity index 100%
rename from patches/unapplied/server/Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
rename to patches/server/Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
diff --git a/patches/unapplied/server/Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/Fix-OfflinePlayer-getBedSpawnLocation.patch
similarity index 100%
rename from patches/unapplied/server/Fix-OfflinePlayer-getBedSpawnLocation.patch
rename to patches/server/Fix-OfflinePlayer-getBedSpawnLocation.patch
diff --git a/patches/unapplied/server/Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
similarity index 65%
rename from patches/unapplied/server/Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
rename to patches/server/Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
index 7baa70425d..c267468b05 100644
--- a/patches/unapplied/server/Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
+++ b/patches/server/Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
@@ -11,9 +11,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 @@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
          }
          // Spigot end
-         // this.chatSpamTickCount += 20;
--        if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) {
-+        if (counted && this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // Paper - exclude from SpigotConfig.spamExclusions
+         // this.chatSpamThrottler.increment();
+-        if (!this.chatSpamThrottler.isIncrementAndUnderThreshold() && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) {
++        if (counted && !this.chatSpamThrottler.isIncrementAndUnderThreshold() && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // Paper - exclude from SpigotConfig.spamExclusions
              // CraftBukkit end
              this.disconnect((Component) Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - kick event cause
          }
diff --git a/patches/server/Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/Fix-cancelled-powdered-snow-bucket-placement.patch
index 7238ae03fe..b1defbf4df 100644
--- a/patches/server/Fix-cancelled-powdered-snow-bucket-placement.patch
+++ b/patches/server/Fix-cancelled-powdered-snow-bucket-placement.patch
@@ -25,7 +25,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
                      if (blocks.size() > 1) {
                          placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockMultiPlaceEvent(world, entityhuman, enumhand, blocks, blockposition.getX(), blockposition.getY(), blockposition.getZ());
 -                    } else if (blocks.size() == 1) {
-+                } else if (blocks.size() == 1 && item != Items.POWDER_SNOW_BUCKET) { // Paper - Fix cancelled powdered snow bucket placement
++                    } else if (blocks.size() == 1 && item != Items.POWDER_SNOW_BUCKET) { // Paper - Fix cancelled powdered snow bucket placement
                          placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, enumhand, blocks.get(0), blockposition.getX(), blockposition.getY(), blockposition.getZ());
                      }
  
diff --git a/patches/unapplied/server/Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/Fix-suggest-command-message-for-brigadier-syntax-exc.patch
similarity index 100%
rename from patches/unapplied/server/Fix-suggest-command-message-for-brigadier-syntax-exc.patch
rename to patches/server/Fix-suggest-command-message-for-brigadier-syntax-exc.patch
diff --git a/patches/server/Force-close-world-loading-screen.patch b/patches/server/Force-close-world-loading-screen.patch
index afab1e9cef..0e2f8c1ec9 100644
--- a/patches/server/Force-close-world-loading-screen.patch
+++ b/patches/server/Force-close-world-loading-screen.patch
@@ -14,19 +14,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/server/players/PlayerList.java
 +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
 @@ -0,0 +0,0 @@ public abstract class PlayerList {
-         this.registries = registryManager;
-         this.maxPlayers = maxPlayers;
-         this.playerIo = saveHandler;
+         }
+         // Paper end - Configurable player collision
+         PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ());
 +        // Paper start - Send empty chunk, so players aren't stuck in the world loading screen with our chunk system not sending chunks when dead
 +        if (player.isDeadOrDying()) {
-+            net.minecraft.core.Holder<net.minecraft.world.level.biome.Biome> plains = worldserver1.registryAccess().registryOrThrow(net.minecraft.core.registries.Registries.BIOME)
-+                .getHolderOrThrow(net.minecraft.world.level.biome.Biomes.PLAINS);
++            net.minecraft.core.Holder<net.minecraft.world.level.biome.Biome> plains = worldserver1.registryAccess().lookupOrThrow(net.minecraft.core.registries.Registries.BIOME)
++                    .getHolderOrThrow(net.minecraft.world.level.biome.Biomes.PLAINS);
 +            player.connection.send(new net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket(
-+                new net.minecraft.world.level.chunk.EmptyLevelChunk(worldserver1, player.chunkPosition(), plains),
-+                worldserver1.getLightEngine(), (java.util.BitSet)null, (java.util.BitSet) null)
++                    new net.minecraft.world.level.chunk.EmptyLevelChunk(worldserver1, player.chunkPosition(), plains),
++                    worldserver1.getLightEngine(), (java.util.BitSet)null, (java.util.BitSet) null)
 +            );
 +        }
 +        // Paper end - Send empty chunk
      }
-     abstract public void loadAndSaveFiles(); // Paper - fix converting txt to json file; moved from DedicatedPlayerList constructor
  
+     public void updateEntireScoreboard(ServerScoreboard scoreboard, ServerPlayer player) {
diff --git a/patches/unapplied/server/More-Teleport-API.patch b/patches/server/More-Teleport-API.patch
similarity index 99%
rename from patches/unapplied/server/More-Teleport-API.patch
rename to patches/server/More-Teleport-API.patch
index a67a68612a..c4ce1b2cb8 100644
--- a/patches/unapplied/server/More-Teleport-API.patch
+++ b/patches/server/More-Teleport-API.patch
@@ -26,8 +26,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 -            set = Collections.emptySet(); // Can't relative teleport
 +            // set = Collections.emptySet(); // Can't relative teleport // Paper - Teleport API; Now you can!
              to = event.isCancelled() ? event.getFrom() : event.getTo();
-             d0 = to.getX();
-             d1 = to.getY();
+             positionmoverotation = new PositionMoveRotation(CraftLocation.toVec3D(to), Vec3.ZERO, to.getYaw(), to.getPitch());
+         }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
diff --git a/patches/unapplied/server/Nameable-Banner-API.patch b/patches/server/Nameable-Banner-API.patch
similarity index 100%
rename from patches/unapplied/server/Nameable-Banner-API.patch
rename to patches/server/Nameable-Banner-API.patch
diff --git a/patches/unapplied/server/Prevent-empty-items-from-being-added-to-world.patch b/patches/server/Prevent-empty-items-from-being-added-to-world.patch
similarity index 97%
rename from patches/unapplied/server/Prevent-empty-items-from-being-added-to-world.patch
rename to patches/server/Prevent-empty-items-from-being-added-to-world.patch
index be91ac371e..2769f4cf11 100644
--- a/patches/unapplied/server/Prevent-empty-items-from-being-added-to-world.patch
+++ b/patches/server/Prevent-empty-items-from-being-added-to-world.patch
@@ -10,7 +10,7 @@ diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/mai
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
 +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -0,0 +0,0 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -0,0 +0,0 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
              // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit
              return false;
          } else {
diff --git a/patches/unapplied/server/Prevent-entity-loading-causing-async-lookups.patch b/patches/server/Prevent-entity-loading-causing-async-lookups.patch
similarity index 97%
rename from patches/unapplied/server/Prevent-entity-loading-causing-async-lookups.patch
rename to patches/server/Prevent-entity-loading-causing-async-lookups.patch
index 0162c82269..cbca9ce751 100644
--- a/patches/unapplied/server/Prevent-entity-loading-causing-async-lookups.patch
+++ b/patches/server/Prevent-entity-loading-causing-async-lookups.patch
@@ -9,9 +9,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 SyncedDataHolder, Nameable, EntityAccess
+         ProfilerFiller gameprofilerfiller = Profiler.get();
  
-     public void baseTick() {
-         this.level().getProfiler().push("entityBaseTick");
+         gameprofilerfiller.push("entityBaseTick");
 +        if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Prevent entity loading causing async lookups
          this.inBlockState = null;
          if (this.isPassenger() && this.getVehicle().isRemoved()) {
diff --git a/patches/unapplied/server/Sanitize-sent-BlockEntity-NBT.patch b/patches/server/Sanitize-sent-BlockEntity-NBT.patch
similarity index 100%
rename from patches/unapplied/server/Sanitize-sent-BlockEntity-NBT.patch
rename to patches/server/Sanitize-sent-BlockEntity-NBT.patch
diff --git a/patches/unapplied/server/Send-block-entities-after-destroy-prediction.patch b/patches/server/Send-block-entities-after-destroy-prediction.patch
similarity index 98%
rename from patches/unapplied/server/Send-block-entities-after-destroy-prediction.patch
rename to patches/server/Send-block-entities-after-destroy-prediction.patch
index 5d5b686cdb..3ada12acb6 100644
--- a/patches/unapplied/server/Send-block-entities-after-destroy-prediction.patch
+++ b/patches/server/Send-block-entities-after-destroy-prediction.patch
@@ -68,7 +68,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +                this.player.gameMode.capturedBlockEntity = false;
 +                this.player.gameMode.captureSentBlockEntities = true;
 +                // Paper end - Send block entities after destroy prediction
-                 this.player.gameMode.handleBlockBreakAction(blockposition, packetplayinblockdig_enumplayerdigtype, packet.getDirection(), this.player.level().getMaxBuildHeight(), packet.getSequence());
+                 this.player.gameMode.handleBlockBreakAction(blockposition, packetplayinblockdig_enumplayerdigtype, packet.getDirection(), this.player.level().getMaxY(), packet.getSequence());
                  this.player.connection.ackBlockChangesUpTo(packet.getSequence());
 +                // Paper start - Send block entities after destroy prediction
 +                this.player.gameMode.captureSentBlockEntities = false;
diff --git a/patches/unapplied/server/Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/Throw-exception-on-world-create-while-being-ticked.patch
similarity index 95%
rename from patches/unapplied/server/Throw-exception-on-world-create-while-being-ticked.patch
rename to patches/server/Throw-exception-on-world-create-while-being-ticked.patch
index e2320aca56..2a787b332e 100644
--- a/patches/unapplied/server/Throw-exception-on-world-create-while-being-ticked.patch
+++ b/patches/server/Throw-exception-on-world-create-while-being-ticked.patch
@@ -21,7 +21,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 @@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
          this.getFunctions().tick();
          MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper
-         this.profiler.popPush("levels");
+         gameprofilerfiller.popPush("levels");
 -        Iterator iterator = this.getAllLevels().iterator();
 +        //Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down
  
@@ -37,12 +37,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
              ServerLevel worldserver = (ServerLevel) iterator.next();
              worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
 @@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
-             this.profiler.pop();
-             worldserver.explosionDensityCache.clear(); // Paper - Optimize explosions
+             gameprofilerfiller.pop();
+             gameprofilerfiller.pop();
          }
 +        this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
  
-         this.profiler.popPush("connection");
+         gameprofilerfiller.popPush("connection");
          MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
diff --git a/patches/unapplied/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
similarity index 100%
rename from patches/unapplied/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
rename to patches/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
diff --git a/patches/unapplied/server/Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/Warn-on-plugins-accessing-faraway-chunks.patch
similarity index 100%
rename from patches/unapplied/server/Warn-on-plugins-accessing-faraway-chunks.patch
rename to patches/server/Warn-on-plugins-accessing-faraway-chunks.patch
diff --git a/patches/unapplied/server/fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/fix-powder-snow-cauldrons-not-turning-to-water.patch
similarity index 69%
rename from patches/unapplied/server/fix-powder-snow-cauldrons-not-turning-to-water.patch
rename to patches/server/fix-powder-snow-cauldrons-not-turning-to-water.patch
index f8719af4f7..882568a19d 100644
--- a/patches/unapplied/server/fix-powder-snow-cauldrons-not-turning-to-water.patch
+++ b/patches/server/fix-powder-snow-cauldrons-not-turning-to-water.patch
@@ -11,22 +11,22 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java
 +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java
 @@ -0,0 +0,0 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock {
-         if (!world.isClientSide && entity.isOnFire() && this.isEntityInsideContent(state, pos, entity)) {
-             // CraftBukkit start
-             if (entity.mayInteract(world, pos)) {
--                if (!LayeredCauldronBlock.lowerFillLevel(state, world, pos, entity, CauldronLevelChangeEvent.ChangeReason.EXTINGUISH)) {
-+                if (!this.handleEntityOnFireInsideWithEvent(state, world, pos, entity)) { // Paper - fix powdered snow cauldron extinguishing entities
-                     return;
-                 }
-             }
+                 // CraftBukkit start - moved down
+                 // entity.clearFire();
+                 if (entity.mayInteract(worldserver, pos)) {
+-                    if (this.handleEntityOnFireInside(state, world, pos, entity)) {
++                    if (this.handleEntityOnFireInsideWithEvent(state, world, pos, entity)) { // Paper - fix powdered snow cauldron extinguishing entities
+                         entity.clearFire();
+                     }
+                     // CraftBukkit end
 @@ -0,0 +0,0 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock {
- 
      }
  
+     // CraftBukkit start
 +    @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper - fix powdered snow cauldron extinguishing entities; use #handleEntityOnFireInsideWithEvent
-     private void handleEntityOnFireInside(BlockState state, Level world, BlockPos pos) {
+     private boolean handleEntityOnFireInside(BlockState iblockdata, Level world, BlockPos blockposition, Entity entity) {
          if (this.precipitationType == Biome.Precipitation.SNOW) {
-             LayeredCauldronBlock.lowerFillLevel((BlockState) Blocks.WATER_CAULDRON.defaultBlockState().setValue(LayeredCauldronBlock.LEVEL, (Integer) state.getValue(LayeredCauldronBlock.LEVEL)), world, pos);
+             return LayeredCauldronBlock.lowerFillLevel((BlockState) Blocks.WATER_CAULDRON.defaultBlockState().setValue(LayeredCauldronBlock.LEVEL, (Integer) iblockdata.getValue(LayeredCauldronBlock.LEVEL)), world, blockposition, entity, CauldronLevelChangeEvent.ChangeReason.EXTINGUISH);
 @@ -0,0 +0,0 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock {
          }