diff --git a/leaves-server/unapplied/0011-Movable-Budding-Amethyst.patch b/leaves-server/minecraft-patches/features/0011-Movable-Budding-Amethyst.patch similarity index 100% rename from leaves-server/unapplied/0011-Movable-Budding-Amethyst.patch rename to leaves-server/minecraft-patches/features/0011-Movable-Budding-Amethyst.patch diff --git a/leaves-server/unapplied/0012-Spectator-dont-get-Advancement.patch b/leaves-server/minecraft-patches/features/0012-Spectator-dont-get-Advancement.patch similarity index 86% rename from leaves-server/unapplied/0012-Spectator-dont-get-Advancement.patch rename to leaves-server/minecraft-patches/features/0012-Spectator-dont-get-Advancement.patch index 364f917c..c7930a34 100644 --- a/leaves-server/unapplied/0012-Spectator-dont-get-Advancement.patch +++ b/leaves-server/minecraft-patches/features/0012-Spectator-dont-get-Advancement.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Spectator dont get Advancement diff --git a/net/minecraft/server/PlayerAdvancements.java b/net/minecraft/server/PlayerAdvancements.java -index f56a3fb47aa34c39cbd0e0e4e47d924da1488d7a..82fb9c61ce97c2e88a3252068bb28eb40bda0273 100644 +index 5c0e338dc1b0eb5724d10a73d6fc7975f9d2e5e5..a14401edec04964e6c596c16ba58643b835ef9c1 100644 --- a/net/minecraft/server/PlayerAdvancements.java +++ b/net/minecraft/server/PlayerAdvancements.java -@@ -168,6 +168,11 @@ public class PlayerAdvancements { +@@ -167,6 +167,11 @@ public class PlayerAdvancements { } public boolean award(AdvancementHolder advancement, String criterionKey) { diff --git a/leaves-server/unapplied/0013-Stick-can-change-ArmorStand-arm-status.patch b/leaves-server/minecraft-patches/features/0013-Stick-can-change-ArmorStand-arm-status.patch similarity index 87% rename from leaves-server/unapplied/0013-Stick-can-change-ArmorStand-arm-status.patch rename to leaves-server/minecraft-patches/features/0013-Stick-can-change-ArmorStand-arm-status.patch index 7f218e64..5fe1b057 100644 --- a/leaves-server/unapplied/0013-Stick-can-change-ArmorStand-arm-status.patch +++ b/leaves-server/minecraft-patches/features/0013-Stick-can-change-ArmorStand-arm-status.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stick can change ArmorStand arm status diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java -index 6f601a0a300bbf01f77d835576d15e25c8ba10b8..9ef422c34a70367f4dcee50b51a17143d14f131c 100644 +index 46369e554be8c72e6fc2e6d58374dbfc77d94879..d7725b5ca689e3d5b512baab04e113be77c0b2ee 100644 --- a/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -270,6 +270,13 @@ public class ArmorStand extends LivingEntity { +@@ -228,6 +228,13 @@ public class ArmorStand extends LivingEntity { return InteractionResult.SUCCESS_SERVER; } } else { diff --git a/leaves-server/unapplied/0014-Configurable-MC-59471.patch b/leaves-server/minecraft-patches/features/0014-Configurable-MC-59471.patch similarity index 100% rename from leaves-server/unapplied/0014-Configurable-MC-59471.patch rename to leaves-server/minecraft-patches/features/0014-Configurable-MC-59471.patch diff --git a/leaves-server/unapplied/0015-No-chat-sign.patch b/leaves-server/minecraft-patches/features/0015-No-chat-sign.patch similarity index 90% rename from leaves-server/unapplied/0015-No-chat-sign.patch rename to leaves-server/minecraft-patches/features/0015-No-chat-sign.patch index b1634205..d2e2cdfa 100644 --- a/leaves-server/unapplied/0015-No-chat-sign.patch +++ b/leaves-server/minecraft-patches/features/0015-No-chat-sign.patch @@ -28,10 +28,10 @@ index 47cb25aa9c37bd84d156288c397321009f1d9ae2..a94981882ac37ea215df3a71117d4a9b buffer.writeCollection(this.entries, (buffer1, entry) -> entry.write(buffer1)); } diff --git a/net/minecraft/network/FriendlyByteBuf.java b/net/minecraft/network/FriendlyByteBuf.java -index 7da7d645f83f351e8c964da01734f3074a877ca1..a9d37c540397b5e24721b3eba47e2d5b2577579f 100644 +index bef92cfa7eb86fbc6bc1b7d862eaca575eeeadec..32db9ef03b07b2cd88407d72621776b473e37411 100644 --- a/net/minecraft/network/FriendlyByteBuf.java +++ b/net/minecraft/network/FriendlyByteBuf.java -@@ -118,6 +118,14 @@ public class FriendlyByteBuf extends ByteBuf { +@@ -119,6 +119,14 @@ public class FriendlyByteBuf extends ByteBuf { public void writeJsonWithCodec(Codec codec, T value, int maxLength) { // Paper end - Adventure; add max length parameter DataResult dataResult = codec.encodeStart(JsonOps.INSTANCE, value); @@ -91,10 +91,10 @@ index 1df628ac0b414511aaed6e09d78f884c4170f730..b92081d70ffeec47c304e553ce1aea0a } } diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index e56f26fc504538d88bfa1954e929ee44fd31d657..e4946438d0c1fb9d2be616cb95768f890b32f286 100644 +index d0971352de582c3d3bda544f08578d0c4c3618eb..9112c203c7cf31b2ce1789ea97ab17ceaaba24b4 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -574,7 +574,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -572,7 +572,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface // Paper start - Add setting for proxy online mode status return properties.enforceSecureProfile && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() @@ -104,10 +104,10 @@ index e56f26fc504538d88bfa1954e929ee44fd31d657..e4946438d0c1fb9d2be616cb95768f89 } diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index ac5ef04fae4bc19bae9007c0ffd8f688434d22d7..649aeec6954d26cb67827e99c4b5b736f4f5bef4 100644 +index 00892ee4bbdb540017b6f7f4c288beeafb2bf6c0..a904bb17a31a8e33714f4bef02aef43db5a4ee21 100644 --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -@@ -294,10 +294,24 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -308,10 +308,24 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } public void send(Packet packet) { @@ -121,11 +121,11 @@ index ac5ef04fae4bc19bae9007c0ffd8f688434d22d7..649aeec6954d26cb67827e99c4b5b736 this.send(packet, null); } - public void send(Packet packet, @Nullable PacketSendListener listener) { + public void send(Packet packet, @Nullable ChannelFutureListener channelFutureListener) { + // Leaves start - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket + if (org.leavesmc.leaves.LeavesConfig.mics.noChatSign) { -+ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket && listener != null) { -+ listener = null; ++ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket && channelFutureListener != null) { ++ channelFutureListener = null; + } + } + // Leaves end - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket @@ -133,10 +133,10 @@ index ac5ef04fae4bc19bae9007c0ffd8f688434d22d7..649aeec6954d26cb67827e99c4b5b736 if (packet == null || this.processedDisconnect) { // Spigot return; diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index 0cf30681a9e3d68f3abe1d87b9fd4220083685a9..491d7b5a0cc099a3eb658e19cbe9d97b4419382c 100644 +index 580ab889bce7d0dff64e5e1ae92a646ac96e3168..11aa0c3379ec13d91770ba1e7dfb63e83eacadcd 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java -@@ -1339,7 +1339,7 @@ public abstract class PlayerList { +@@ -1315,7 +1315,7 @@ public abstract class PlayerList { } public boolean verifyChatTrusted(PlayerChatMessage message) { diff --git a/leaves-server/unapplied/0016-Dont-send-useless-entity-packets.patch b/leaves-server/minecraft-patches/features/0016-Dont-send-useless-entity-packets.patch similarity index 92% rename from leaves-server/unapplied/0016-Dont-send-useless-entity-packets.patch rename to leaves-server/minecraft-patches/features/0016-Dont-send-useless-entity-packets.patch index e042b851..5f580054 100644 --- a/leaves-server/unapplied/0016-Dont-send-useless-entity-packets.patch +++ b/leaves-server/minecraft-patches/features/0016-Dont-send-useless-entity-packets.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Dont send useless entity packets This patch is Powered by Purpur(https://github.com/PurpurMC/Purpur) diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java -index b118e91f1e0b5a8b8c0b2a4a32faabc5a34a5954..7681195587d361acf524d09ad3958e628aad73b6 100644 +index e96d4dee14c05f2fa329bfb1588ec795d4e3d730..f6b2d541fdfd11c6ff6033fbf4cd5153796634e3 100644 --- a/net/minecraft/server/level/ServerEntity.java +++ b/net/minecraft/server/level/ServerEntity.java -@@ -196,6 +196,11 @@ public class ServerEntity { +@@ -200,6 +200,11 @@ public class ServerEntity { } else if (flag) { packet = new ClientboundMoveEntityPacket.Rot(this.entity.getId(), b, b1, this.entity.onGround()); flag4 = true; @@ -21,7 +21,7 @@ index b118e91f1e0b5a8b8c0b2a4a32faabc5a34a5954..7681195587d361acf524d09ad3958e62 } } else { packet = new ClientboundMoveEntityPacket.PosRot(this.entity.getId(), (short)l, (short)l1, (short)l2, b, b1, this.entity.onGround()); -@@ -315,6 +320,21 @@ public class ServerEntity { +@@ -319,6 +324,21 @@ public class ServerEntity { this.positionCodec.setBase(this.entity.position()); } diff --git a/leaves-server/unapplied/0017-Optimize-suffocation.patch b/leaves-server/minecraft-patches/features/0017-Optimize-suffocation.patch similarity index 85% rename from leaves-server/unapplied/0017-Optimize-suffocation.patch rename to leaves-server/minecraft-patches/features/0017-Optimize-suffocation.patch index 16211a72..731a9247 100644 --- a/leaves-server/unapplied/0017-Optimize-suffocation.patch +++ b/leaves-server/minecraft-patches/features/0017-Optimize-suffocation.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize suffocation This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 5fc4d97ef421a37158b01864b035385bb7bf5f5f..b5f6a76c977bbb5dbb06fb3dd654f0b01aaba692 100644 +index 7a7971ec03fcdf72ecaa1e934d5ab3c62113c251..f0ff74a4f2831ead191bc12cb4873162a470c71f 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java -@@ -423,7 +423,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -437,7 +437,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin if (this.isAlive() && this.level() instanceof ServerLevel serverLevel1) { boolean flag = this instanceof Player; @@ -18,7 +18,7 @@ index 5fc4d97ef421a37158b01864b035385bb7bf5f5f..b5f6a76c977bbb5dbb06fb3dd654f0b0 this.hurtServer(serverLevel1, this.damageSources().inWall(), 1.0F); } else if (flag && !serverLevel1.getWorldBorder().isWithinBounds(this.getBoundingBox())) { double d = serverLevel1.getWorldBorder().getDistanceToBorder(this) + serverLevel1.getWorldBorder().getDamageSafeZone(); -@@ -1372,6 +1372,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1404,6 +1404,12 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin return this.getHealth() <= 0.0F; } diff --git a/leaves-server/unapplied/0018-Only-check-for-spooky-season-once-an-hour.patch b/leaves-server/minecraft-patches/features/0018-Only-check-for-spooky-season-once-an-hour.patch similarity index 92% rename from leaves-server/unapplied/0018-Only-check-for-spooky-season-once-an-hour.patch rename to leaves-server/minecraft-patches/features/0018-Only-check-for-spooky-season-once-an-hour.patch index 13e39bd9..fded8ce8 100644 --- a/leaves-server/unapplied/0018-Only-check-for-spooky-season-once-an-hour.patch +++ b/leaves-server/minecraft-patches/features/0018-Only-check-for-spooky-season-once-an-hour.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Only check for spooky season once an hour This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java -index eb9fb57440f498079182030a46034008d3f6b5e8..5f0ddf96e8ca1bb32c773f11232dedd1a981fde9 100644 +index 912b099a51269f92f250c7d6094ad41817749f93..af661d572d2bab00a392f858dd910c8be5e16e81 100644 --- a/net/minecraft/world/entity/ambient/Bat.java +++ b/net/minecraft/world/entity/ambient/Bat.java -@@ -244,12 +244,30 @@ public class Bat extends AmbientCreature { +@@ -245,12 +245,30 @@ public class Bat extends AmbientCreature { } } diff --git a/leaves-server/unapplied/0019-Config-to-disable-method-profiler.patch b/leaves-server/minecraft-patches/features/0019-Config-to-disable-method-profiler.patch similarity index 91% rename from leaves-server/unapplied/0019-Config-to-disable-method-profiler.patch rename to leaves-server/minecraft-patches/features/0019-Config-to-disable-method-profiler.patch index 3f69e9d2..ca91140b 100644 --- a/leaves-server/unapplied/0019-Config-to-disable-method-profiler.patch +++ b/leaves-server/minecraft-patches/features/0019-Config-to-disable-method-profiler.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Config to disable method profiler This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 940e6cb4b8f990e3c4ae8a5efc7adc56ffae28de..105c207b8db2c505f256f4104642af5929b50aa9 100644 +index 05966b2600bead23ab2ec19c95a3797eda7f3ef8..11728fa48bb144bbe933eb8fa2df22b52ac1b5a5 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -1247,7 +1247,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop