diff --git a/src/main/java/org/saturnclient/modules/ModManager.java b/src/main/java/org/saturnclient/modules/ModManager.java index dcfaf3e..a8d57fa 100644 --- a/src/main/java/org/saturnclient/modules/ModManager.java +++ b/src/main/java/org/saturnclient/modules/ModManager.java @@ -5,23 +5,15 @@ import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.util.math.MatrixStack; -import java.util.ArrayList; -import java.util.List; - +import org.saturnclient.modules.mods.*; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.SaturnClientConfig; import org.saturnclient.saturnclient.menus.HudEditor; public class ModManager { - public static List MODS = new ArrayList<>(); - - public static void impl(Class mod) { - try { - MODS.add((Module) mod.getDeclaredConstructor().newInstance()); - } catch (Exception e) { - e.printStackTrace(); - } - } + public static Module[] MODS = { + new Crosshair() + }; public static void init() { ClientTickEvents.START_CLIENT_TICK.register(client -> { diff --git a/src/main/java/org/saturnclient/modules/mods/Crosshair.java b/src/main/java/org/saturnclient/modules/mods/Crosshair.java index ac262e4..7e641d2 100644 --- a/src/main/java/org/saturnclient/modules/mods/Crosshair.java +++ b/src/main/java/org/saturnclient/modules/mods/Crosshair.java @@ -1,6 +1,5 @@ package org.saturnclient.modules.mods; -import org.saturnclient.modules.ModManager; import org.saturnclient.modules.Module; import org.saturnclient.saturnclient.config.NamedProperty; import org.saturnclient.saturnclient.config.Property; @@ -13,10 +12,6 @@ public class Crosshair extends Module { super("Crosshair", "crosshair", enabled, range_indicator); } - static { - ModManager.impl(Crosshair.class); - } - @Override public boolean isEnabled() { return enabled.prop.value; diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 33745c1..e142df8 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -34,21 +34,22 @@ public class SaturnClient implements ModInitializer { LOGGER.info("Initializing " + MOD_ID); client = MinecraftClient.getInstance(); ModManager.init(); + SaturnClientConfig.init(); ThemeManager.load(); ConfigManager.load(); - + ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> {ConfigManager.save(); ThemeManager.save();}); ScreenEvents.BEFORE_INIT.register((client, screen, scaledWidth, scaledHeight) -> { if (SaturnClientConfig.saturnTitleScreen.value && screen instanceof TitleScreen - && !(screen instanceof SaturnMenu)) { + && !(screen instanceof SaturnMenu)) { client.setScreen(new SaturnTitleScreen()); } }); - + SpecialModelLoaderEvents.LOAD_SCOPE.register(() -> { return (resourceManager, location) -> MOD_ID.equals(location.getNamespace()); }); - + KeyInputHandler.register(); if (Auth.authenticate()) { Cloaks.initialize(); diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClientConfig.java b/src/main/java/org/saturnclient/saturnclient/SaturnClientConfig.java index 378ce93..ef5ca98 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClientConfig.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClientConfig.java @@ -12,27 +12,23 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; public class SaturnClientConfig { - public static ConfigManager config = new ConfigManager("Saturn Client"); + public static ConfigManager config; - public static Property color = config.property( - "Primary color", + public static Property color = new Property<>( ColorHelper.getArgb(255, 251, 60, 79), - Property.PropertyType.HEX)); + Property.PropertyType.HEX); - public static Property normal = config.property( - "Default color", + public static Property normal = new Property<>( ColorHelper.getArgb(255, 182, 182, 182), - Property.PropertyType.HEX)); + Property.PropertyType.HEX); - public static Property realisticLogo = config.property( - "Realistic logo", - new Property<>(false)); + public static Property realisticLogo = + new Property<>(false); - public static Property saturnTitleScreen = config.property( - "Saturn client title screen", - new Property<>(true)); + public static Property saturnTitleScreen = + new Property<>(true); public static int WHITE = ColorHelper.getArgb(255, 255, 255, 255); public static TextRenderer textRenderer = null; @@ -56,4 +52,13 @@ public class SaturnClientConfig { public static String getSaturnIndicator() { return realisticLogo.value ? "" : ""; } + + public static void init() { + config = new ConfigManager("Saturn Client"); + + config.property("Primary color", color); + config.property("Default color", normal); + config.property("Realistic logo", realisticLogo); + config.property("Saturn client title screen", saturnTitleScreen); + } } diff --git a/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java b/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java index f8e1404..853ca64 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java +++ b/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java @@ -26,6 +26,7 @@ public class ConfigManager { public ConfigManager(String namespace) { currentMap = new LinkedHashMap<>(); properties.put(namespace, currentMap); + System.out.println("Created namespace: " + namespace); } public ConfigManager(ConfigManager config, String namespace) { @@ -35,10 +36,12 @@ public class ConfigManager { config.property(namespace, namespaceProperty); // Update the parent's state config.currentMap.put(namespace, namespaceProperty); + System.out.println("Created sub-namespace: " + namespace); } // Generic method to store any type of property public Property property(String name, Property value) { + System.out.println("Adding property: " + name); currentMap.put(name, value); return value; } @@ -55,6 +58,7 @@ public class ConfigManager { new String(Files.readAllBytes(configFile.toPath()))).getAsJsonObject(); for (String namespace : properties.keySet()) { + SaturnClient.LOGGER.info("Loading namespace: " + namespace); JsonElement configElement = jsonObject.get(namespace); if (configElement == null) @@ -76,6 +80,8 @@ public class ConfigManager { @SuppressWarnings("unchecked") private static void loadProperties(JsonObject config, Map> propertyMap) { + SaturnClient.LOGGER.info("Loading properties: " + propertyMap); + for (String propertyName : propertyMap.keySet()) { JsonElement c = config.get(propertyName);