From ad222657c45b902bf520f9fd4153b29565aabaad Mon Sep 17 00:00:00 2001 From: Kam Date: Wed, 23 Oct 2024 21:16:59 -0400 Subject: [PATCH] Fix Cancel calculations for Attacked / Attack or Damaged / Damage --- build.gradle | 2 +- .../java/noppes/npcs/ScriptPlayerEventHandler.java | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index f1800187c..10cfcac08 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { id 'idea' } -version = "1.9.3" +version = "1.9.3-hotfix" group= "kamkeel.customnpc-plus" archivesBaseName = "CustomNPC-Plus" diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index 4efdb0f91..7c9eabf34 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -442,17 +442,19 @@ public class ScriptPlayerEventHandler { return; if(event.entityLiving.worldObj instanceof WorldServer) { + boolean cancel = event.isCanceled(); Entity source = NoppesUtilServer.GetDamageSource(event.source); PlayerDataScript handler = ScriptController.Instance.playerScripts; if(event.entityLiving instanceof EntityPlayer) { noppes.npcs.scripted.event.PlayerEvent.AttackedEvent pevent = new noppes.npcs.scripted.event.PlayerEvent.AttackedEvent((IPlayer)NpcAPI.Instance().getIEntity((EntityPlayer)event.entityLiving), source, event.ammount, event.source); - event.setCanceled(EventHooks.onPlayerAttacked(handler, pevent)); + cancel = EventHooks.onPlayerAttacked(handler, pevent); } if(event.source.getEntity() instanceof EntityPlayer) { noppes.npcs.scripted.event.PlayerEvent.AttackEvent pevent1 = new noppes.npcs.scripted.event.PlayerEvent.AttackEvent((IPlayer)NpcAPI.Instance().getIEntity((EntityPlayer)event.source.getEntity()), event.entityLiving, event.ammount, event.source); - event.setCanceled(EventHooks.onPlayerAttack(handler, pevent1)); + cancel = cancel || EventHooks.onPlayerAttack(handler, pevent1); } + event.setCanceled(cancel); } } @@ -462,19 +464,22 @@ public class ScriptPlayerEventHandler { return; if(event.entityLiving.worldObj instanceof WorldServer) { + boolean cancel = event.isCanceled(); Entity source = NoppesUtilServer.GetDamageSource(event.source); PlayerDataScript handler = ScriptController.Instance.playerScripts; if(event.entityLiving instanceof EntityPlayer) { noppes.npcs.scripted.event.PlayerEvent.DamagedEvent pevent = new noppes.npcs.scripted.event.PlayerEvent.DamagedEvent((IPlayer)NpcAPI.Instance().getIEntity((EntityPlayer)event.entityLiving), source, event.ammount, event.source); - event.setCanceled(EventHooks.onPlayerDamaged(handler, pevent)); + cancel = EventHooks.onPlayerDamaged(handler, pevent); event.ammount = pevent.damage; } if(source instanceof EntityPlayer) { noppes.npcs.scripted.event.PlayerEvent.DamagedEntityEvent pevent1 = new noppes.npcs.scripted.event.PlayerEvent.DamagedEntityEvent((IPlayer)NpcAPI.Instance().getIEntity(source), event.entityLiving, event.ammount, event.source); - event.setCanceled(EventHooks.onPlayerDamagedEntity(handler, pevent1)); + cancel = cancel || EventHooks.onPlayerDamagedEntity(handler, pevent1); event.ammount = pevent1.damage; } + + event.setCanceled(cancel); } }