diff options
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java index 915710f7..97261c76 100644 --- a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java +++ b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java @@ -10,6 +10,7 @@ import com.mojang.logging.LogUtils; import com.mojang.serialization.Dynamic; import com.mojang.serialization.JsonOps; import de.hysky.skyblocker.SkyblockerMod; +import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.datafixer.JsonHelper; import net.fabricmc.loader.api.FabricLoader; import org.slf4j.Logger; @@ -23,7 +24,6 @@ public class ConfigDataFixer { protected static final Logger LOGGER = LogUtils.getLogger(); private static final Path CONFIG_DIR = FabricLoader.getInstance().getConfigDir(); public static final DSL.TypeReference CONFIG_TYPE = () -> "config"; - public static final int VERSION = 2; public static void apply() { apply(CONFIG_DIR.resolve("skyblocker.json"), CONFIG_DIR.resolve("skyblocker.json.old")); @@ -35,7 +35,7 @@ public class ConfigDataFixer { //Should never be null if the file exists unless its malformed JSON or something in which case well it gets reset JsonObject oldConfig = loadConfig(configDir); - if (oldConfig == null || JsonHelper.getInt(oldConfig, "version").orElse(1) == VERSION) return; + if (oldConfig == null || JsonHelper.getInt(oldConfig, "version").orElse(1) == SkyblockerConfigManager.CONFIG_VERSION) return; JsonObject newConfig = apply(oldConfig); @@ -47,21 +47,25 @@ public class ConfigDataFixer { } public static JsonObject apply(JsonObject oldConfig) { - DataFixerBuilder builder = new DataFixerBuilder(VERSION); - builder.addSchema(1, ConfigSchema::new); - Schema schema2 = builder.addSchema(2, Schema::new); - builder.addFixer(new ConfigFix1(schema2, true)); - DataFixer dataFixer = builder.buildUnoptimized(); + long start = System.currentTimeMillis(); - long start = System.currentTimeMillis(); - - JsonObject newConfig = dataFixer.update(CONFIG_TYPE, new Dynamic<>(JsonOps.INSTANCE, oldConfig), JsonHelper.getInt(oldConfig, "version").orElse(1), VERSION).getValue().getAsJsonObject(); + JsonObject newConfig = build().update(CONFIG_TYPE, new Dynamic<>(JsonOps.INSTANCE, oldConfig), JsonHelper.getInt(oldConfig, "version").orElse(1), SkyblockerConfigManager.CONFIG_VERSION).getValue().getAsJsonObject(); long end = System.currentTimeMillis(); - LOGGER.info("[Skyblocker Config Data Fixer] Applied datafixers in {} ms!", (end - start)); + LOGGER.info("[Skyblocker Config Data Fixer] Applied datafixers in {} ms!", end - start); return newConfig; } + private static DataFixer build() { + DataFixerBuilder builder = new DataFixerBuilder(SkyblockerConfigManager.CONFIG_VERSION); + + builder.addSchema(1, ConfigSchema::new); + Schema schema2 = builder.addSchema(2, Schema::new); + builder.addFixer(new ConfigFix1(schema2, true)); + + return builder.buildUnoptimized(); + } + private static JsonObject loadConfig(Path path) { try (BufferedReader reader = Files.newBufferedReader(path)) { return JsonParser.parseReader(reader).getAsJsonObject(); |