From 585ebdcc2f8ac3cc9385e2f0d4e2441665bdb04b Mon Sep 17 00:00:00 2001 From: Kam Date: Sun, 29 Jun 2025 14:40:49 -0400 Subject: [PATCH] Add config for clearing action manager on death --- src/main/java/noppes/npcs/ScriptPlayerEventHandler.java | 4 +++- src/main/java/noppes/npcs/config/ConfigScript.java | 5 +++++ src/main/java/noppes/npcs/entity/EntityNPCInterface.java | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index 26b638ac6..63a9da703 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -32,6 +32,7 @@ import noppes.npcs.controllers.CustomEffectController; import noppes.npcs.controllers.PartyController; import noppes.npcs.controllers.PlayerDataController; import noppes.npcs.controllers.ScriptController; +import noppes.npcs.config.ConfigScript; import noppes.npcs.controllers.data.*; import noppes.npcs.entity.EntityNPCInterface; import noppes.npcs.items.ItemNpcTool; @@ -496,7 +497,8 @@ public class ScriptPlayerEventHandler { EntityPlayer player = (EntityPlayer) event.entityLiving; PlayerData playerData = PlayerData.get(player); - // playerData.actionManager.clear(); + if (ConfigScript.ClearActionsOnDeath) + playerData.actionManager.clear(); } if (event.source.getEntity() instanceof EntityPlayerMP) { diff --git a/src/main/java/noppes/npcs/config/ConfigScript.java b/src/main/java/noppes/npcs/config/ConfigScript.java index 81d97780c..91d65ec41 100644 --- a/src/main/java/noppes/npcs/config/ConfigScript.java +++ b/src/main/java/noppes/npcs/config/ConfigScript.java @@ -63,6 +63,9 @@ public class ConfigScript { public static int ActionManagerTickDefault = 5; + public static Property ClearActionsOnDeathProperty; + public static boolean ClearActionsOnDeath = true; + public static boolean IndividualPlayerScripts = false; public static void init(File configFile) { @@ -125,6 +128,8 @@ public class ConfigScript { IndividualPlayerScripts = config.get(CUSTOMIZATION, "Individual Player Scripts", false, "Acts similar to CNPC 1.12 where Player Scripts like Init are run PER Player").getBoolean(false); ActionManagerTickDefault = config.get(CUSTOMIZATION, "Action Manager Tick Default", ActionManagerTickDefault, "How frequent to update the action manager ticking tasks").getInt(ActionManagerTickDefault); + ClearActionsOnDeathProperty = config.get(CUSTOMIZATION, "Clear Actions On Death", true, "If true, clears the Action Manager for players and NPCs when they die"); + ClearActionsOnDeath = ClearActionsOnDeathProperty.getBoolean(true); // Convert to Legacy if (CustomNpcs.legacyExist) { diff --git a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java index 6ff6961f0..796cec2fa 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java @@ -66,6 +66,7 @@ import noppes.npcs.api.handler.data.ILine; import noppes.npcs.api.item.IItemStack; import noppes.npcs.client.EntityUtil; import noppes.npcs.config.ConfigMain; +import noppes.npcs.config.ConfigScript; import noppes.npcs.constants.*; import noppes.npcs.controllers.FactionController; import noppes.npcs.controllers.LinkedNpcController; @@ -1168,7 +1169,8 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti setHealth(getMaxHealth()); dataWatcher.updateObject(14, 0); // animation Normal dataWatcher.updateObject(15, 0); - // actionManager.clear(); + if (ConfigScript.ClearActionsOnDeath) + actionManager.clear(); combatHandler.reset(); this.setAttackTarget(null); this.setRevengeTarget(null);