diff --git a/leaves-server/minecraft-patches/features/0008-Make-shears-in-dispenser-can-unlimited-use.patch b/leaves-server/minecraft-patches/features/0008-Make-shears-in-dispenser-can-unlimited-use.patch index d6405a52..571124f7 100644 --- a/leaves-server/minecraft-patches/features/0008-Make-shears-in-dispenser-can-unlimited-use.patch +++ b/leaves-server/minecraft-patches/features/0008-Make-shears-in-dispenser-can-unlimited-use.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Make shears in dispenser can unlimited use diff --git a/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java -index c1bd6d91cf9828ccc7275efe0f5c959c0f457c13..34eef95855032655a97f246cc56eb3006eebae19 100644 +index c1bd6d91cf9828ccc7275efe0f5c959c0f457c13..310e4bd5bd0c447adc70cff6d414f88be1966d04 100644 --- a/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java +++ b/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java -@@ -44,7 +44,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior { - if (!serverLevel.isClientSide()) { +@@ -45,7 +45,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior { BlockPos blockPos = blockSource.pos().relative(blockSource.state().getValue(DispenserBlock.FACING)); this.setSuccess(tryShearBeehive(serverLevel, blockPos) || tryShearLivingEntity(serverLevel, blockPos, item, bukkitBlock, craftItem)); // CraftBukkit -- if (this.isSuccess()) { -+ if (this.isSuccess() && !org.leavesmc.leaves.LeavesConfig.modify.oldMC.shearsInDispenserCanZeroAmount) { // Leaves - Make shears in dispenser can unlimited use - item.hurtAndBreak(1, serverLevel, null, item1 -> {}); + if (this.isSuccess()) { +- item.hurtAndBreak(1, serverLevel, null, item1 -> {}); ++ item.hurtAndBreak(1, serverLevel, null, item1 -> { if (org.leavesmc.leaves.LeavesConfig.modify.oldMC.shearsInDispenserCanZeroAmount) item.grow(1); }); // Leaves - Make shears in dispenser can unlimited use } } + diff --git a/leaves-server/minecraft-patches/features/0131-Configurable-item-damage-check.patch b/leaves-server/minecraft-patches/features/0131-Configurable-item-damage-check.patch new file mode 100644 index 00000000..eac44ad4 --- /dev/null +++ b/leaves-server/minecraft-patches/features/0131-Configurable-item-damage-check.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: violetc <58360096+s-yh-china@users.noreply.github.com> +Date: Tue, 1 Jul 2025 00:19:23 +0800 +Subject: [PATCH] Configurable item damage check + + +diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java +index 649d17dcd7856e3b1344192d8ea4b2e9f73fc03b..cd3fbccad765a37f034977e44896fbd73e308b91 100644 +--- a/net/minecraft/world/item/ItemStack.java ++++ b/net/minecraft/world/item/ItemStack.java +@@ -621,11 +621,11 @@ public final class ItemStack implements DataComponentHolder { + } + + public int getDamageValue() { +- return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage()); ++ return org.leavesmc.leaves.LeavesConfig.modify.oldMC.disableItemDamageCheck ? this.getOrDefault(DataComponents.DAMAGE, 0) : Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage()); // Leaves - disable check + } + + public void setDamageValue(int damage) { +- this.set(DataComponents.DAMAGE, Mth.clamp(damage, 0, this.getMaxDamage())); ++ this.set(DataComponents.DAMAGE, org.leavesmc.leaves.LeavesConfig.modify.oldMC.disableItemDamageCheck ? damage : Mth.clamp(damage, 0, this.getMaxDamage())); // Leaves - disable check + } + + public int getMaxDamage() { diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java index 3613da69..8f7038af 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java @@ -348,6 +348,9 @@ public final class LeavesConfig { } } } + + @GlobalConfig("disable-item-damage-check") + public boolean disableItemDamageCheck = false; } public ElytraAeronauticsConfig elytraAeronautics = new ElytraAeronauticsConfig();