From f100fb0ab1630530c64df46197e45bbf9585313b Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Sat, 5 Jul 2025 11:44:29 +0300 Subject: [PATCH] Fixed NPC Target and TargetLost events firing redundantly --- .../npcs/entity/EntityNPCInterface.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java index 5bd0bdd43..77f78bda6 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java @@ -644,18 +644,21 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti if (entity instanceof EntityPlayer && DBCAddon.instance.isKO(this, (EntityPlayer) entity)) return; if (!isRemote()) { - if (getAttackTarget() != entity && entity != null) { - NpcEvent.TargetEvent event = new NpcEvent.TargetEvent(wrappedNPC, entity); - if (EventHooks.onNPCTarget(this, event)) - return; + if (getAttackTarget() != entity) { + if (entity != null) { + NpcEvent.TargetEvent event = new NpcEvent.TargetEvent(wrappedNPC, entity); + if (EventHooks.onNPCTarget(this, event)) + return; - if (event.getTarget() == null) - entity = null; - else - entity = event.getTarget().getMCEntity(); - } else { - if (EventHooks.onNPCTargetLost(this, getAttackTarget(), entity)) - return; + if (event.getTarget() == null) + entity = null; + else + entity = event.getTarget().getMCEntity(); + } + if (getAttackTarget() != null) { + if (EventHooks.onNPCTargetLost(this, getAttackTarget(), entity)) + return; + } } if (entity != null && entity != this && ais.onAttack != 3 && !isAttacking()) { Line line = advanced.getAttackLine();