summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
author alemi <me@alemi.dev>2023-02-28 17:00:05 +0100
committer alemi <me@alemi.dev>2023-02-28 17:00:05 +0100
commitd497c1d976a75eef67fb508a1c40ce7016589295 (patch)
treece5fd4e47f7189b8912557aa6011435faa065a76 /src/main
parentdd5bb2205b4077fd793a7fbca7e6e4772dffdbe8 (diff)
feat: some initial work on Abstract Module
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/ftbsc/bscv/modules/Module.java21
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) {