diff --git a/src/main/java/dev/dfonline/codeclient/FileManager.java b/src/main/java/dev/dfonline/codeclient/FileManager.java index 4489e578..cbf71a38 100644 --- a/src/main/java/dev/dfonline/codeclient/FileManager.java +++ b/src/main/java/dev/dfonline/codeclient/FileManager.java @@ -28,7 +28,10 @@ public static void writeFile(String fileName, String content) throws IOException public static String readFile(String fileName, Charset charset) throws IOException { return Files.readString(Path().resolve(fileName), charset); + } + public static boolean exists(String fileName) { + return Files.exists(Path().resolve(fileName)); } /** diff --git a/src/main/java/dev/dfonline/codeclient/config/Config.java b/src/main/java/dev/dfonline/codeclient/config/Config.java index 704f4d24..d3bc6367 100644 --- a/src/main/java/dev/dfonline/codeclient/config/Config.java +++ b/src/main/java/dev/dfonline/codeclient/config/Config.java @@ -5,7 +5,11 @@ import dev.dfonline.codeclient.FileManager; import dev.dfonline.codeclient.hypercube.actiondump.ActionDump; import dev.isxander.yacl3.api.*; -import dev.isxander.yacl3.api.controller.*; +import dev.isxander.yacl3.api.controller.FloatSliderControllerBuilder; +import dev.isxander.yacl3.api.controller.IntegerFieldControllerBuilder; +import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder; +import dev.isxander.yacl3.api.controller.TickBoxControllerBuilder; +import dev.isxander.yacl3.gui.controllers.cycling.EnumController; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -66,6 +70,9 @@ public static Config getConfig() { catch (Exception exception) { CodeClient.LOGGER.info("Config didn't load: " + exception); instance = new Config(); + if(FileManager.exists("options.json")) { + instance.save(); + } } } return instance; @@ -105,7 +112,7 @@ public YetAnotherConfigLib getLibConfig() { opt -> FileCharSet = opt ) .flag(minecraftClient -> ActionDump.clear()) - .controller(EnumControllerBuilder::create) + .controller(nodeOption -> () -> new EnumController<>(nodeOption, CharSetOption.class)) .build()) .option(Option.createBuilder(boolean.class) .name(Text.literal("Auto Fly")) @@ -154,7 +161,7 @@ public YetAnotherConfigLib getLibConfig() { .controller(opt -> IntegerSliderControllerBuilder.create(opt) .range(0, 30) .step(1)) -// .build()) + .build()) // .option(Option.createBuilder(boolean.class) // .name(Text.literal("Air Control")) // .description(OptionDescription.createBuilder() @@ -166,7 +173,7 @@ public YetAnotherConfigLib getLibConfig() { // opt -> AirControl = opt // ) // .controller(TickBoxController::new) - .build()) +// .build()) .build()) .group(OptionGroup.createBuilder() .name(Text.literal("Interaction")) @@ -224,6 +231,7 @@ public YetAnotherConfigLib getLibConfig() { .controller(opt -> FloatSliderControllerBuilder.create(opt) .range(5f, 10f) .step(0.1f)) + .available(false) .build()) .option(Option.createBuilder(LayerInteractionMode.class) .name(Text.literal("Layer Interaction")) @@ -236,7 +244,7 @@ public YetAnotherConfigLib getLibConfig() { () -> CodeLayerInteractionMode, opt -> CodeLayerInteractionMode = opt ) - .controller(EnumControllerBuilder::create) + .controller(nodeOption -> () -> new EnumController<>(nodeOption, LayerInteractionMode.class)) .build()) .build()) .option(Option.createBuilder(boolean.class) @@ -290,7 +298,7 @@ public YetAnotherConfigLib getLibConfig() { () -> AutoNode, opt -> AutoNode = opt ) - .controller(EnumControllerBuilder::create) + .controller(nodeOption -> () -> new EnumController<>(nodeOption, Node.class)) // .available(AutoJoin) .build()) .option(Option.createBuilder(boolean.class)