diff options
| author | Arslaan Pathan <[email protected]> | 2025-10-08 22:44:10 +1300 |
|---|---|---|
| committer | Arslaan Pathan <[email protected]> | 2025-10-08 22:44:10 +1300 |
| commit | 90f0c0722175466856b82ef65ada129eb972c425 (patch) | |
| tree | c80ab1c31b3e56066a7c6daa9bdd67c6bd4197cf /src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java | |
| parent | 9db037f2508ce99f51f6b9fee54a8e1ad12fe566 (diff) | |
| download | arslaansmagichax-90f0c0722175466856b82ef65ada129eb972c425.tar.xz arslaansmagichax-90f0c0722175466856b82ef65ada129eb972c425.zip | |
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
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java')
| -rw-r--r-- | src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java index 24c24ae..95aa499 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java @@ -1,6 +1,8 @@ package net.justlearning.arslaan3102.arslaansmagichax.modules; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; +import net.justlearning.arslaan3102.arslaansmagichax.ArslaansMagicHax; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.Setting; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -9,11 +11,16 @@ import net.minecraft.client.util.InputUtil; import net.minecraft.text.Text; import net.minecraft.util.math.MathHelper; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.*; import java.util.stream.Collectors; public class ModuleManager { private boolean hudRegistered = false; + private static final String CONFIG_FILE = "ArslaansMagicHax.properties"; private static Map<Module, Boolean> previousKeyState = new HashMap<>(); @@ -94,4 +101,57 @@ public class ModuleManager { y += textRenderer.fontHeight + 2; } } + + public void close() { + for (Module module : modules) { + module.onDisable(); + } + saveModuleStates(); + } + + public void loadModuleStates() { + File file = new File(CONFIG_FILE); + if (!file.exists()) return; + + try (FileInputStream fis = new FileInputStream(file)) { + Properties properties = new Properties(); + properties.load(fis); + + for (Module module : modules) { + String enabled = properties.getProperty(module.getName() + ".enabled"); + if ("true".equals(enabled)) { + module.setEnabled(true); + module.onEnable(); + } else { + module.setEnabled(false); + } + + for (Setting setting : module.getSettings()) { + String value = properties.getProperty(module.getName() + "." + setting.getName()); + if (value != null) { + setting.setValueFromString(value); + } + } + } + } catch (IOException e) { + ArslaansMagicHax.LOGGER.info("Failed to load module states and settings", e); + } + } + + private void saveModuleStates() { + Properties properties = new Properties(); + for (Module module : modules) { + properties.setProperty(module.getName() + ".enabled", String.valueOf(module.isEnabled())); + + for (Setting setting : module.getSettings()) { + properties.setProperty(module.getName() + "." + setting.getName(), setting.getValueAsString()); + } + } + + try (FileOutputStream fos = new FileOutputStream(CONFIG_FILE)) { + properties.store(fos, "Arslaan's Magic Hax - Module States & Settings"); + } catch (IOException e) { + ArslaansMagicHax.LOGGER.error("Failed to save module states and settings", e); + } + } } |
