9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-19 14:59:32 +00:00

Skippable raid height check And fix self raid check

This commit is contained in:
violetc
2025-03-14 10:59:41 +08:00
parent ca3ddb3fe8
commit 57f825950b
4 changed files with 33 additions and 11 deletions

View File

@@ -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 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 --- a/net/minecraft/world/entity/raid/Raider.java
+++ b/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 { @@ -153,7 +153,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());
} }
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() {

View File

@@ -21,7 +21,7 @@ index 80f17f33f670018240c854df589cf90cdeab6e70..4c6ce6a4a730033802651b0c0052fc46
if (raidAt == null || raidAt.getRaidOmenLevel() < raidAt.getMaxRaidOmenLevel()) { if (raidAt == null || raidAt.getRaidOmenLevel() < raidAt.getMaxRaidOmenLevel()) {
serverPlayer.addEffect(new MobEffectInstance(MobEffects.RAID_OMEN, 600, amplifier)); 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 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 --- a/net/minecraft/world/entity/raid/Raider.java
+++ b/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 { @@ -125,6 +125,43 @@ public abstract class Raider extends PatrollingMonster {
@@ -31,7 +31,7 @@ index 72551960faaedbf43d1c65ad061f6d366028a3e9..494623f69693af2833104fb3ec48acf5
+ +
+ // Leaves start - Revert raid changes + // Leaves start - Revert raid changes
+ if (this.level() instanceof ServerLevel serverLevel) { + 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); + ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD);
+ net.minecraft.world.entity.player.Player entityhuman = null; + net.minecraft.world.entity.player.Player entityhuman = null;
+ if (entity instanceof net.minecraft.world.entity.player.Player player) { + if (entity instanceof net.minecraft.world.entity.player.Player player) {

View File

@@ -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;

View File

@@ -284,6 +284,9 @@ public final class LeavesConfig {
@GlobalConfig("give-bad-omen-when-kill-patrol-leader") @GlobalConfig("give-bad-omen-when-kill-patrol-leader")
public boolean giveBadOmenWhenKillPatrolLeader = false; public boolean giveBadOmenWhenKillPatrolLeader = false;
@GlobalConfig("skip-height-check")
public boolean skipHeightCheck = false;
} }
@GlobalConfig("allow-anvil-destroy-item-entities") @GlobalConfig("allow-anvil-destroy-item-entities")