From 91dc56bf87ff624ed7ea5da0dbc7a470f0e1d4ff Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Tue, 8 Jul 2025 14:34:39 +0300 Subject: [PATCH] Moved NpcAPI.actionManager to ActionManager.GLOBAL --- src/main/java/noppes/npcs/ServerTickHandler.java | 4 ++-- .../controllers/data/action/ActionManager.java | 16 ++++++++++++++++ src/main/java/noppes/npcs/scripted/NpcAPI.java | 6 +----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/main/java/noppes/npcs/ServerTickHandler.java b/src/main/java/noppes/npcs/ServerTickHandler.java index 6b5706b15..2cb6d4e6d 100644 --- a/src/main/java/noppes/npcs/ServerTickHandler.java +++ b/src/main/java/noppes/npcs/ServerTickHandler.java @@ -11,7 +11,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.world.WorldServer; import noppes.npcs.client.AnalyticsTracking; import noppes.npcs.controllers.data.PlayerData; -import noppes.npcs.scripted.NpcAPI; +import noppes.npcs.controllers.data.action.ActionManager; import java.net.InetAddress; import java.net.UnknownHostException; @@ -21,7 +21,7 @@ public class ServerTickHandler { @SubscribeEvent public void onServerTick(TickEvent.ServerTickEvent event) { if (event.phase == Phase.END) { - NpcAPI.actionManager.tick(); + ActionManager.GLOBAL.tick(); } } diff --git a/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java b/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java index 167ee729e..01173b4ce 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java +++ b/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java @@ -7,6 +7,7 @@ import noppes.npcs.api.handler.data.IActionQueue; import noppes.npcs.api.handler.data.actions.IConditionalAction; import noppes.npcs.controllers.ScriptContainer; import noppes.npcs.controllers.data.action.action.ConditionalAction; +import noppes.npcs.scripted.NpcAPI; import java.util.*; import java.util.function.Consumer; @@ -21,6 +22,8 @@ import java.util.function.Function; * - cancellation & clearing */ public class ActionManager implements IActionManager { + public static final ActionManager GLOBAL = new ActionManager("GLOBAL"); + protected boolean isWorking = false; public ActionLogger LOGGER = new ActionLogger(this); protected String name = ""; @@ -33,6 +36,19 @@ public class ActionManager implements IActionManager { protected boolean debug; protected ScriptContainer reportTo; + private static final Map listeners = new WeakHashMap<>(); + + public IActionListener getOrCreateListener(Object obj) { + return listeners.computeIfAbsent(obj, o -> new ActionListener(o)); + } + + public ActionManager() { + } + + public ActionManager(String name) { + this.name = name; + } + @Override public IActionManager start() { diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index 34dc85b54..984c929b9 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -79,7 +79,6 @@ public class NpcAPI extends AbstractNpcAPI { private static final CacheHashMap> scriptItemCache = new CacheHashMap<>(60 * 1000); public static final HashMap engineObjects = new HashMap<>(); public static final EventBus EVENT_BUS = new EventBus(); - public static final ActionManager actionManager = new ActionManager(); private static AbstractNpcAPI instance = null; private final static String API_USER_AGENT = "CNPC+API"; @@ -569,10 +568,7 @@ public class NpcAPI extends AbstractNpcAPI { } public IActionManager getActionManager() { - if (actionManager.getName().isEmpty()) - actionManager.setName("Global"); - - return actionManager; + return ActionManager.GLOBAL; } private void checkWorld() {