diff --git a/common b/common index f139ff5..2e72fc5 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit f139ff5bd3ed2ef8be151b5c665f8331532032eb +Subproject commit 2e72fc5d6b2b76dc90b3c6de2dfd556f49d496d1 diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/mixins/MinecraftClientMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/mixins/MinecraftClientMixin.java index f871430..0a6ae53 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/mixins/MinecraftClientMixin.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/mixins/MinecraftClientMixin.java @@ -2,27 +2,32 @@ package org.saturnclient.impl.mixins; import java.io.File; import java.io.InputStream; +import java.util.UUID; +import org.jetbrains.annotations.Nullable; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.game.MinecraftClientRef; import org.saturnclient.common.ref.render.WindowRef; -import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.ui.SaturnScreen; import org.saturnclient.ui.SaturnScreenFabric; import org.saturnclient.ui.screens.TitleMenu; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.option.OptionsScreen; import net.minecraft.client.gui.screen.world.SelectWorldScreen; +import net.minecraft.client.option.GameOptions; +import net.minecraft.client.session.Session; import net.minecraft.client.util.Window; import net.minecraft.resource.ReloadableResourceManagerImpl; import net.minecraft.util.Identifier; @Mixin(MinecraftClient.class) -public class MinecraftClientMixin implements MinecraftClientRef { +public abstract class MinecraftClientMixin implements MinecraftClientRef { @Shadow public File runDirectory; @@ -30,7 +35,20 @@ public class MinecraftClientMixin implements MinecraftClientRef { private Window window; @Shadow - public ReloadableResourceManagerImpl resourceManager; + private ReloadableResourceManagerImpl resourceManager; + + @Shadow + public GameOptions options; + + @Shadow + private Session session; + + @Shadow + public abstract void setScreen(@Nullable Screen screen); + + @Shadow + @Override + public abstract void scheduleStop(); @Override public File getRunDirectory() { @@ -53,7 +71,7 @@ public class MinecraftClientMixin implements MinecraftClientRef { @Override public void setScreen(SaturnScreen screen) { - SaturnClient.client.setScreen(new SaturnScreenFabric(screen)); + this.setScreen(new SaturnScreenFabric(screen)); } @Override @@ -62,16 +80,46 @@ public class MinecraftClientMixin implements MinecraftClientRef { switch (screen) { case SelectWorld: - SaturnClient.client.setScreen(new SelectWorldScreen(exitTarget)); + this.setScreen(new SelectWorldScreen(exitTarget)); break; case Multiplayer: - SaturnClient.client.setScreen(new MultiplayerScreen(exitTarget)); + this.setScreen(new MultiplayerScreen(exitTarget)); break; case Options: - SaturnClient.client.setScreen(new OptionsScreen(exitTarget, SaturnClient.client.options)); + this.setScreen(new OptionsScreen(exitTarget, this.options)); break; } } + + @Override + public String getAccessToken() { + if (session == null) { + return null; + } + + return this.session.getAccessToken(); + } + + @Override + public UUID getUuid() { + if (session == null) { + return null; + } + return this.session.getUuidOrNull(); + } + + @Override + public String getUsername() { + if (session == null) { + return null; + } + return this.session.getUsername(); + } + + @Override + public void onClientStopping(Runnable handler) { + ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> handler.run()); + } } diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java index c9cd4aa..2ef99a1 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/provider/SaturnProviderImpl.java @@ -12,7 +12,6 @@ import org.saturnclient.saturnclient.SaturnClient; import dev.kosmx.playerAnim.api.layered.AnimationStack; import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationAccess; import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationRegistry; -import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.util.Identifier; @@ -51,38 +50,6 @@ public class SaturnProviderImpl implements SaturnProvider { } } - @Override - public String getAccessToken() { - var session = SaturnClient.client.getSession(); - if (session == null) { - return null; - } - return session.getAccessToken(); - } - - @Override - public UUID getUuid() { - var session = SaturnClient.client.getSession(); - if (session == null) { - return null; - } - return session.getUuidOrNull(); - } - - @Override - public String getUsername() { - var session = SaturnClient.client.getSession(); - if (session == null) { - return null; - } - return session.getUsername(); - } - - @Override - public void onClientStopping(Runnable handler) { - ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> handler.run()); - } - @Override public void logInfo(String message) { SaturnClient.LOGGER.info(message); @@ -98,11 +65,6 @@ public class SaturnProviderImpl implements SaturnProvider { SaturnClient.LOGGER.error(message, throwable); } - @Override - public void stop() { - SaturnClient.client.scheduleStop(); - } - @Override public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi) { IdentifierUtils.registerBufferedImageTextureFast((Identifier) (Object) i, bi);