aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-05-11 14:47:57 -0400
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-05-11 14:47:57 -0400
commit5591340b63c1abfd2f3657ee423ba16005503704 (patch)
treedecb87987d8a4246007e1cfff89d53a3b4970d1c /src/main/java/de/hysky
parentc608913fbce34ace0b5087172fe7961b69928401 (diff)
downloadSkyblocker-5591340b63c1abfd2f3657ee423ba16005503704.tar.gz
Skyblocker-5591340b63c1abfd2f3657ee423ba16005503704.tar.bz2
Skyblocker-5591340b63c1abfd2f3657ee423ba16005503704.zip
Refactor ConfigDataFixer
Diffstat (limited to 'src/main/java/de/hysky')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java26
3 files changed, 19 insertions, 14 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index c591ba14..b7a711ab 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -5,7 +5,7 @@ import dev.isxander.yacl3.config.v2.api.SerialEntry;
public class SkyblockerConfig {
@SerialEntry
- public int version = 2;
+ public int version = SkyblockerConfigManager.CONFIG_VERSION;
@SerialEntry
public GeneralConfig general = new GeneralConfig();
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
index c85e0bb4..688b85aa 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java
@@ -26,10 +26,11 @@ import java.lang.StackWalker.Option;
import java.nio.file.Path;
public class SkyblockerConfigManager {
- private static final Path PATH = FabricLoader.getInstance().getConfigDir().resolve("skyblocker.json");
+ public static final int CONFIG_VERSION = 2;
+ private static final Path CONFIG_FILE = FabricLoader.getInstance().getConfigDir().resolve("skyblocker.json");
private static final ConfigClassHandler<SkyblockerConfig> HANDLER = ConfigClassHandler.createBuilder(SkyblockerConfig.class)
.serializer(config -> GsonConfigSerializerBuilder.create(config)
- .setPath(PATH)
+ .setPath(CONFIG_FILE)
.setJson5(false)
.appendGsonBuilder(builder -> builder
.setFieldNamingPolicy(FieldNamingPolicy.IDENTITY)
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();