diff options
author | alemi <me@alemi.dev> | 2023-02-28 17:00:05 +0100 |
---|---|---|
committer | alemi <me@alemi.dev> | 2023-02-28 17:00:05 +0100 |
commit | d497c1d976a75eef67fb508a1c40ce7016589295 (patch) | |
tree | ce5fd4e47f7189b8912557aa6011435faa065a76 /src/main/java | |
parent | dd5bb2205b4077fd793a7fbca7e6e4772dffdbe8 (diff) |
feat: some initial work on Abstract Module
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/ftbsc/bscv/modules/Module.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/ftbsc/bscv/modules/Module.java b/src/main/java/ftbsc/bscv/modules/Module.java index 6ac71b3..0f73a7a 100644 --- a/src/main/java/ftbsc/bscv/modules/Module.java +++ b/src/main/java/ftbsc/bscv/modules/Module.java @@ -22,12 +22,10 @@ public abstract class Module { public final String name; public final Group group; - public final ForgeConfigSpec.ConfigValue<Boolean> enabled; - protected Module(String name, Group group, ForgeConfigSpec.Builder builder, CommandDispatcher<CommandSource> dispatcher) { - this.name = name; - this.group = group; + protected ForgeConfigSpec.ConfigValue<Boolean> enabled; + public void initialize(ForgeConfigSpec.Builder builder, CommandDispatcher<CommandSource> dispatcher) { builder.push(this.name.toLowerCase()); this.enabled = builder .comment(String.format("Enables %s", this.name)) @@ -60,6 +58,21 @@ public abstract class Module { return 1; }) ); + + this.register(builder, dispatcher); + + builder.pop(); + } + + public abstract void register(ForgeConfigSpec.Builder builder, CommandDispatcher<CommandSource> dispatcher); + + protected Module(ForgeConfigSpec.Builder builder, CommandDispatcher<CommandSource> dispatcher) { + // TODO can this be done in a less magic way? + String[] pkg = this.getClass().getPackage().getName().split("."); + this.group = Group.valueOf(pkg[pkg.length-1].toUpperCase()); + this.name = this.getClass().getName(); + + this.initialize(builder, dispatcher); } public Module done(ForgeConfigSpec.Builder builder) { |