From d06e6803507ff660e8c342ae57bf00203682d80e Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 31 Dec 2025 00:52:06 +0000 Subject: [PATCH] Fix attack speed formula to check elapsed time properly Instead of blindly resetting hurtResistantTime for fast weapons, now checks if enough time has elapsed based on the weapon's attackSpeed: - timeElapsed = maxHurtResistantTime - hurtResistantTime - Allow attack when: hurtResistantTime <= maxHurtResistantTime - attackSpeed Example: attackSpeed=10, maxHurtResistantTime=20 - Allows attack when hurtResistantTime <= 10 (10 ticks elapsed) --- src/main/java/noppes/npcs/ScriptPlayerEventHandler.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index 7d8f45890..e9531296a 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -554,9 +554,8 @@ public class ScriptPlayerEventHandler { if (itemStack instanceof ScriptCustomizableItem) { ScriptCustomizableItem sci = (ScriptCustomizableItem) itemStack; int attackSpeed = sci.getAttackSpeed(); - if (attackSpeed < 20) { + if (event.entityLiving.hurtResistantTime <= event.entityLiving.maxHurtResistantTime - attackSpeed) { event.entityLiving.hurtResistantTime = 0; - event.entityLiving.hurtTime = attackSpeed; } } }