diff --git a/leaves-server/unapplied/0051-Shave-snow-layers.patch b/leaves-server/minecraft-patches/features/0051-Shave-snow-layers.patch similarity index 100% rename from leaves-server/unapplied/0051-Shave-snow-layers.patch rename to leaves-server/minecraft-patches/features/0051-Shave-snow-layers.patch diff --git a/leaves-server/unapplied/0052-Elytra-aeronautics-no-chunk-load.patch b/leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch similarity index 84% rename from leaves-server/unapplied/0052-Elytra-aeronautics-no-chunk-load.patch rename to leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch index 06e779e8..93c7ea01 100644 --- a/leaves-server/unapplied/0052-Elytra-aeronautics-no-chunk-load.patch +++ b/leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elytra aeronautics no chunk load diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java -index 4785f9d6c53e18419a3df4a1be9c8a4f9d8cadfb..711bd09283c57e5cbe3b04d6950ecf1308fcf09c 100644 +index 019886669966c69936ae6591598c97a8afbfd3db..b6fb1f2ba8622d9d319210ea7cf0a984349444e6 100644 --- a/net/minecraft/server/level/ChunkMap.java +++ b/net/minecraft/server/level/ChunkMap.java @@ -854,7 +854,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -27,10 +27,10 @@ index 4785f9d6c53e18419a3df4a1be9c8a4f9d8cadfb..711bd09283c57e5cbe3b04d6950ecf13 SectionPos lastSectionPos = player.getLastSectionPos(); diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 325e3948e5bdfddfe217c9972208582e83f2c4cb..68490d8dc26c2d5f4999361fd7ad72a83581f48f 100644 +index ed05aaa76e1e34ca82fcc7cfb73f371a11600eee..4a34e43d5471bb12ef2535a1a9246376310c56f1 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java -@@ -830,6 +830,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -834,6 +834,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe } } ); @@ -41,10 +41,10 @@ index 325e3948e5bdfddfe217c9972208582e83f2c4cb..68490d8dc26c2d5f4999361fd7ad72a8 this.tickBlockEntities(); } diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 448c77f5002276eab680a96b518e8a7234806f80..655ca2ead22addbb458b89e12cb2be1d269e4f5e 100644 +index 2c8f0194c0a4d8a235371f5ffaead8bbf35738ea..aae9a058c7049fdec4934ad3280e62bdbe2a8453 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -541,7 +541,7 @@ public class ServerGamePacketListenerImpl +@@ -570,7 +570,7 @@ public class ServerGamePacketListenerImpl speed *= 2f; // TODO: Get the speed of the vehicle instead of the player // Paper start - Prevent moving into unloaded chunks @@ -53,19 +53,19 @@ index 448c77f5002276eab680a96b518e8a7234806f80..655ca2ead22addbb458b89e12cb2be1d !serverLevel.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position()))) || !serverLevel.areChunksLoadedForMove(rootVehicle.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(rootVehicle.position()))) )) { -@@ -1549,6 +1549,7 @@ public class ServerGamePacketListenerImpl - teleportBack = this.hasNewCollision(serverLevel, this.player, boundingBox, newBox); +@@ -1585,6 +1585,7 @@ public class ServerGamePacketListenerImpl + allowMovement = !this.hasNewCollision(serverLevel, this.player, boundingBox, newBox); } // else: no collision at all detected, why do we care? } + teleportBack = teleportBack && !player.elytraAeronauticsNoChunk; // Leaves - Elytra aeronautics // Paper end - optimise out extra getCubes - if (teleportBack) { + if (!allowMovement) { io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK, diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index f983ea2bb9d089bd4dfd81a482fd4810c6b8ebd7..0c1a50d293638c319b34f757c0ba41d31a1538ac 100644 +index 2a87494c2dcfc9e3d4641bc2dd9ee97ed15bdd20..0484649d8835e16b71f9ba3e0da16198fa94cb73 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -1092,7 +1092,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1118,7 +1118,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return; } } @@ -80,7 +80,7 @@ index f983ea2bb9d089bd4dfd81a482fd4810c6b8ebd7..0c1a50d293638c319b34f757c0ba41d3 ProfilerFiller profilerFiller = Profiler.get(); profilerFiller.push("move"); if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7) { -@@ -2057,6 +2063,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2131,6 +2137,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.yo = y; this.zo = d1; this.setPos(d, y, d1); @@ -89,10 +89,10 @@ index f983ea2bb9d089bd4dfd81a482fd4810c6b8ebd7..0c1a50d293638c319b34f757c0ba41d3 } diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 6893ca36cd4ae9a62fecedb1167cc6cf797a7f8f..a95fec1506af042bd3d4424e93aa3f4de9627487 100644 +index 54c881d976a8137260146006a389d2feb9d23e28..c25cdcebfdd2697da927d55420ab9f02bd4c792a 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java -@@ -3276,6 +3276,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3328,6 +3328,11 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin this.fallFlyTicks++; } else { this.fallFlyTicks = 0; @@ -105,10 +105,10 @@ index 6893ca36cd4ae9a62fecedb1167cc6cf797a7f8f..a95fec1506af042bd3d4424e93aa3f4d if (this.isSleeping()) { diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index f6e963d75fdcd951e5f5624f7d69cbbf6b8b480f..ee8c0d0edbb296106a128c48f4186ba3a5bf9df8 100644 +index 28c7e2fb6a271b54f00cc4bcd5943a0fafa8be33..7a8572d7fd7201cf5ec63c933139403c39be8013 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java -@@ -210,6 +210,7 @@ public abstract class Player extends LivingEntity { +@@ -219,6 +219,7 @@ public abstract class Player extends LivingEntity { private int currentImpulseContextResetGraceTime = 0; public boolean affectsSpawning = true; // Paper - Affects Spawning API public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage @@ -117,11 +117,11 @@ index f6e963d75fdcd951e5f5624f7d69cbbf6b8b480f..ee8c0d0edbb296106a128c48f4186ba3 // CraftBukkit start public boolean fauxSleeping; diff --git a/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/net/minecraft/world/entity/projectile/FireworkRocketEntity.java -index e0e193078e550225e163149638bf9e053c0531f8..484f1c5eba3776eff86438ba02607e60c7083b3b 100644 +index d8dc196ef92e97f831cf97cd1536a46f81f9d5d1..92da11f86a95ff635277cbfcea73c48731080953 100644 --- a/net/minecraft/world/entity/projectile/FireworkRocketEntity.java +++ b/net/minecraft/world/entity/projectile/FireworkRocketEntity.java -@@ -328,7 +328,7 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { - this.spawningEntity = compound.read("SpawningEntity", net.minecraft.core.UUIDUtil.CODEC).orElse(null); // Paper +@@ -324,7 +324,7 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { + this.spawningEntity = input.read("SpawningEntity", net.minecraft.core.UUIDUtil.CODEC).orElse(null); // Paper } - private List getExplosions() { @@ -130,10 +130,10 @@ index e0e193078e550225e163149638bf9e053c0531f8..484f1c5eba3776eff86438ba02607e60 Fireworks fireworks = itemStack.get(DataComponents.FIREWORKS); return fireworks != null ? fireworks.explosions() : List.of(); diff --git a/net/minecraft/world/item/FireworkRocketItem.java b/net/minecraft/world/item/FireworkRocketItem.java -index 18d63d2da49451a2d5e1da7bf0c00e05e2f192bc..6c78a59b6518799c9b199c96cc4592fb48229e9a 100644 +index 83cfe63b0245f79d0873477ab3aae75f690ecb68..c3ae57d515ca1879c5f278097435b7308436c579 100644 --- a/net/minecraft/world/item/FireworkRocketItem.java +++ b/net/minecraft/world/item/FireworkRocketItem.java -@@ -57,6 +57,24 @@ public class FireworkRocketItem extends Item implements ProjectileItem { +@@ -64,6 +64,24 @@ public class FireworkRocketItem extends Item implements ProjectileItem { if (player.isFallFlying()) { ItemStack itemInHand = player.getItemInHand(hand); if (level instanceof ServerLevel serverLevel) { diff --git a/leaves-server/unapplied/0053-Cache-ignite-odds.patch b/leaves-server/minecraft-patches/features/0053-Cache-ignite-odds.patch similarity index 100% rename from leaves-server/unapplied/0053-Cache-ignite-odds.patch rename to leaves-server/minecraft-patches/features/0053-Cache-ignite-odds.patch diff --git a/leaves-server/unapplied/0054-Lava-riptide.patch b/leaves-server/minecraft-patches/features/0054-Lava-riptide.patch similarity index 100% rename from leaves-server/unapplied/0054-Lava-riptide.patch rename to leaves-server/minecraft-patches/features/0054-Lava-riptide.patch diff --git a/leaves-server/unapplied/0055-No-block-update-command.patch b/leaves-server/minecraft-patches/features/0055-No-block-update-command.patch similarity index 97% rename from leaves-server/unapplied/0055-No-block-update-command.patch rename to leaves-server/minecraft-patches/features/0055-No-block-update-command.patch index a96f937e..601f6272 100644 --- a/leaves-server/unapplied/0055-No-block-update-command.patch +++ b/leaves-server/minecraft-patches/features/0055-No-block-update-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] No block update command diff --git a/net/minecraft/server/level/ServerPlayerGameMode.java b/net/minecraft/server/level/ServerPlayerGameMode.java -index 5e54d6de0430cd137fbe13ca8f17dc487ce52ff3..a68ca4ccec97b9fc6f9a6ae698722842cb6bf42d 100644 +index 5d4eb61af0b0f39a5d4c37f4a303fa24b3a2936d..48bb795216ca3fb301813080de403a048bbfa98c 100644 --- a/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/net/minecraft/server/level/ServerPlayerGameMode.java @@ -381,7 +381,7 @@ public class ServerPlayerGameMode { @@ -18,7 +18,7 @@ index 5e54d6de0430cd137fbe13ca8f17dc487ce52ff3..a68ca4ccec97b9fc6f9a6ae698722842 if (flag) { block.destroy(this.level, pos, blockState1); diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java -index 7c13e7b7a547150642c4a4bddf5e8dee1d580984..ac4996dda7bcf5f20391f45e3f703b21557a1669 100644 +index ef8a072838558caab19e8a85f4b59cac570c2635..590252ca203124f0b720a73f174c92fbe49bc685 100644 --- a/net/minecraft/world/level/Level.java +++ b/net/minecraft/world/level/Level.java @@ -1089,6 +1089,11 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl diff --git a/leaves-server/unapplied/0056-Raider-die-skip-self-raid-check.patch b/leaves-server/minecraft-patches/features/0056-Raider-die-skip-self-raid-check.patch similarity index 85% rename from leaves-server/unapplied/0056-Raider-die-skip-self-raid-check.patch rename to leaves-server/minecraft-patches/features/0056-Raider-die-skip-self-raid-check.patch index 5a77c777..839e84f6 100644 --- a/leaves-server/unapplied/0056-Raider-die-skip-self-raid-check.patch +++ b/leaves-server/minecraft-patches/features/0056-Raider-die-skip-self-raid-check.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Raider die skip self raid check diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java -index e81ae747fe95c22321fc69791a6509d601826fd6..39a6a4579931d7edb7ab8c072d62cfc9b02791c8 100644 +index a495789b2d21fa9a24d5dca4ecfa196ddce49466..7b697f1dfe8131296ef55cd88a8b9d7cd884eb44 100644 --- a/net/minecraft/world/entity/raid/Raider.java +++ b/net/minecraft/world/entity/raid/Raider.java -@@ -155,7 +155,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -156,7 +156,7 @@ public abstract class Raider extends PatrollingMonster { } public boolean hasRaid() { diff --git a/leaves-server/unapplied/0057-Container-open-passthrough.patch b/leaves-server/minecraft-patches/features/0057-Container-open-passthrough.patch similarity index 87% rename from leaves-server/unapplied/0057-Container-open-passthrough.patch rename to leaves-server/minecraft-patches/features/0057-Container-open-passthrough.patch index 6befec05..ca4404f6 100644 --- a/leaves-server/unapplied/0057-Container-open-passthrough.patch +++ b/leaves-server/minecraft-patches/features/0057-Container-open-passthrough.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Container open passthrough diff --git a/net/minecraft/world/entity/decoration/ItemFrame.java b/net/minecraft/world/entity/decoration/ItemFrame.java -index f9a97000b75db7999b1cbe1f72d680d4d7b803b7..91164be32436c003f2456d4510466779e1b576d8 100644 +index 90fd3ca5ecd29befa9237222e9f86a8a79a011e4..96524408ceae907d92f7554b1084ee1519d7b572 100644 --- a/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/net/minecraft/world/entity/decoration/ItemFrame.java -@@ -408,6 +408,20 @@ public class ItemFrame extends HangingEntity { +@@ -412,6 +412,20 @@ public class ItemFrame extends HangingEntity { return InteractionResult.PASS; } } else { @@ -30,10 +30,10 @@ index f9a97000b75db7999b1cbe1f72d680d4d7b803b7..91164be32436c003f2456d4510466779 io.papermc.paper.event.player.PlayerItemFrameChangeEvent event = new io.papermc.paper.event.player.PlayerItemFrameChangeEvent((org.bukkit.entity.Player) player.getBukkitEntity(), (org.bukkit.entity.ItemFrame) this.getBukkitEntity(), this.getItem().asBukkitCopy(), io.papermc.paper.event.player.PlayerItemFrameChangeEvent.ItemFrameChangeAction.ROTATE); if (!event.callEvent()) { diff --git a/net/minecraft/world/level/block/SignBlock.java b/net/minecraft/world/level/block/SignBlock.java -index a06896de4401f184e8c5cc8bad829e6412eaff22..00067809380fb3cff1dd54876c28c7a8d5b0aaee 100644 +index a2c6b0f85535b286c5649352f49e448ad587655c..3d62414778f8e18aebfa67817a86f188cb90c614 100644 --- a/net/minecraft/world/level/block/SignBlock.java +++ b/net/minecraft/world/level/block/SignBlock.java -@@ -105,6 +105,18 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo +@@ -108,6 +108,18 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo } else { return InteractionResult.TRY_WITH_EMPTY_HAND; } @@ -53,9 +53,9 @@ index a06896de4401f184e8c5cc8bad829e6412eaff22..00067809380fb3cff1dd54876c28c7a8 return InteractionResult.TRY_WITH_EMPTY_HAND; } @@ -130,6 +142,25 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo - return InteractionResult.SUCCESS_SERVER; - } else if (flag) { - return InteractionResult.SUCCESS_SERVER; + return InteractionResult.SUCCESS_SERVER; + } else if (flag) { + return InteractionResult.SUCCESS_SERVER; + // Leaves start - signContainerPassthrough + } else if (org.leavesmc.leaves.LeavesConfig.modify.containerPassthrough) { + if (player.isShiftKeyDown()) { @@ -75,6 +75,6 @@ index a06896de4401f184e8c5cc8bad829e6412eaff22..00067809380fb3cff1dd54876c28c7a8 + } + return InteractionResult.PASS; + // Leaves end - signContainerPassthrough - } else if (!this.otherPlayerIsEditingSign(player, signBlockEntity) - && player.mayBuild() - && this.hasEditableText(player, signBlockEntity, isFacingFrontText)) { + } else if (!this.otherPlayerIsEditingSign(player, signBlockEntity) + && player.mayBuild() + && this.hasEditableText(player, signBlockEntity, isFacingFrontText)) { diff --git a/leaves-server/unapplied/0058-Dont-respond-ping-before-start-fully.patch b/leaves-server/minecraft-patches/features/0058-Dont-respond-ping-before-start-fully.patch similarity index 100% rename from leaves-server/unapplied/0058-Dont-respond-ping-before-start-fully.patch rename to leaves-server/minecraft-patches/features/0058-Dont-respond-ping-before-start-fully.patch diff --git a/leaves-server/unapplied/0059-Faster-chunk-serialization.patch b/leaves-server/minecraft-patches/features/0059-Faster-chunk-serialization.patch similarity index 97% rename from leaves-server/unapplied/0059-Faster-chunk-serialization.patch rename to leaves-server/minecraft-patches/features/0059-Faster-chunk-serialization.patch index 1f0517be..4494dec8 100644 --- a/leaves-server/unapplied/0059-Faster-chunk-serialization.patch +++ b/leaves-server/minecraft-patches/features/0059-Faster-chunk-serialization.patch @@ -92,10 +92,10 @@ index c723606fa0be811e580ba47de8c9c575583cc930..c768443c8c6a4b05018bbc70d54b6f41 int onResize(int bits, T objectAdded); } diff --git a/net/minecraft/world/level/chunk/PalettedContainer.java b/net/minecraft/world/level/chunk/PalettedContainer.java -index 7da7ce0fd19896593e63edc88b492c02f926bba0..0f89bdb35fced1b9e674959ca510d2da9d4d4c5c 100644 +index a251ba67644cd02a0b00d7c8b0e2c64aa5e26291..c77426409e35530df106ade1c8080b9ab6d539c7 100644 --- a/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -25,6 +25,24 @@ import net.minecraft.util.ThreadingDetector; +@@ -24,6 +24,24 @@ import net.minecraft.util.ThreadingDetector; import net.minecraft.util.ZeroBitStorage; public class PalettedContainer implements PaletteResize, PalettedContainerRO { @@ -120,7 +120,7 @@ index 7da7ce0fd19896593e63edc88b492c02f926bba0..0f89bdb35fced1b9e674959ca510d2da private static final int MIN_PALETTE_BITS = 0; private final PaletteResize dummyPaletteResize = (bits, objectAdded) -> 0; public final IdMap registry; -@@ -344,28 +362,76 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -343,28 +361,76 @@ public class PalettedContainer implements PaletteResize, PalettedContainer public synchronized PalettedContainerRO.PackedData pack(IdMap registry, PalettedContainer.Strategy strategy) { // Paper - synchronize this.acquire(); @@ -217,7 +217,7 @@ index 7da7ce0fd19896593e63edc88b492c02f926bba0..0f89bdb35fced1b9e674959ca510d2da } private static void swapPalette(int[] bits, IntUnaryOperator operator) { -@@ -405,13 +471,47 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -404,13 +470,47 @@ public class PalettedContainer implements PaletteResize, PalettedContainer @Override public void count(PalettedContainer.CountConsumer countConsumer) { diff --git a/leaves-server/unapplied/0060-Skip-secondary-POI-sensor-if-absent.patch b/leaves-server/minecraft-patches/features/0060-Skip-secondary-POI-sensor-if-absent.patch similarity index 100% rename from leaves-server/unapplied/0060-Skip-secondary-POI-sensor-if-absent.patch rename to leaves-server/minecraft-patches/features/0060-Skip-secondary-POI-sensor-if-absent.patch