diff --git a/leaves-server/unapplied/0041-Disable-distance-check-for-UseItemOnPacket.patch b/leaves-server/minecraft-patches/features/0041-Disable-distance-check-for-UseItemOnPacket.patch similarity index 88% rename from leaves-server/unapplied/0041-Disable-distance-check-for-UseItemOnPacket.patch rename to leaves-server/minecraft-patches/features/0041-Disable-distance-check-for-UseItemOnPacket.patch index c6748471..ab2b4f2a 100644 --- a/leaves-server/unapplied/0041-Disable-distance-check-for-UseItemOnPacket.patch +++ b/leaves-server/minecraft-patches/features/0041-Disable-distance-check-for-UseItemOnPacket.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable distance check for UseItemOnPacket diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 72e1265509a00376515e963499099c0765104ea2..878d80d0cb9fddeb7916a34d39c34119d65fbe00 100644 +index 54266a14a35cdbe22bad7b2dd0527576e5b91993..95137a187a63c8e482e6292abf2d00ebb50534e6 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1991,7 +1991,7 @@ public class ServerGamePacketListenerImpl +@@ -2026,7 +2026,7 @@ public class ServerGamePacketListenerImpl if (this.player.canInteractWithBlock(blockPos, 1.0)) { Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos)); double d = 1.0000001; diff --git a/leaves-server/unapplied/0042-No-feather-falling-trample.patch b/leaves-server/minecraft-patches/features/0042-No-feather-falling-trample.patch similarity index 100% rename from leaves-server/unapplied/0042-No-feather-falling-trample.patch rename to leaves-server/minecraft-patches/features/0042-No-feather-falling-trample.patch diff --git a/leaves-server/unapplied/0043-Disable-packet-limit.patch b/leaves-server/minecraft-patches/features/0043-Disable-packet-limit.patch similarity index 87% rename from leaves-server/unapplied/0043-Disable-packet-limit.patch rename to leaves-server/minecraft-patches/features/0043-Disable-packet-limit.patch index 3ebeac0e..0ed285ed 100644 --- a/leaves-server/unapplied/0043-Disable-packet-limit.patch +++ b/leaves-server/minecraft-patches/features/0043-Disable-packet-limit.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable packet limit diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java -index 364ddf9f25ef3cb97ba788c469fee9dd495b84a7..7af8b2cf9ccfeadac1cc60541da31ba6f4dc0edb 100644 +index c9840dfa4067973aafed7e7c7305182dfabe0a48..fd1e1bce897163e6a78213e9be6acb0f9d48f389 100644 --- a/net/minecraft/network/Connection.java +++ b/net/minecraft/network/Connection.java -@@ -243,8 +243,8 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -244,8 +244,8 @@ public class Connection extends SimpleChannelInboundHandler> { if (this.stopReadingPackets) { return; } @@ -20,19 +20,19 @@ index 364ddf9f25ef3cb97ba788c469fee9dd495b84a7..7af8b2cf9ccfeadac1cc60541da31ba6 synchronized (PACKET_LIMIT_LOCK) { if (this.allPacketCounts != null) { diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 878d80d0cb9fddeb7916a34d39c34119d65fbe00..2ed38800fb3e3a1f4fb04c781321c642e402a854 100644 +index 95137a187a63c8e482e6292abf2d00ebb50534e6..6e851f7f24f2426f44fcd24fca507e6ebb5a0198 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -780,7 +780,7 @@ public class ServerGamePacketListenerImpl +@@ -809,7 +809,7 @@ public class ServerGamePacketListenerImpl public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) { - // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async + // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); // Paper - AsyncTabCompleteEvent; run this async // CraftBukkit start - if (!this.tabSpamThrottler.isIncrementAndUnderThreshold() && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // Paper - configurable tab spam limits + if (!org.leavesmc.leaves.LeavesConfig.modify.disablePacketLimit && !this.tabSpamThrottler.isIncrementAndUnderThreshold() && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // Paper - configurable tab spam limits // Leaves - can disable this.disconnectAsync(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - Kick event cause // Paper - add proper async disconnect return; } -@@ -1955,6 +1955,7 @@ public class ServerGamePacketListenerImpl +@@ -1990,6 +1990,7 @@ public class ServerGamePacketListenerImpl private static int getSpamThreshold() { return io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.incomingPacketThreshold; } // Paper - Configurable threshold private boolean checkLimit(long timestamp) { @@ -40,7 +40,7 @@ index 878d80d0cb9fddeb7916a34d39c34119d65fbe00..2ed38800fb3e3a1f4fb04c781321c642 if (this.lastLimitedPacket != -1 && timestamp - this.lastLimitedPacket < getSpamThreshold() && this.limitedPackets++ >= 8) { // Paper - Configurable threshold; raise packet limit to 8 return false; } -@@ -2492,6 +2493,7 @@ public class ServerGamePacketListenerImpl +@@ -2524,6 +2525,7 @@ public class ServerGamePacketListenerImpl // Spigot start - spam exclusions private void detectRateSpam(String message) { @@ -48,7 +48,7 @@ index 878d80d0cb9fddeb7916a34d39c34119d65fbe00..2ed38800fb3e3a1f4fb04c781321c642 // CraftBukkit start - replaced with thread safe throttle if (org.spigotmc.SpigotConfig.enableSpamExclusions) { for (String exclude : org.spigotmc.SpigotConfig.spamExclusions) { -@@ -3280,7 +3282,7 @@ public class ServerGamePacketListenerImpl +@@ -3290,7 +3292,7 @@ public class ServerGamePacketListenerImpl @Override public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) { // Paper start - auto recipe limit diff --git a/leaves-server/unapplied/0044-Syncmatica-Protocol.patch b/leaves-server/minecraft-patches/features/0044-Syncmatica-Protocol.patch similarity index 82% rename from leaves-server/unapplied/0044-Syncmatica-Protocol.patch rename to leaves-server/minecraft-patches/features/0044-Syncmatica-Protocol.patch index f6dc636e..345ce9cf 100644 --- a/leaves-server/unapplied/0044-Syncmatica-Protocol.patch +++ b/leaves-server/minecraft-patches/features/0044-Syncmatica-Protocol.patch @@ -6,14 +6,15 @@ Subject: [PATCH] Syncmatica Protocol This patch is Powered by Syncmatica(https://github.com/End-Tech/syncmatica) diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2f4776fa065cb712afe9d8abc835c57777c963b7..f1372015cf5991ef80a07e7fcbd1fb9d65e9d74f 100644 +index 6e851f7f24f2426f44fcd24fca507e6ebb5a0198..2c8f0194c0a4d8a235371f5ffaead8bbf35738ea 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -319,8 +319,11 @@ public class ServerGamePacketListenerImpl +@@ -323,9 +323,12 @@ public class ServerGamePacketListenerImpl this.signedMessageDecoder = SignedMessageChain.Decoder.unsigned(player.getUUID(), server::enforceSecureProfile); this.chatMessageChain = new FutureChain(server.chatExecutor); // CraftBukkit - async chat this.tickEndEvent = new io.papermc.paper.event.packet.ClientTickEndEvent(player.getBukkitEntity()); // Paper - add client tick end event + this.exchangeTarget = new org.leavesmc.leaves.protocol.syncmatica.exchange.ExchangeTarget(this); // Leaves - Syncmatica Protocol + this.playerGameConnection = new io.papermc.paper.connection.PaperPlayerGameConnection(this); // Paper } + public final org.leavesmc.leaves.protocol.syncmatica.exchange.ExchangeTarget exchangeTarget; // Leaves - Syncmatica Protocol diff --git a/leaves-server/unapplied/0045-Shared-villager-discounts.patch b/leaves-server/minecraft-patches/features/0045-Shared-villager-discounts.patch similarity index 100% rename from leaves-server/unapplied/0045-Shared-villager-discounts.patch rename to leaves-server/minecraft-patches/features/0045-Shared-villager-discounts.patch diff --git a/leaves-server/unapplied/0046-Redstone-ignore-upwards-update.patch b/leaves-server/minecraft-patches/features/0046-Redstone-ignore-upwards-update.patch similarity index 100% rename from leaves-server/unapplied/0046-Redstone-ignore-upwards-update.patch rename to leaves-server/minecraft-patches/features/0046-Redstone-ignore-upwards-update.patch diff --git a/leaves-server/unapplied/0047-Disable-check-out-of-order-command.patch b/leaves-server/minecraft-patches/features/0047-Disable-check-out-of-order-command.patch similarity index 100% rename from leaves-server/unapplied/0047-Disable-check-out-of-order-command.patch rename to leaves-server/minecraft-patches/features/0047-Disable-check-out-of-order-command.patch diff --git a/leaves-server/unapplied/0048-Despawn-enderman-with-block.patch b/leaves-server/minecraft-patches/features/0048-Despawn-enderman-with-block.patch similarity index 84% rename from leaves-server/unapplied/0048-Despawn-enderman-with-block.patch rename to leaves-server/minecraft-patches/features/0048-Despawn-enderman-with-block.patch index 52f07387..3d107087 100644 --- a/leaves-server/unapplied/0048-Despawn-enderman-with-block.patch +++ b/leaves-server/minecraft-patches/features/0048-Despawn-enderman-with-block.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Despawn enderman with block diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java -index 41c8fc535e7f0bd61e23f48ac250f362807fa062..775466831746b914947cd018d8def4b8bf1d6f15 100644 +index 6760bfd91f59139922768db5e5d362c5e7e4e473..33d4025ac997f46b7bf129c4dd3ba457c6fc9da2 100644 --- a/net/minecraft/world/entity/monster/EnderMan.java +++ b/net/minecraft/world/entity/monster/EnderMan.java -@@ -452,7 +452,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -448,7 +448,7 @@ public class EnderMan extends Monster implements NeutralMob { @Override public boolean requiresCustomPersistence() { diff --git a/leaves-server/unapplied/0049-Optimized-dragon-respawn.patch b/leaves-server/minecraft-patches/features/0049-Optimized-dragon-respawn.patch similarity index 100% rename from leaves-server/unapplied/0049-Optimized-dragon-respawn.patch rename to leaves-server/minecraft-patches/features/0049-Optimized-dragon-respawn.patch diff --git a/leaves-server/unapplied/0050-Creative-fly-no-clip.patch b/leaves-server/minecraft-patches/features/0050-Creative-fly-no-clip.patch similarity index 92% rename from leaves-server/unapplied/0050-Creative-fly-no-clip.patch rename to leaves-server/minecraft-patches/features/0050-Creative-fly-no-clip.patch index c80e36b4..8e7efab8 100644 --- a/leaves-server/unapplied/0050-Creative-fly-no-clip.patch +++ b/leaves-server/minecraft-patches/features/0050-Creative-fly-no-clip.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Creative fly no clip diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index 2fe76bc1c26423ed5e39453ac1b27a2cc66b1f2e..f6e963d75fdcd951e5f5624f7d69cbbf6b8b480f 100644 +index 0b958bda5e3b9b203ab4e7f233ca459a69288522..28c7e2fb6a271b54f00cc4bcd5943a0fafa8be33 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java -@@ -277,8 +277,8 @@ public abstract class Player extends LivingEntity { +@@ -287,8 +287,8 @@ public abstract class Player extends LivingEntity { @Override public void tick() { @@ -19,7 +19,7 @@ index 2fe76bc1c26423ed5e39453ac1b27a2cc66b1f2e..f6e963d75fdcd951e5f5624f7d69cbbf this.setOnGround(false); } -@@ -471,7 +471,7 @@ public abstract class Player extends LivingEntity { +@@ -481,7 +481,7 @@ public abstract class Player extends LivingEntity { if (this.canPlayerFitWithinBlocksAndEntitiesWhen(Pose.SWIMMING)) { Pose desiredPose = this.getDesiredPose(); Pose pose; @@ -28,7 +28,7 @@ index 2fe76bc1c26423ed5e39453ac1b27a2cc66b1f2e..f6e963d75fdcd951e5f5624f7d69cbbf pose = desiredPose; } else if (this.canPlayerFitWithinBlocksAndEntitiesWhen(Pose.CROUCHING)) { pose = Pose.CROUCHING; -@@ -614,7 +614,7 @@ public abstract class Player extends LivingEntity { +@@ -624,7 +624,7 @@ public abstract class Player extends LivingEntity { } this.bob = this.bob + (f - this.bob) * 0.4F; @@ -37,7 +37,7 @@ index 2fe76bc1c26423ed5e39453ac1b27a2cc66b1f2e..f6e963d75fdcd951e5f5624f7d69cbbf AABB aabb; if (this.isPassenger() && !this.getVehicle().isRemoved()) { aabb = this.getBoundingBox().minmax(this.getVehicle().getBoundingBox()).inflate(1.0, 0.0, 1.0); -@@ -1931,6 +1931,26 @@ public abstract class Player extends LivingEntity { +@@ -1950,6 +1950,26 @@ public abstract class Player extends LivingEntity { return this.gameMode() == GameType.SPECTATOR; } @@ -65,7 +65,7 @@ index 2fe76bc1c26423ed5e39453ac1b27a2cc66b1f2e..f6e963d75fdcd951e5f5624f7d69cbbf public boolean canBeHitByProjectile() { return !this.isSpectator() && super.canBeHitByProjectile(); diff --git a/net/minecraft/world/item/BlockItem.java b/net/minecraft/world/item/BlockItem.java -index 0c67e5481a43bf7c02bb54a8ea1abca77d53a292..5cbd5d04de525c33715bc45826bd2ed446355505 100644 +index 0f12afbea724eefeaebf0b05474a64ec96759d62..17e35aa9efc55a52ad64f05e8fdc3c7fae3ef0c4 100644 --- a/net/minecraft/world/item/BlockItem.java +++ b/net/minecraft/world/item/BlockItem.java @@ -207,8 +207,9 @@ public class BlockItem extends Item { @@ -93,7 +93,7 @@ index 1f0e7c391d02b18e2c89700025713ec3d759f2ea..300ee12ca9584e53e9d72e3ebfd039be org.bukkit.event.block.BlockCanBuildEvent event = new org.bukkit.event.block.BlockCanBuildEvent(org.bukkit.craftbukkit.block.CraftBlock.at(context.getLevel(), clickedPos), player, org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(blockState), defaultReturn, org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(context.getHand())); // Paper - Expose hand in BlockCanBuildEvent diff --git a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java -index 5e58113b3401268e0432235dc10b2734dbbd8b71..1f7c2d06952febd7a5d4e216b6e22794239b9325 100644 +index a820ab9a2b6dc6b95d4de61aaaad4e79c521efe4..c1d1e28daa3b4d2a0bb359af08670f5d071e51ed 100644 --- a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java +++ b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java @@ -152,7 +152,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl @@ -106,10 +106,10 @@ index 5e58113b3401268e0432235dc10b2734dbbd8b71..1f7c2d06952febd7a5d4e216b6e22794 MoverType.SHULKER_BOX, new Vec3( diff --git a/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -index 8449545bd5278f5558567dd6b7c1522f63045f22..3d2770828d4fe1123b158e70bfe459d7cf16332a 100644 +index 0976aef81b950a062152094501372d00c20bb2b7..2841dd4896ee15d8d7ea1105d0f78b7fe41937fb 100644 --- a/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java +++ b/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -@@ -152,7 +152,7 @@ public class PistonMovingBlockEntity extends BlockEntity { +@@ -151,7 +151,7 @@ public class PistonMovingBlockEntity extends BlockEntity { d3 = movementDirection.getStepZ(); } @@ -118,7 +118,7 @@ index 8449545bd5278f5558567dd6b7c1522f63045f22..3d2770828d4fe1123b158e70bfe459d7 // Paper - EAR items stuck in slime pushed by a piston entity.activatedTick = Math.max(entity.activatedTick, net.minecraft.server.MinecraftServer.currentTick + 10); entity.activatedImmunityTick = Math.max(entity.activatedImmunityTick, net.minecraft.server.MinecraftServer.currentTick + 10); -@@ -188,6 +188,7 @@ public class PistonMovingBlockEntity extends BlockEntity { +@@ -187,6 +187,7 @@ public class PistonMovingBlockEntity extends BlockEntity { } private static void moveEntityByPiston(Direction noClipDirection, Entity entity, double progress, Direction direction) {