diff --git a/src/main/java/dev/dfonline/codeclient/Config.java b/src/main/java/dev/dfonline/codeclient/config/Config.java similarity index 76% rename from src/main/java/dev/dfonline/codeclient/Config.java rename to src/main/java/dev/dfonline/codeclient/config/Config.java index 15ae0c70..3ab7c37d 100644 --- a/src/main/java/dev/dfonline/codeclient/Config.java +++ b/src/main/java/dev/dfonline/codeclient/config/Config.java @@ -1,17 +1,28 @@ -package dev.dfonline.codeclient; +package dev.dfonline.codeclient.config; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; +import dev.dfonline.codeclient.CodeClient; +import dev.dfonline.codeclient.FileManager; import dev.isxander.yacl.api.ConfigCategory; import dev.isxander.yacl.api.Option; import dev.isxander.yacl.api.YetAnotherConfigLib; import dev.isxander.yacl.gui.controllers.TickBoxController; import net.minecraft.text.Text; -public class Config implements ModMenuApi { - private final YetAnotherConfigLib config; +public class Config { + public final YetAnotherConfigLib config; public boolean NoClipEnabled; + public static Config getConfig() { + try { + return CodeClient.gson.fromJson(FileManager.readFile("options.json"), Config.class); + } + catch (Exception ignored) { + return new Config(); + } + } + public Config() { config = YetAnotherConfigLib.createBuilder() .title(Text.literal("CodeClient Config")) @@ -32,8 +43,4 @@ public Config() { .build(); } - @Override - public ConfigScreenFactory getModConfigScreenFactory() { - return parent -> new Config().config.generateScreen(parent); - } } diff --git a/src/main/java/dev/dfonline/codeclient/config/ModMenuIntegration.java b/src/main/java/dev/dfonline/codeclient/config/ModMenuIntegration.java new file mode 100644 index 00000000..122270d9 --- /dev/null +++ b/src/main/java/dev/dfonline/codeclient/config/ModMenuIntegration.java @@ -0,0 +1,11 @@ +package dev.dfonline.codeclient.config; + +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; + +public class ModMenuIntegration implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return parent -> Config.getConfig().config.generateScreen(parent); + } +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index b9e1ad79..a21f7cb9 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -22,7 +22,7 @@ "dev.dfonline.codeclient.CodeClient" ], "modmenu": [ - "dev.dfonline.codeclient.Config" + "dev.dfonline.codeclient.config.ModMenuIntegration" ] }, "mixins": [