From c797fbec8031f8e84ede542a4cc9239ab99f4fe6 Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 12 Mar 2026 20:29:05 -0400 Subject: [PATCH] Fix Base Directory for Category Manager System for NEW WORLDs --- .../noppes/npcs/controllers/AnimationController.java | 1 - .../java/noppes/npcs/controllers/CategoryManager.java | 9 ++++++++- .../noppes/npcs/controllers/CustomEffectController.java | 1 - .../noppes/npcs/controllers/LinkedItemController.java | 1 - 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/noppes/npcs/controllers/AnimationController.java b/src/main/java/noppes/npcs/controllers/AnimationController.java index ae9012b75..cf1bd2c95 100644 --- a/src/main/java/noppes/npcs/controllers/AnimationController.java +++ b/src/main/java/noppes/npcs/controllers/AnimationController.java @@ -166,7 +166,6 @@ public class AnimationController implements IAnimationHandler { File dir = getDir(); if (!dir.exists()) { dir.mkdir(); - return; } categoryManager.loadCategories(dir); diff --git a/src/main/java/noppes/npcs/controllers/CategoryManager.java b/src/main/java/noppes/npcs/controllers/CategoryManager.java index a4d14def4..80da9768d 100644 --- a/src/main/java/noppes/npcs/controllers/CategoryManager.java +++ b/src/main/java/noppes/npcs/controllers/CategoryManager.java @@ -67,6 +67,10 @@ public class CategoryManager { itemCategoryMap.remove(itemId); } + public boolean isLoaded() { + return baseDir != null; + } + public File getItemDir(int itemId) { int catId = itemCategoryMap.getOrDefault(itemId, UNCATEGORIZED_ID); return getCategoryDir(catId); @@ -86,6 +90,7 @@ public class CategoryManager { // ========== Category CRUD ========== public Category createCategory(String name) { + if (baseDir == null) return null; while (hasCategoryName(name)) name += "_"; lastUsedCatID++; Category cat = new Category(lastUsedCatID, name); @@ -96,7 +101,7 @@ public class CategoryManager { } public void saveCategory(Category cat) { - if (cat.id <= 0) return; + if (cat.id <= 0 || baseDir == null) return; Category existing = categories.get(cat.id); if (existing != null && !existing.title.equals(cat.title)) { String newTitle = cat.title; @@ -116,6 +121,7 @@ public class CategoryManager { } public boolean removeCategory(int catId, Set allItemIds) { + if (baseDir == null) return false; if (catId <= UNCATEGORIZED_ID) return false; Category cat = categories.get(catId); if (cat == null) return false; @@ -149,6 +155,7 @@ public class CategoryManager { } public void moveItem(int itemId, String fileName, int destCatId) { + if (baseDir == null) return; int oldCatId = itemCategoryMap.getOrDefault(itemId, UNCATEGORIZED_ID); if (oldCatId == destCatId) return; diff --git a/src/main/java/noppes/npcs/controllers/CustomEffectController.java b/src/main/java/noppes/npcs/controllers/CustomEffectController.java index f6338ab53..640f544c4 100644 --- a/src/main/java/noppes/npcs/controllers/CustomEffectController.java +++ b/src/main/java/noppes/npcs/controllers/CustomEffectController.java @@ -328,7 +328,6 @@ public class CustomEffectController implements ICustomEffectHandler { File dir = getDir(); if (!dir.exists()) { dir.mkdir(); - return; } categoryManager.loadCategories(dir); diff --git a/src/main/java/noppes/npcs/controllers/LinkedItemController.java b/src/main/java/noppes/npcs/controllers/LinkedItemController.java index fb461f272..f4e994c2c 100644 --- a/src/main/java/noppes/npcs/controllers/LinkedItemController.java +++ b/src/main/java/noppes/npcs/controllers/LinkedItemController.java @@ -126,7 +126,6 @@ public class LinkedItemController implements ILinkedItemHandler { File dir = getDir(); if (!dir.exists()) { dir.mkdir(); - return; } categoryManager.loadCategories(dir);