From ad9c1b418da6845b6d591f27f018d00cce4bd1d8 Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Sun, 4 Jun 2023 11:02:59 -0500 Subject: [PATCH] Added scriptPlayerCache (no null pointers this time) --- src/main/java/noppes/npcs/scripted/NpcAPI.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index f388863f2..013d2ccde 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -73,6 +73,7 @@ public class NpcAPI extends AbstractNpcAPI { private static final Map worldCache = new LRUHashMap<>(10); private static final CacheHashMap> scriptItemCache = new CacheHashMap<>(60*1000); public static final HashMap engineObjects = new HashMap<>(); + public static final HashMap scriptPlayerCache = new HashMap<>(); public static final EventBus EVENT_BUS = new EventBus(); private static AbstractNpcAPI instance = null; @@ -195,8 +196,12 @@ public class NpcAPI extends AbstractNpcAPI { ScriptEntityData data = (ScriptEntityData) entity.getExtendedProperties("ScriptedObject"); if(data != null) return data.base; - if(entity instanceof EntityPlayerMP) - data = new ScriptEntityData(new ScriptPlayer<>((EntityPlayerMP) entity)); + if(entity instanceof EntityPlayerMP) { + if (!scriptPlayerCache.containsKey(entity.getPersistentID())) { + scriptPlayerCache.put(entity.getPersistentID(),new ScriptEntityData(new ScriptPlayer<>((EntityPlayerMP) entity))); + } + data = scriptPlayerCache.get(entity.getPersistentID()); + } else if(PixelmonHelper.isPixelmon(entity)) return new ScriptPixelmon((EntityTameable) entity); else if(entity instanceof EntityAnimal)