From cb364823a9aef9486e1fee917f8661e1264f853b Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Thu, 22 Jan 2026 22:28:20 +0200 Subject: [PATCH 1/4] Added ScriptContext based registerHook --- .../noppes/npcs/controllers/ScriptHookController.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/noppes/npcs/controllers/ScriptHookController.java b/src/main/java/noppes/npcs/controllers/ScriptHookController.java index bc20eccff..a919de972 100644 --- a/src/main/java/noppes/npcs/controllers/ScriptHookController.java +++ b/src/main/java/noppes/npcs/controllers/ScriptHookController.java @@ -3,7 +3,6 @@ package noppes.npcs.controllers; import noppes.npcs.api.handler.IScriptHookHandler; import noppes.npcs.constants.EnumScriptType; import noppes.npcs.constants.ScriptContext; -import noppes.npcs.controllers.data.EffectScript; import noppes.npcs.controllers.data.RecipeScript; import java.util.ArrayList; @@ -230,6 +229,16 @@ public class ScriptHookController implements IScriptHookHandler { } } + @Override + public void registerHooks(ScriptContext context, String functionName) { + registerHook(context.hookContext, functionName); + } + + @Override + public void registerHooks(ScriptContext context, String... functionNames) { + registerHooks(context.hookContext, functionNames); + } + @Override public void registerHook(String context, String functionName) { if (context == null || functionName == null || functionName.isEmpty()) { From a18292b8ed579a9626159ff80d6b85e5666ee580 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Thu, 22 Jan 2026 22:29:26 +0200 Subject: [PATCH 2/4] Used dynamic janino compiler for server side script handlers --- src/main/java/noppes/npcs/janino/JaninoScript.java | 2 +- src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/janino/JaninoScript.java b/src/main/java/noppes/npcs/janino/JaninoScript.java index a2202271e..f1a8f58e7 100644 --- a/src/main/java/noppes/npcs/janino/JaninoScript.java +++ b/src/main/java/noppes/npcs/janino/JaninoScript.java @@ -68,7 +68,7 @@ public abstract class JaninoScript implements IScriptUnit { } protected JaninoScript(Class type, String[] defaultImports) { - this(type, defaultImports, true); + this(type, defaultImports, false); } protected T getUnsafe() { diff --git a/src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java b/src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java index 0e1f3b004..5c644665d 100644 --- a/src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java +++ b/src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java @@ -19,7 +19,7 @@ import noppes.npcs.janino.annotations.ScriptHook; public class JaninoPlayerScript extends JaninoScript { public JaninoPlayerScript() { - super(Functions.class, null, false); + super(Functions.class, null); } /** From 13cb94d5e2e180404308247571b8537979aa3028 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Thu, 22 Jan 2026 22:57:04 +0200 Subject: [PATCH 3/4] Forgot API ScriptHookController --- .../controllers/data/MultiScriptHandler.java | 32 +------------------ 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/src/main/java/noppes/npcs/controllers/data/MultiScriptHandler.java b/src/main/java/noppes/npcs/controllers/data/MultiScriptHandler.java index 19758708d..d175eb3b9 100644 --- a/src/main/java/noppes/npcs/controllers/data/MultiScriptHandler.java +++ b/src/main/java/noppes/npcs/controllers/data/MultiScriptHandler.java @@ -21,13 +21,7 @@ import java.util.TreeMap; * - Override isEnabled() if custom enable logic is needed */ public abstract class MultiScriptHandler extends ScriptHandler implements IScriptHandlerPacket { - - /** Tracks when scripts were last updated (for reload detection) */ - protected long lastUpdate = -1L; - - /** Console output storage */ - protected Map console = new TreeMap<>(); - + // ==================== NBT SERIALIZATION ==================== /** @@ -44,10 +38,6 @@ public abstract class MultiScriptHandler extends ScriptHandler implements IScrip normalizeLanguage(); this.enabled = compound.getBoolean("ScriptEnabled"); - - if (compound.hasKey("ScriptConsole")) { - this.console = NBTTags.GetLongStringMap(compound.getTagList("ScriptConsole", 10)); - } } /** @@ -60,7 +50,6 @@ public abstract class MultiScriptHandler extends ScriptHandler implements IScrip } compound.setString("ScriptLanguage", this.scriptLanguage); compound.setBoolean("ScriptEnabled", this.enabled); - compound.setTag("ScriptConsole", NBTTags.NBTLongStringMap(console)); return compound; } @@ -119,23 +108,4 @@ public abstract class MultiScriptHandler extends ScriptHandler implements IScrip script.run(hookName, event); } } - - // ==================== CONSOLE HANDLING ==================== - - @Override - public Map getConsoleText() { - return console; - } - - @Override - public void clearConsole() { - console.clear(); - } - - // ==================== UTILITY ==================== - - public void clear() { - this.scripts = new ArrayList<>(); - this.console = new TreeMap<>(); - } } From dfcab1e413a9c024bba42fb0013e3e6fa83b776b Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Thu, 22 Jan 2026 23:05:47 +0200 Subject: [PATCH 4/4] Moved clear to ScriptHandler --- .../java/noppes/npcs/controllers/data/PlayerDataScript.java | 3 +-- src/main/java/noppes/npcs/controllers/data/ScriptHandler.java | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java index c5721f4c5..6549ed1e5 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java @@ -40,11 +40,10 @@ public class PlayerDataScript extends MultiScriptHandler { } } - @Override public void clear() { + super.clear(); staticConsole = new TreeMap<>(); errored = new ArrayList<>(); - scripts = new ArrayList<>(); } @Override diff --git a/src/main/java/noppes/npcs/controllers/data/ScriptHandler.java b/src/main/java/noppes/npcs/controllers/data/ScriptHandler.java index 4bb555375..dd57b05bb 100644 --- a/src/main/java/noppes/npcs/controllers/data/ScriptHandler.java +++ b/src/main/java/noppes/npcs/controllers/data/ScriptHandler.java @@ -65,6 +65,9 @@ public abstract class ScriptHandler implements IScriptHandler { return this.scripts; } + public void clear() { + this.scripts = new ArrayList<>(); + } /** * Reset the lastInited timestamp to force re-initialization on next script call. */