diff --git a/leaves-server/minecraft-patches/features/0054-Raider-die-skip-self-raid-check.patch b/leaves-server/minecraft-patches/features/0054-Raider-die-skip-self-raid-check.patch index 4e662eae..e94b7e95 100644 --- a/leaves-server/minecraft-patches/features/0054-Raider-die-skip-self-raid-check.patch +++ b/leaves-server/minecraft-patches/features/0054-Raider-die-skip-self-raid-check.patch @@ -5,15 +5,15 @@ 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 8270d76a753bfd26a4c8ef6610bee5c24ee59cfe..72551960faaedbf43d1c65ad061f6d366028a3e9 100644 +index 8270d76a753bfd26a4c8ef6610bee5c24ee59cfe..f58a20e7dd6b8dc3fc431d4aba9f91a7c25f2c33 100644 --- a/net/minecraft/world/entity/raid/Raider.java +++ b/net/minecraft/world/entity/raid/Raider.java -@@ -115,7 +115,7 @@ public abstract class Raider extends PatrollingMonster { - Entity entity = cause.getEntity(); - Raid currentRaid = this.getCurrentRaid(); - if (currentRaid != null) { -- if (this.isPatrolLeader()) { -+ if (!org.leavesmc.leaves.LeavesConfig.modify.skipSelfRaidCheck && this.isPatrolLeader()) { // Leaves - skip self raid check - currentRaid.removeLeader(this.getWave()); - } +@@ -153,7 +153,7 @@ public abstract class Raider extends PatrollingMonster { + } + public boolean hasRaid() { +- return this.level() instanceof ServerLevel serverLevel && (this.getCurrentRaid() != null || serverLevel.getRaidAt(this.blockPosition()) != null); ++ return !org.leavesmc.leaves.LeavesConfig.modify.skipSelfRaidCheck && (this.level() instanceof ServerLevel serverLevel && (this.getCurrentRaid() != null || serverLevel.getRaidAt(this.blockPosition()) != null)); // Leaves - skip self raid check + } + + public boolean hasActiveRaid() { diff --git a/leaves-server/minecraft-patches/features/0108-Revert-raid-changes.patch b/leaves-server/minecraft-patches/features/0108-Revert-raid-changes.patch index 6117a3b7..c555335a 100644 --- a/leaves-server/minecraft-patches/features/0108-Revert-raid-changes.patch +++ b/leaves-server/minecraft-patches/features/0108-Revert-raid-changes.patch @@ -21,7 +21,7 @@ index 80f17f33f670018240c854df589cf90cdeab6e70..4c6ce6a4a730033802651b0c0052fc46 if (raidAt == null || raidAt.getRaidOmenLevel() < raidAt.getMaxRaidOmenLevel()) { serverPlayer.addEffect(new MobEffectInstance(MobEffects.RAID_OMEN, 600, amplifier)); diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java -index 72551960faaedbf43d1c65ad061f6d366028a3e9..494623f69693af2833104fb3ec48acf5c31bedb0 100644 +index f58a20e7dd6b8dc3fc431d4aba9f91a7c25f2c33..ce692698260d4751b13d5b26f7d9403c72b413c6 100644 --- a/net/minecraft/world/entity/raid/Raider.java +++ b/net/minecraft/world/entity/raid/Raider.java @@ -125,6 +125,43 @@ public abstract class Raider extends PatrollingMonster { @@ -31,7 +31,7 @@ index 72551960faaedbf43d1c65ad061f6d366028a3e9..494623f69693af2833104fb3ec48acf5 + + // Leaves start - Revert raid changes + if (this.level() instanceof ServerLevel serverLevel) { -+ if (org.leavesmc.leaves.LeavesConfig.modify.oldMC.raid.giveBadOmenWhenKillPatrolLeader && raid == null && serverLevel.getRaidAt(this.blockPosition()) == null) { ++ if (org.leavesmc.leaves.LeavesConfig.modify.oldMC.raid.giveBadOmenWhenKillPatrolLeader && !this.hasRaid()) { + ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD); + net.minecraft.world.entity.player.Player entityhuman = null; + if (entity instanceof net.minecraft.world.entity.player.Player player) { diff --git a/leaves-server/minecraft-patches/features/0116-Skippable-raid-height-check.patch b/leaves-server/minecraft-patches/features/0116-Skippable-raid-height-check.patch new file mode 100644 index 00000000..a10e3fb5 --- /dev/null +++ b/leaves-server/minecraft-patches/features/0116-Skippable-raid-height-check.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: violetc <58360096+s-yh-china@users.noreply.github.com> +Date: Fri, 14 Mar 2025 10:55:57 +0800 +Subject: [PATCH] Skippable raid height check + + +diff --git a/net/minecraft/world/entity/raid/Raid.java b/net/minecraft/world/entity/raid/Raid.java +index 41b0db439b425b052bd1469daa6620a435ca852b..f14cdeb3d63b5b8e5bd0074aa245f1b5bd7ef0d3 100644 +--- a/net/minecraft/world/entity/raid/Raid.java ++++ b/net/minecraft/world/entity/raid/Raid.java +@@ -660,7 +660,7 @@ public class Raid { + int i2 = this.center.getX() + Mth.floor(Mth.cos(f2) * 32.0F * f) + this.level.random.nextInt(3) * Mth.floor(f); + int i3 = this.center.getZ() + Mth.floor(Mth.sin(f2) * 32.0F * f) + this.level.random.nextInt(3) * Mth.floor(f); + int height = this.level.getHeight(Heightmap.Types.WORLD_SURFACE, i2, i3); +- if (Mth.abs(height - this.center.getY()) <= 96) { ++ if (org.leavesmc.leaves.LeavesConfig.modify.oldMC.raid.skipHeightCheck || Mth.abs(height - this.center.getY()) <= 96) { // Leaves - skippable + mutableBlockPos.set(i2, height, i3); + if (!this.level.isVillage(mutableBlockPos) || i <= 7) { + int i4 = 10; 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 98fb0bca..83636502 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java @@ -284,6 +284,9 @@ public final class LeavesConfig { @GlobalConfig("give-bad-omen-when-kill-patrol-leader") public boolean giveBadOmenWhenKillPatrolLeader = false; + + @GlobalConfig("skip-height-check") + public boolean skipHeightCheck = false; } @GlobalConfig("allow-anvil-destroy-item-entities")