From cc562556a93b6468ae3108f29baeaca43f6c6dd2 Mon Sep 17 00:00:00 2001 From: patience Date: Tue, 10 Feb 2026 15:07:50 +0000 Subject: [PATCH] Warden applies effect after damage --- .../patience/mc_rebalance/mixin/WardenRework.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/WardenRework.java b/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/WardenRework.java index 70c4a9b..a522f97 100644 --- a/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/WardenRework.java +++ b/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/WardenRework.java @@ -2,8 +2,11 @@ package xyz.nearmisses.patience.mc_rebalance.mixin; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.entity.monster.warden.Warden; +import net.minecraft.world.level.Level; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -12,11 +15,17 @@ import xyz.nearmisses.patience.mc_rebalance.ModEffects; // Wardens - something you shouldn't fight - armour is broken on hit @Mixin(Warden.class) -public class WardenRework { - @Inject(method = "doHurtTarget", at = @At("HEAD")) +public class WardenRework extends Monster { + protected WardenRework(EntityType entityType, Level level) { + super(entityType, level); + } + + @Inject(method = "doHurtTarget", at = @At("RETURN"), cancellable = true) private void doHurtTarget(Entity entity, CallbackInfoReturnable cir){ + boolean ret = super.doHurtTarget(entity); // Only apply effect after hit, so the player gets advance warning if(entity instanceof LivingEntity){ ((LivingEntity) entity).addEffect(new MobEffectInstance(ModEffects.Effect_Shattered, 400, 4, false, true, true)); } + cir.setReturnValue(ret); } }