diff --git a/src/main/java/me/kawaiizenbo/moonlight/Config.java b/src/main/java/me/kawaiizenbo/moonlight/Config.java index 654ae49..69588e3 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/Config.java +++ b/src/main/java/me/kawaiizenbo/moonlight/Config.java @@ -14,10 +14,13 @@ import me.kawaiizenbo.moonlight.module.ModuleManager; import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; +import me.kawaiizenbo.moonlight.module.settings.IndexSetting; import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; import me.kawaiizenbo.moonlight.module.settings.Setting; import me.kawaiizenbo.moonlight.module.settings.StringSetting; import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; +import me.kawaiizenbo.moonlight.ui.hud.HUDModule; +import me.kawaiizenbo.moonlight.ui.hud.HUDModuleManager; import net.minecraft.client.MinecraftClient; public class Config @@ -57,19 +60,60 @@ public class Config { ms.put(s.name, ((DoubleSetting)s).value); } - if (s instanceof StringSetting) + else if (s instanceof StringSetting) { ms.put(s.name, ((StringSetting)s).value); } else if (s instanceof KeycodeSetting) { ms.put(s.name, ((KeycodeSetting)s).value); + } + else if (s instanceof IndexSetting) + { + ms.put(s.name, ((IndexSetting)s).index); } } mo.put("settings", ms); mi.put(m.name, mo); } config.put("modules", mi); + + HUDModuleManager.INSTANCE = new HUDModuleManager(); + Map hi = new HashMap<>(); + for (HUDModule h : HUDModuleManager.INSTANCE.modules) + { + Map ho = new HashMap<>(); + ho.put("enabled", h.enabled); + Map hs = new HashMap<>(); + for (Setting s : h.settings) + { + if (s instanceof BooleanSetting) + { + hs.put(s.name, ((BooleanSetting)s).value); + } + else if (s instanceof DoubleSetting) + { + hs.put(s.name, ((DoubleSetting)s).value); + } + else if (s instanceof StringSetting) + { + hs.put(s.name, ((StringSetting)s).value); + } + else if (s instanceof KeycodeSetting) + { + hs.put(s.name, ((KeycodeSetting)s).value); + } + else if (s instanceof IndexSetting) + { + hs.put(s.name, ((IndexSetting)s).index); + } + } + ho.put("settings", hs); + ho.put("x", h.x); + ho.put("y", h.y); + hi.put(h.name, ho); + } + config.put("hud", hi); int xOffset = 4; int yOffset = 4; Map pi = new HashMap<>(); @@ -91,7 +135,8 @@ public class Config ClickGUIScreen.INSTANCE = new ClickGUIScreen(); } - public void load() throws IOException + @SuppressWarnings("unchecked") + public void load() throws IOException { try { diff --git a/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java b/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java index 7b9f4c9..628dca0 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java +++ b/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java @@ -12,11 +12,14 @@ import me.kawaiizenbo.moonlight.module.ModuleManager; import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; +import me.kawaiizenbo.moonlight.module.settings.IndexSetting; import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; import me.kawaiizenbo.moonlight.module.settings.Setting; import me.kawaiizenbo.moonlight.module.settings.StringSetting; import me.kawaiizenbo.moonlight.ui.clickgui.CategoryPane; import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; +import me.kawaiizenbo.moonlight.ui.hud.HUDModule; +import me.kawaiizenbo.moonlight.ui.hud.HUDModuleManager; import me.kawaiizenbo.moonlight.util.ColorUtils; public class Moonlight implements ModInitializer @@ -34,6 +37,7 @@ public class Moonlight implements ModInitializer loadConfig(); } + @SuppressWarnings("unchecked") public void loadConfig() { try @@ -60,6 +64,39 @@ public class Moonlight implements ModInitializer else if (s instanceof KeycodeSetting) { ((KeycodeSetting)s).value = ((Double)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name)).intValue(); + } + else if (s instanceof IndexSetting) + { + ((IndexSetting)s).index = ((Double)((Map)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("settings")).get(s.name)).intValue(); + } + } + } + for (HUDModule m : HUDModuleManager.INSTANCE.modules) + { + m.enabled = (boolean)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("enabled"); + m.x = ((Double)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("x")).intValue(); + m.y = ((Double)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("y")).intValue(); + for (Setting s : m.settings) + { + if (s instanceof BooleanSetting) + { + ((BooleanSetting)s).value = (boolean)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name); + } + else if (s instanceof DoubleSetting) + { + ((DoubleSetting)s).value = (Double)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name); + } + else if (s instanceof StringSetting) + { + ((StringSetting)s).value = (String)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name); + } + else if (s instanceof KeycodeSetting) + { + ((KeycodeSetting)s).value = ((Double)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name)).intValue(); + } + else if (s instanceof IndexSetting) + { + ((IndexSetting)s).index = ((Double)((Map)((Map)((Map)CONFIG.config.get("hud")).get(m.name)).get("settings")).get(s.name)).intValue(); } } } @@ -92,19 +129,60 @@ public class Moonlight implements ModInitializer { ms.put(s.name, ((DoubleSetting)s).value); } - if (s instanceof StringSetting) + else if (s instanceof StringSetting) { ms.put(s.name, ((StringSetting)s).value); } else if (s instanceof KeycodeSetting) { ms.put(s.name, ((KeycodeSetting)s).value); + } + else if (s instanceof IndexSetting) + { + ms.put(s.name, ((IndexSetting)s).index); } } mo.put("settings", ms); mi.put(m.name, mo); } CONFIG.config.put("modules", mi); + + Map hi = new HashMap<>(); + for (HUDModule h : HUDModuleManager.INSTANCE.modules) + { + Map ho = new HashMap<>(); + ho.put("enabled", h.enabled); + Map hs = new HashMap<>(); + for (Setting s : h.settings) + { + if (s instanceof BooleanSetting) + { + hs.put(s.name, ((BooleanSetting)s).value); + } + else if (s instanceof DoubleSetting) + { + hs.put(s.name, ((DoubleSetting)s).value); + } + else if (s instanceof StringSetting) + { + hs.put(s.name, ((StringSetting)s).value); + } + else if (s instanceof KeycodeSetting) + { + hs.put(s.name, ((KeycodeSetting)s).value); + } + else if (s instanceof IndexSetting) + { + hs.put(s.name, ((IndexSetting)s).index); + } + } + ho.put("settings", hs); + ho.put("x", h.x); + ho.put("y", h.y); + hi.put(h.name, ho); + } + CONFIG.config.put("hud", hi); + Map pi = new HashMap<>(); for (CategoryPane c : ClickGUIScreen.INSTANCE.categoryPanes) { diff --git a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java index e4dc2a9..a87e8c7 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/me/kawaiizenbo/moonlight/mixin/ClientPlayerEntityMixin.java @@ -24,7 +24,8 @@ public class ClientPlayerEntityMixin } } - @Inject(method = "tick", at = @At(value = "HEAD"), cancellable = true) + @SuppressWarnings("resource") + @Inject(method = "tick", at = @At(value = "HEAD"), cancellable = true) public void onTick(CallbackInfo ci) { for (Module m : ModuleManager.INSTANCE.getEnabledModules()) diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java index fe13345..8fe2c61 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/Fullbright.java @@ -11,7 +11,8 @@ public class Fullbright extends Module super("Fullbright", "Allows you to see in the dark.", Category.RENDER); } - @Override + @SuppressWarnings("unchecked") + @Override public void onEnable() { super.onEnable(); diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java index 423b2ff..43e7dcb 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java @@ -15,6 +15,7 @@ public class ClickGUIScreen extends Screen public static ClickGUIScreen INSTANCE = new ClickGUIScreen(); public ArrayList categoryPanes; + @SuppressWarnings("unchecked") public ClickGUIScreen() { super(Text.literal("ClickGUI")); diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java index 437faff..7fc0499 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java @@ -4,7 +4,6 @@ import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.util.Identifier; public class ModuleButton { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index fb63aca..476fc9c 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -6,6 +6,7 @@ "description": "Utility mod with a focus on stability.", "authors": [ "KawaiiZenbo", + "madeline1805", "BadGamesInc (re-used Hypnotic Code)" ], "contact": {