diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index a237e16..1a6c933 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -2,9 +2,7 @@ package org.saturnclient.saturnclient; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; -import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.TitleScreen; import org.saturnclient.modules.ModManager; import org.saturnclient.saturnclient.auth.Auth; @@ -12,7 +10,6 @@ import org.saturnclient.saturnclient.config.ConfigManager; import org.saturnclient.saturnclient.cosmetics.Hats; import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks; import org.saturnclient.saturnclient.event.KeyInputHandler; -import org.saturnclient.ui2.screens.TitleMenu; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,12 +32,6 @@ public class SaturnClient implements ModInitializer { ModManager.init(); ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save()); - ScreenEvents.BEFORE_INIT.register((client, screen, scaledWidth, scaledHeight) -> { - if (SaturnClientConfig.saturnTitleScreen.value && screen instanceof TitleScreen - && !(screen instanceof TitleMenu)) { - client.setScreen(new TitleMenu()); - } - }); SpecialModelLoaderEvents.LOAD_SCOPE.register(() -> { return (resourceManager, location) -> MOD_ID.equals(location.getNamespace()); diff --git a/src/main/java/org/saturnclient/saturnclient/config/ThemeManager.java b/src/main/java/org/saturnclient/saturnclient/config/ThemeManager.java index 327c418..4e68e63 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/ThemeManager.java +++ b/src/main/java/org/saturnclient/saturnclient/config/ThemeManager.java @@ -135,6 +135,8 @@ public class ThemeManager { cachedThemeJson = JsonParser.parseString( new String(Files.readAllBytes(themeFile.toPath()))).getAsJsonObject(); + + SaturnClient.LOGGER.info("Theme loaded"); } catch (IOException e) { SaturnClient.LOGGER.error("Error reading the theme file", e); } diff --git a/src/main/java/org/saturnclient/saturnclient/mixin/TitleScreenMixin.java b/src/main/java/org/saturnclient/saturnclient/mixin/TitleScreenMixin.java new file mode 100644 index 0000000..44151c1 --- /dev/null +++ b/src/main/java/org/saturnclient/saturnclient/mixin/TitleScreenMixin.java @@ -0,0 +1,22 @@ +package org.saturnclient.saturnclient.mixin; + +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.saturnclient.SaturnClientConfig; +import org.saturnclient.ui2.screens.TitleMenu; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.client.gui.screen.TitleScreen; + +@Mixin(TitleScreen.class) +public class TitleScreenMixin { + @Inject(method = "init", at = @At("HEAD"), cancellable = true) + private void onInit(CallbackInfo ci) { + if (SaturnClientConfig.saturnTitleScreen.value) { + SaturnClient.client.setScreen(new TitleMenu()); + ci.cancel(); + } + } +} diff --git a/src/main/resources/saturnclient.mixins.json b/src/main/resources/saturnclient.mixins.json index f0a06a3..bd16a89 100644 --- a/src/main/resources/saturnclient.mixins.json +++ b/src/main/resources/saturnclient.mixins.json @@ -9,7 +9,8 @@ "PlayerEntityRendererMixin", "WhoAmI", "SaturnReload", - "DrawContextAccessor" + "DrawContextAccessor", + "TitleScreenMixin" ], "injectors": { "defaultRequire": 1