diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index f388863f2..57234cc5a 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 playerCache = 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 (!playerCache.containsKey(((EntityPlayerMP) entity).getDisplayName())) { + playerCache.put(((EntityPlayerMP) entity).getDisplayName(),new ScriptEntityData(new ScriptPlayer<>((EntityPlayerMP) entity))); + } + data = playerCache.get(((EntityPlayerMP) entity).getDisplayName()); + } else if(PixelmonHelper.isPixelmon(entity)) return new ScriptPixelmon((EntityTameable) entity); else if(entity instanceof EntityAnimal)