diff --git a/src/main/java/emu/grasscutter/data/DataLoader.java b/src/main/java/emu/grasscutter/data/DataLoader.java index f2b18ee92..869081651 100644 --- a/src/main/java/emu/grasscutter/data/DataLoader.java +++ b/src/main/java/emu/grasscutter/data/DataLoader.java @@ -112,7 +112,7 @@ public class DataLoader { if (!Utils.fileExists(filePath)) { // Check if file is in subdirectory - if (name.indexOf("/") != -1) { + if (name.contains("/")) { String[] path = name.split("/"); String folder = ""; diff --git a/src/main/java/emu/grasscutter/data/ResourceLoader.java b/src/main/java/emu/grasscutter/data/ResourceLoader.java index 9b9ec2fce..d89f1e1b8 100644 --- a/src/main/java/emu/grasscutter/data/ResourceLoader.java +++ b/src/main/java/emu/grasscutter/data/ResourceLoader.java @@ -413,13 +413,18 @@ public class ResourceLoader { } try { - List keys = DataLoader.loadList("QuestEncryptionKeys.json", QuestEncryptionKey.class); - + List keys; Int2ObjectMap questEncryptionMap = GameData.getMainQuestEncryptionMap(); - keys.forEach(key -> questEncryptionMap.put(key.getMainQuestId(), key)); + String path = "QuestEncryptionKeys.json"; + if (Utils.fileExists(RESOURCE(path))) { + keys = JsonUtils.loadToList(RESOURCE(path), QuestEncryptionKey.class); + keys.forEach(key -> questEncryptionMap.put(key.getMainQuestId(), key)); + } + if (Utils.fileExists(DATA(path))) { + keys = DataLoader.loadList(path, QuestEncryptionKey.class); + keys.forEach(key -> questEncryptionMap.put(key.getMainQuestId(), key)); + } Grasscutter.getLogger().debug("Loaded {} quest keys.", questEncryptionMap.size()); - } catch (FileNotFoundException | NullPointerException ignored) { - Grasscutter.getLogger().warn("Unable to load quest keys - ./resources/QuestEncryptionKeys.json not found."); } catch (Exception e) { Grasscutter.getLogger().error("Unable to load quest keys.", e); }