diff options
Diffstat (limited to 'src/main/java/ftbsc')
-rw-r--r-- | src/main/java/ftbsc/bscv/modules/Module.java | 17 |
1 files 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; }) |