From 8a87326c449c4f89ce06ea17fc3da6f98c9e9423 Mon Sep 17 00:00:00 2001 From: fullwall Date: Mon, 1 Mar 2021 21:10:29 +0800 Subject: [PATCH] Only store lastUUID, not full NPC instance --- .../net/citizensnpcs/npc/CitizensNPCRegistry.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/npc/CitizensNPCRegistry.java b/main/src/main/java/net/citizensnpcs/npc/CitizensNPCRegistry.java index 3dcea86e0..b633e9233 100644 --- a/main/src/main/java/net/citizensnpcs/npc/CitizensNPCRegistry.java +++ b/main/src/main/java/net/citizensnpcs/npc/CitizensNPCRegistry.java @@ -172,7 +172,7 @@ public class CitizensNPCRegistry implements NPCRegistry { public Iterator iterator() { return new Iterator() { Iterator itr = npcs.valueCollection().iterator(); - NPC npc; + UUID lastUUID; @Override public boolean hasNext() { @@ -181,16 +181,19 @@ public class CitizensNPCRegistry implements NPCRegistry { @Override public NPC next() { - npc = itr.next(); + NPC npc = itr.next(); + if (npc != null && npc.getUniqueId() != null) { + lastUUID = npc.getUniqueId(); + } return npc; } @Override public void remove() { itr.remove(); - if (npc != null) { - uniqueNPCs.remove(npc.getUniqueId()); - npc = null; + if (lastUUID != null) { + uniqueNPCs.remove(lastUUID); + lastUUID = null; } } };