From d5cc615948ff2493e9a0714c89fca47b39dbb33e Mon Sep 17 00:00:00 2001 From: KingRainbow44 Date: Wed, 11 May 2022 00:46:49 -0400 Subject: [PATCH] Remove old config & migrate legacy configs --- src/main/java/emu/grasscutter/Configuration.java | 13 ++++++++++++- src/main/java/emu/grasscutter/Grasscutter.java | 4 +++- src/main/java/emu/grasscutter/utils/Utils.java | 1 - 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/emu/grasscutter/Configuration.java b/src/main/java/emu/grasscutter/Configuration.java index 369160f42..7f7bf16fe 100644 --- a/src/main/java/emu/grasscutter/Configuration.java +++ b/src/main/java/emu/grasscutter/Configuration.java @@ -1,8 +1,10 @@ package emu.grasscutter; +import com.google.gson.JsonObject; import emu.grasscutter.Grasscutter.*; import emu.grasscutter.game.mail.Mail.*; +import java.io.FileReader; import java.lang.reflect.Field; import java.util.Arrays; import java.util.Locale; @@ -24,7 +26,16 @@ public final class Configuration { * Attempts to update the server's existing configuration to the latest configuration. */ public static void updateConfig() { - var existing = config.version; + try { // Check if the server is using a legacy config. + JsonObject configObject = Grasscutter.getGsonFactory() + .fromJson(new FileReader(Grasscutter.configFile), JsonObject.class); + if(!configObject.has("version")) { + Grasscutter.getLogger().info("Updating legacy configuration..."); + Grasscutter.saveConfig(null); + } + } catch (Exception ignored) { } + + var existing = config.version; var latest = version(); if(existing == latest) diff --git a/src/main/java/emu/grasscutter/Grasscutter.java b/src/main/java/emu/grasscutter/Grasscutter.java index 07cc1f240..6ba8bd986 100644 --- a/src/main/java/emu/grasscutter/Grasscutter.java +++ b/src/main/java/emu/grasscutter/Grasscutter.java @@ -43,7 +43,7 @@ public final class Grasscutter { private static Language language; private static final Gson gson = new GsonBuilder().setPrettyPrinting().create(); - private static final File configFile = new File("./config.json"); + public static final File configFile = new File("./config.json"); private static int day; // Current day of week. @@ -60,6 +60,8 @@ public final class Grasscutter { // Load server configuration. config = Grasscutter.loadConfig(); + // Attempt to update configuration. + Configuration.updateConfig(); // Load translation files. Grasscutter.loadLanguage(); diff --git a/src/main/java/emu/grasscutter/utils/Utils.java b/src/main/java/emu/grasscutter/utils/Utils.java index 648419b51..6b8365170 100644 --- a/src/main/java/emu/grasscutter/utils/Utils.java +++ b/src/main/java/emu/grasscutter/utils/Utils.java @@ -11,7 +11,6 @@ import java.util.Map; import java.util.Random; import java.util.Locale; -import emu.grasscutter.Config; import emu.grasscutter.Configuration; import emu.grasscutter.Grasscutter; import io.netty.buffer.ByteBuf;