From 7a715ef3085c94b8bb795ea71162564abff43e9a Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Wed, 14 Dec 2022 17:53:57 -0600 Subject: [PATCH] NpcAPI: Added functions for adding keywords to global script running ++ addGlobalObject(String,Object) ++ removeGlobalObject(String) ++ getEngineObjects() --- src/api | 2 +- .../noppes/npcs/controllers/ScriptContainer.java | 3 +++ .../noppes/npcs/controllers/data/DataScript.java | 3 +++ src/main/java/noppes/npcs/scripted/NpcAPI.java | 13 +++++++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/api b/src/api index 844c2e8c7..d5404fb6c 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit 844c2e8c70f14a1228668c56ed39fc45c4c72816 +Subproject commit d5404fb6c16fa1c8175357bef383819f423f6542 diff --git a/src/main/java/noppes/npcs/controllers/ScriptContainer.java b/src/main/java/noppes/npcs/controllers/ScriptContainer.java index 9fdc120e7..543549896 100644 --- a/src/main/java/noppes/npcs/controllers/ScriptContainer.java +++ b/src/main/java/noppes/npcs/controllers/ScriptContainer.java @@ -155,6 +155,9 @@ public class ScriptContainer { } engine.put("API", NpcAPI.Instance()); + for (Map.Entry engineObjects : NpcAPI.engineObjects.entrySet()) { + engine.put(engineObjects.getKey(),engineObjects.getValue()); + } Current = this; CurrentType = type; diff --git a/src/main/java/noppes/npcs/controllers/data/DataScript.java b/src/main/java/noppes/npcs/controllers/data/DataScript.java index 84aace63c..499fc713f 100644 --- a/src/main/java/noppes/npcs/controllers/data/DataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/DataScript.java @@ -153,6 +153,9 @@ public class DataScript implements IScriptHandler { engine.put("EntityType", entities); engine.put("RoleType", roles); engine.put("JobType", jobs); + for (Map.Entry engineObjects : NpcAPI.engineObjects.entrySet()) { + engine.put(engineObjects.getKey(),engineObjects.getValue()); + } script.run(engine); if(clientNeedsUpdate){ diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index 77bade0bb..ce85a0868 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -58,6 +58,7 @@ import java.util.*; public class NpcAPI extends AbstractNpcAPI { private static final Map worldCache = new LRUHashMap<>(10); + public static final HashMap engineObjects = new HashMap<>(); public static final EventBus EVENT_BUS = new EventBus(); private static AbstractNpcAPI instance = null; @@ -68,6 +69,18 @@ public class NpcAPI extends AbstractNpcAPI { worldCache.clear(); } + public void addGlobalObject(String key, Object obj) { + NpcAPI.engineObjects.put(key,obj); + } + + public void removeGlobalObject(String key) { + NpcAPI.engineObjects.remove(key); + } + + public HashMap getEngineObjects() { + return NpcAPI.engineObjects; + } + public long sizeOfObject(Object obj) { return ObjectSizeCalculator.getObjectSize(obj); }