Abort world server startup when any deed or rune file fails to parse

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MagicBotandClaude Opus 5.5 committed 2026-10-17 07:45:24 -04:00
1 parent ad476db166
commit 7309159f83
3 files changed
+16 -4

No files matched your search

+6
View File
@@ -30,6 +30,7 @@ public class DeedParser {
File[] deedFiles = CacheParserUtil.listJsonFiles(deedPath);
int templateId;
JSONObject deedJson;
int failedCount = 0;
for (File deedFile : deedFiles) {
try {
@@ -38,11 +39,16 @@ public class DeedParser {
deedTemplates.put(templateId, parseDeedEntry(templateId, deedJson));
} catch (Exception e) {
Logger.error(deedFile.getName() + ": " + e);
failedCount++;
}
}
Logger.info("Loaded " + deedTemplates.size() + " of " + deedFiles.length + " deed templates");
// Partial deed data is never usable; null tells the caller to abort
if (failedCount > 0)
return null;
return deedTemplates;
}
+6
View File
@@ -30,6 +30,7 @@ public class RuneParser {
File[] runeFiles = CacheParserUtil.listJsonFiles(runePath);
int templateId;
JSONObject runeJson;
int failedCount = 0;
for (File runeFile : runeFiles) {
try {
@@ -38,11 +39,16 @@ public class RuneParser {
runeTemplates.put(templateId, parseRuneEntry(templateId, runeJson));
} catch (Exception e) {
Logger.error(runeFile.getName() + ": " + e);
failedCount++;
}
}
Logger.info("Loaded " + runeTemplates.size() + " of " + runeFiles.length + " rune templates");
// Partial rune data is never usable; null tells the caller to abort
if (failedCount > 0)
return null;
return runeTemplates;
}
+4 -4
View File
@@ -310,16 +310,16 @@ public class WorldServer {
Logger.info("Loading Deed Templates");
DeedTemplate._deeds = DeedParser.parseDeedFolder();
if (DeedTemplate._deeds.isEmpty()) {
Logger.error("ABORT! No deed templates loaded!");
if (DeedTemplate._deeds == null || DeedTemplate._deeds.isEmpty()) {
Logger.error("ABORT! Deed templates failed to load!");
exit(1);
}
Logger.info("Loading Rune Templates");
RuneTemplate._runes = RuneParser.parseRuneFolder();
if (RuneTemplate._runes.isEmpty()) {
Logger.error("ABORT! No rune templates loaded!");
if (RuneTemplate._runes == null || RuneTemplate._runes.isEmpty()) {
Logger.error("ABORT! Rune templates failed to load!");
exit(1);
}