From e992b27d0414955bee634f7b6cef4ba32a264db9 Mon Sep 17 00:00:00 2001 From: alemi Date: Mon, 27 Feb 2023 03:46:28 +0100 Subject: feat: allow to set specific state via toggle cmd --- src/main/java/ftbsc/bscv/modules/Module.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/ftbsc/bscv/modules/Module.java b/src/main/java/ftbsc/bscv/modules/Module.java index 57a5a00..6ac71b3 100644 --- a/src/main/java/ftbsc/bscv/modules/Module.java +++ b/src/main/java/ftbsc/bscv/modules/Module.java @@ -1,9 +1,8 @@ package ftbsc.bscv.modules; import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.arguments.BoolArgumentType; -import ftbsc.bscv.BoSCoVicino; import net.minecraft.command.CommandSource; import net.minecraft.command.Commands; import net.minecraftforge.common.ForgeConfigSpec; @@ -34,17 +33,29 @@ public abstract class Module { .comment(String.format("Enables %s", this.name)) .define("enabled", false); + // TODO: can this be made an util or moved somewhere else? dispatcher.register( Commands.literal(this.name.toLowerCase()) .then( Commands.literal("toggle") + .then( + Commands.argument("state", BoolArgumentType.bool()) + .executes( ctx -> { + boolean value = ctx.getArgument("state", Boolean.class); + if (this.enabled.get() ^ value) { // must change + if (value) { this.enable(); } + else { this.disable(); } + } + return 1; + }) + ) .executes(ctx -> { this.toggle(); return 1; }) ) .executes(ctx -> { - log(String.format("=[ %s ]%s", this.name, this.enabled.get() ? "+" : "")); + log(String.format("%s [%s]", this.name, this.enabled.get() ? "ON" : "OFF")); // TODO: print all mod options! return 1; }) -- cgit v1.2.3-56-ga3b1