diff options
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/Module.java')
| -rw-r--r-- | src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/Module.java | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/Module.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/Module.java index 9334a53..f42b473 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/Module.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/Module.java @@ -1,13 +1,22 @@ package net.justlearning.arslaan3102.arslaansmagichax.modules; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.BooleanSetting; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.ModeSetting; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.NumberSetting; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.Setting; import net.minecraft.client.MinecraftClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + public abstract class Module { private final String name; private final String description; private final Category category; - public MinecraftClient mc; - private final int glfwKeybinding; + public static MinecraftClient mc; + private int glfwKeybinding; + private final List<Setting> settings = new ArrayList<>(); private boolean enabled = false; @@ -49,8 +58,45 @@ public abstract class Module { if (enabled != state) toggle(); } + public void setGlfwKeybinding(int glfwKeybinding) { + this.glfwKeybinding = glfwKeybinding; + } + protected void onEnable() {} protected void onDisable() {} public void tick() {} + + protected <T extends Setting> T addSetting(T setting) { + settings.add(setting); + return setting; + } + + public List<Setting> getSettings() { + return settings; + } + + public Optional<Setting> getSetting(String name) { + return settings.stream() + .filter(s -> s.getName().equalsIgnoreCase(name)) + .findFirst(); + } + + public Optional<BooleanSetting> getBoolean(String name) { + return getSetting(name) + .filter(s -> s instanceof BooleanSetting) + .map(s -> (BooleanSetting) s); + } + + public Optional<NumberSetting> getNumber(String name) { + return getSetting(name) + .filter(s -> s instanceof NumberSetting) + .map(s -> (NumberSetting) s); + } + + public Optional<ModeSetting> getMode(String name) { + return getSetting(name) + .filter(s -> s instanceof ModeSetting) + .map(s -> (ModeSetting) s); + } }
\ No newline at end of file |
