From 48bc060e5c5e49855e23bc7f770a7aa19b246a38 Mon Sep 17 00:00:00 2001 From: Ryan Fox Date: Mon, 17 Aug 2020 00:14:07 +0000 Subject: [PATCH] Handle config defaults less poorly --- .../java/party/_2a03/mc/server/Config.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/party/_2a03/mc/server/Config.java b/src/main/java/party/_2a03/mc/server/Config.java index 10628db..2d3fcdb 100644 --- a/src/main/java/party/_2a03/mc/server/Config.java +++ b/src/main/java/party/_2a03/mc/server/Config.java @@ -32,10 +32,13 @@ public class Config { String jsonRaw = IOUtils.toString(is, "UTF-8"); json = new JSONObject(jsonRaw); } else { - LOGGER.info("Config not found, creating one"); - json = new JSONObject("{\"disableTntExplosions\":false,\"disableRespawnAnchorExplosions\":false,\"spawn\":[0,0,0,0,0,\"\"],\"members\":[]}"); - saveConfig(); + json = new JSONObject(); } + + setDefault("disableTntExplosions", false); + setDefault("disableRespawnAnchorExplosions", false); + setDefault("spawn", (new PlayerPosition()).getJSON()); + LOGGER.info("Configuration loaded"); } @@ -86,6 +89,16 @@ public class Config { saveConfig(); } + public static void setDefault(String key, JSONArray data) { + if (!json.has(key)) + json.put(key, data); + } + + public static void setDefault(String key, Boolean data) { + if (!json.has(key)) + json.put(key, data); + } + private static void saveConfig() { try (FileWriter file = new FileWriter(config)) { file.write(json.toString(2));