From 0f1a6028f3284c888d3aaa5d05a3a700fbd55c67 Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 22 Jan 2026 20:53:48 -0500 Subject: [PATCH] Event Janino Script --- .../npcs/controllers/data/DataScript.java | 4 ++-- .../controllers/data/PlayerDataScript.java | 4 ++-- .../noppes/npcs/janino/EventJaninoScript.java | 11 ++++++++++ .../java/noppes/npcs/janino/JaninoScript.java | 6 +++++- .../npcs/janino/impl/JaninoNpcScript.java | 21 ------------------- .../npcs/janino/impl/JaninoPlayerScript.java | 21 ------------------- 6 files changed, 20 insertions(+), 47 deletions(-) create mode 100644 src/main/java/noppes/npcs/janino/EventJaninoScript.java delete mode 100644 src/main/java/noppes/npcs/janino/impl/JaninoNpcScript.java delete mode 100644 src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java diff --git a/src/main/java/noppes/npcs/controllers/data/DataScript.java b/src/main/java/noppes/npcs/controllers/data/DataScript.java index 677b3efde..ede4a4c96 100644 --- a/src/main/java/noppes/npcs/controllers/data/DataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/DataScript.java @@ -21,7 +21,7 @@ import noppes.npcs.constants.ScriptContext; import noppes.npcs.controllers.ScriptContainer; import noppes.npcs.controllers.ScriptController; import noppes.npcs.entity.EntityNPCInterface; -import noppes.npcs.janino.impl.JaninoNpcScript; +import noppes.npcs.janino.EventJaninoScript; import noppes.npcs.scripted.NpcAPI; import noppes.npcs.scripted.ScriptWorld; import noppes.npcs.scripted.constants.EntityType; @@ -314,6 +314,6 @@ public class DataScript implements IScriptHandlerPacket { } @Override public IScriptUnit createJaninoScriptUnit() { - return new JaninoNpcScript(); + return new EventJaninoScript(ScriptContext.NPC); } } diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java index 6549ed1e5..38d9e8447 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java @@ -13,7 +13,7 @@ import noppes.npcs.constants.EnumScriptType; import noppes.npcs.constants.ScriptContext; import noppes.npcs.controllers.ScriptContainer; import noppes.npcs.controllers.ScriptController; -import noppes.npcs.janino.impl.JaninoPlayerScript; +import noppes.npcs.janino.EventJaninoScript; import noppes.npcs.scripted.NpcAPI; import noppes.npcs.scripted.event.player.PlayerEvent; import noppes.npcs.util.ScriptToStringHelper; @@ -201,6 +201,6 @@ public class PlayerDataScript extends MultiScriptHandler { @Override public IScriptUnit createJaninoScriptUnit() { - return new JaninoPlayerScript(); + return new EventJaninoScript(ScriptContext.PLAYER); } } diff --git a/src/main/java/noppes/npcs/janino/EventJaninoScript.java b/src/main/java/noppes/npcs/janino/EventJaninoScript.java new file mode 100644 index 000000000..2ac7dd218 --- /dev/null +++ b/src/main/java/noppes/npcs/janino/EventJaninoScript.java @@ -0,0 +1,11 @@ +package noppes.npcs.janino; + +import noppes.npcs.constants.ScriptContext; + +public class EventJaninoScript extends JaninoScript { + + public EventJaninoScript(ScriptContext context) { + super(Object.class, null, false); + this.context = context; + } +} diff --git a/src/main/java/noppes/npcs/janino/JaninoScript.java b/src/main/java/noppes/npcs/janino/JaninoScript.java index b04031973..d8dfb4007 100644 --- a/src/main/java/noppes/npcs/janino/JaninoScript.java +++ b/src/main/java/noppes/npcs/janino/JaninoScript.java @@ -9,6 +9,7 @@ import noppes.npcs.NBTTags; import noppes.npcs.api.handler.IHookDefinition; import noppes.npcs.config.ConfigScript; import noppes.npcs.constants.EnumScriptType; +import noppes.npcs.constants.ScriptContext; import noppes.npcs.controllers.ScriptController; import noppes.npcs.controllers.ScriptHookController; import noppes.npcs.controllers.data.IScriptUnit; @@ -23,6 +24,7 @@ import java.util.function.Supplier; public abstract class JaninoScript implements IScriptUnit { + public ScriptContext context = ScriptContext.GLOBAL; public boolean errored = false; public String script = ""; public List externalScripts = new ArrayList<>(); @@ -59,7 +61,9 @@ public abstract class JaninoScript implements IScriptUnit { this(type, defaultImports, false); } - protected abstract String getHookContext(); + protected String getHookContext(){ + return this.context.hookContext; + } // ==================== COMPILATION ==================== diff --git a/src/main/java/noppes/npcs/janino/impl/JaninoNpcScript.java b/src/main/java/noppes/npcs/janino/impl/JaninoNpcScript.java deleted file mode 100644 index 4445ed8c6..000000000 --- a/src/main/java/noppes/npcs/janino/impl/JaninoNpcScript.java +++ /dev/null @@ -1,21 +0,0 @@ -package noppes.npcs.janino.impl; - -import noppes.npcs.janino.JaninoScript; - -/** - * Janino (Java) script implementation for NPC events. - * Hook methods are resolved dynamically by name - no interface definition required. - */ -public class JaninoNpcScript extends JaninoScript { - - public JaninoNpcScript() { - super(Functions.class, null); - } - - @Override - protected String getHookContext() { - return "npc"; - } - - public interface Functions {} -} diff --git a/src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java b/src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java deleted file mode 100644 index 79c7718b6..000000000 --- a/src/main/java/noppes/npcs/janino/impl/JaninoPlayerScript.java +++ /dev/null @@ -1,21 +0,0 @@ -package noppes.npcs.janino.impl; - -import noppes.npcs.janino.JaninoScript; - -/** - * Janino (Java) script implementation for player events. - * Hook methods are resolved dynamically by name - no interface definition required. - */ -public class JaninoPlayerScript extends JaninoScript { - - public JaninoPlayerScript() { - super(Functions.class, null, false); - } - - @Override - protected String getHookContext() { - return "player"; - } - - public interface Functions {} -}