From 197ffaa50b490dd43391bad292b9add5ff59b27b Mon Sep 17 00:00:00 2001 From: Pyrbu Date: Sat, 26 Aug 2023 23:42:17 +0200 Subject: [PATCH] don't delete all npc files before saving, instead just delete whenever the npc is deleted --- .../main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java | 7 ++++--- .../main/java/lol/pyr/znpcsplus/storage/NpcStorage.java | 1 + .../java/lol/pyr/znpcsplus/storage/yaml/YamlStorage.java | 2 -- 3 files changed, 5 insertions(+), 5 deletions(-) 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 062f4ad..0f74eef 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java @@ -142,9 +142,10 @@ public class NpcRegistryImpl implements NpcRegistry { @Override public void delete(String id) { - id = id.toLowerCase(); - if (!npcIdLookupMap.containsKey(id)) return; - unregister(npcIdLookupMap.get(id)); + NpcEntryImpl entry = npcIdLookupMap.remove(id.toLowerCase()); + if (entry == null) return; + unregister(entry); + storage.deleteNpc(entry); } public void unload() { diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/storage/NpcStorage.java b/plugin/src/main/java/lol/pyr/znpcsplus/storage/NpcStorage.java index 9866b4b..63c51fb 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/storage/NpcStorage.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/storage/NpcStorage.java @@ -7,4 +7,5 @@ import java.util.Collection; public interface NpcStorage { Collection loadNpcs(); void saveNpcs(Collection npcs); + void deleteNpc(NpcEntryImpl npc); } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/storage/yaml/YamlStorage.java b/plugin/src/main/java/lol/pyr/znpcsplus/storage/yaml/YamlStorage.java index 5c393a3..6526b8b 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/storage/yaml/YamlStorage.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/storage/yaml/YamlStorage.java @@ -88,8 +88,6 @@ public class YamlStorage implements NpcStorage { @Override public void saveNpcs(Collection npcs) { - File[] files = folder.listFiles(); - if (files != null && files.length != 0) for (File file : files) file.delete(); for (NpcEntryImpl entry : npcs) try { YamlConfiguration config = new YamlConfiguration(); config.set("id", entry.getId());