From 90f0c0722175466856b82ef65ada129eb972c425 Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Wed, 8 Oct 2025 22:44:10 +1300 Subject: finish clickgui, add more hacks, add settings, add mixins, add packet event buses and packet events, what the cook why did i put so much shit in one commit --- .../arslaansmagichax/modules/Module.java | 50 +++++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/Module.java') 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 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 addSetting(T setting) { + settings.add(setting); + return setting; + } + + public List getSettings() { + return settings; + } + + public Optional getSetting(String name) { + return settings.stream() + .filter(s -> s.getName().equalsIgnoreCase(name)) + .findFirst(); + } + + public Optional getBoolean(String name) { + return getSetting(name) + .filter(s -> s instanceof BooleanSetting) + .map(s -> (BooleanSetting) s); + } + + public Optional getNumber(String name) { + return getSetting(name) + .filter(s -> s instanceof NumberSetting) + .map(s -> (NumberSetting) s); + } + + public Optional getMode(String name) { + return getSetting(name) + .filter(s -> s instanceof ModeSetting) + .map(s -> (ModeSetting) s); + } } \ No newline at end of file -- cgit v1.2.3