From 185a8bc9176fa772bad857ef3d3d7e3b4353da2a Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 31 Dec 2025 00:45:26 +0000 Subject: [PATCH] Move hurt resistant time handling from LivingHurtEvent to LivingAttackEvent - Remove legacy attack speed handling from ServerEventsHandler.LivingHurtEvent (was setting hurtResistantTime AFTER immunity check, too late) - Add proper handling in ScriptPlayerEventHandler.LivingAttackEvent (sets hurtResistantTime=0 BEFORE immunity check for fast weapons) - For weapons with attackSpeed < 20, bypass invincibility frames to allow rapid attacks to land --- src/main/java/noppes/npcs/ScriptPlayerEventHandler.java | 5 ++++- src/main/java/noppes/npcs/ServerEventsHandler.java | 9 --------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index d9dcb06ab..7d8f45890 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -554,7 +554,10 @@ public class ScriptPlayerEventHandler { if (itemStack instanceof ScriptCustomizableItem) { ScriptCustomizableItem sci = (ScriptCustomizableItem) itemStack; int attackSpeed = sci.getAttackSpeed(); - // TODO: Check Hurt Resistant Time. + if (attackSpeed < 20) { + event.entityLiving.hurtResistantTime = 0; + event.entityLiving.hurtTime = attackSpeed; + } } } diff --git a/src/main/java/noppes/npcs/ServerEventsHandler.java b/src/main/java/noppes/npcs/ServerEventsHandler.java index eab17aff1..47a1148df 100644 --- a/src/main/java/noppes/npcs/ServerEventsHandler.java +++ b/src/main/java/noppes/npcs/ServerEventsHandler.java @@ -173,15 +173,6 @@ public class ServerEventsHandler { @SubscribeEvent public void invoke(LivingHurtEvent event) { - if(event.source.getEntity() instanceof EntityPlayerMP && event.entity instanceof EntityLivingBase ){ - EntityPlayerMP ep = (EntityPlayerMP) event.source.getEntity(); - if(ep.getHeldItem() != null && ep.getHeldItem().getItem() instanceof ItemLinked){ - int time = ep.getHeldItem().stackTagCompound.getCompoundTag("ItemData").getCompoundTag("LinkedData").getInteger("AttackSpeed"); - event.entity.hurtResistantTime = time; - ((EntityLivingBase) event.entity).hurtTime = time; - } - } - if (!(event.entityLiving instanceof EntityPlayer)) return;