From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Suisuroru Date: Thu, 20 Feb 2025 23:56:44 +0800 Subject: [PATCH] Leaves-Revert-raid-changes diff --git a/net/minecraft/world/effect/BadOmenMobEffect.java b/net/minecraft/world/effect/BadOmenMobEffect.java index 80f17f33f670018240c854df589cf90cdeab6e70..7976b9ae6688b9a07b2ad19d1af3670fe06a0b63 100644 --- a/net/minecraft/world/effect/BadOmenMobEffect.java +++ b/net/minecraft/world/effect/BadOmenMobEffect.java @@ -22,6 +22,11 @@ class BadOmenMobEffect extends MobEffect { && !serverPlayer.isSpectator() && level.getDifficulty() != Difficulty.PEACEFUL && level.isVillage(serverPlayer.blockPosition())) { + // Leaves start - Revert raid changes + if (me.earthme.luminol.config.modules.misc.RaidChangesConfig.trigger) { + return level.getRaids().createOrExtendRaid(serverPlayer, serverPlayer.blockPosition()) != null; + } + // Leaves end - Revert raid changes Raid raidAt = level.getRaidAt(serverPlayer.blockPosition()); 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 7c385baae81b9a987c0e1e4deb017884600331bc..c2afe945d6a9780ba5f8ac5d6f0b4b2d692fdd51 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 { currentRaid.removeFromRaid(this, false); } + + // Leaves start - Revert raid changes + if (this.level() instanceof ServerLevel serverLevel) { + if (me.earthme.luminol.config.modules.misc.RaidChangesConfig.effect && raid == null && serverLevel.getRaidAt(this.blockPosition()) == null) { + ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD); + net.minecraft.world.entity.player.Player entityhuman = null; + if (entity instanceof net.minecraft.world.entity.player.Player player) { + entityhuman = player; + } else if (entity instanceof net.minecraft.world.entity.animal.Wolf wolf) { + LivingEntity entityliving = wolf.getOwner(); + if (wolf.isTame() && entityliving instanceof net.minecraft.world.entity.player.Player player) { + entityhuman = player; + } + } + + if (entityhuman != null && !itemstack.isEmpty() && this.isCaptain()) { + net.minecraft.world.effect.MobEffectInstance mobeffect = entityhuman.getEffect(net.minecraft.world.effect.MobEffects.BAD_OMEN); + int i = 1; + + if (mobeffect != null) { + i += mobeffect.getAmplifier(); + entityhuman.removeEffectNoUpdate(net.minecraft.world.effect.MobEffects.BAD_OMEN); + } else { + --i; + } + + i = net.minecraft.util.Mth.clamp(i, 0, 4); + net.minecraft.world.effect.MobEffectInstance mobeffect1 = new net.minecraft.world.effect.MobEffectInstance(net.minecraft.world.effect.MobEffects.BAD_OMEN, 120000, i, false, false, true); + + if (!serverLevel.getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_DISABLE_RAIDS)) { + entityhuman.addEffect(mobeffect1, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.PATROL_CAPTAIN); // CraftBukkit + } + this.setPatrolLeader(false); + } + } + } + // Leaves end - Revert raid changes } super.die(cause);