diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java b/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java index d2d2c3b..dd0402e 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java @@ -143,6 +143,7 @@ public class ZNpcsPlus extends JavaPlugin { log(ChatColor.WHITE + " * Loading data..."); npcRegistry.reload(); + shutdownTasks.add(npcRegistry::unload); shutdownTasks.add(scheduler::cancelAll); shutdownTasks.add(userManager::shutdown); shutdownTasks.add(adventure::close); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java index 65dffd9..38ec576 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java @@ -146,4 +146,8 @@ public class NpcRegistryImpl implements NpcRegistry { if (!npcIdLookupMap.containsKey(id)) return; npcIdLookupMap.remove(id).getNpc().delete(); } + + public void unload() { + npcList.forEach(npcEntry -> npcEntry.getNpc().getViewers().forEach(npcEntry.getNpc()::UNSAFE_hide)); + } }