From 27c5bafb6b3ad175e70a006eb684e4e2f834277d Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 6 Mar 2026 11:37:24 +0100 Subject: [PATCH] Client mixin --- .../mixin/MinecraftClientMixin.java | 36 +++++++++++++++++++ .../main/resources/saturnclient.mixins.json | 3 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 versions/1.21.4/src/main/java/org/saturnclient/saturnclient/mixin/MinecraftClientMixin.java diff --git a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/mixin/MinecraftClientMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/mixin/MinecraftClientMixin.java new file mode 100644 index 0000000..d47f259 --- /dev/null +++ b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/mixin/MinecraftClientMixin.java @@ -0,0 +1,36 @@ +package org.saturnclient.saturnclient.mixin; + +import java.io.File; +import java.io.InputStream; + +import org.saturnclient.common.minecraft.IMinecraftClient; +import org.saturnclient.common.minecraft.bindings.SaturnIdentifier; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.resource.ReloadableResourceManagerImpl; +import net.minecraft.util.Identifier; + +@Mixin(MinecraftClient.class) +public class MinecraftClientMixin implements IMinecraftClient { + @Shadow + public File runDirectory; + + @Shadow + public ReloadableResourceManagerImpl resourceManager; + + @Override + public File getRunDirectory() { + return runDirectory; + } + + @Override + public InputStream getResource(SaturnIdentifier identifier) { + try { + return resourceManager.getResource((Identifier) identifier.inner).get().getInputStream(); + } catch (Exception e) { + return null; + } + } +} diff --git a/versions/1.21.4/src/main/resources/saturnclient.mixins.json b/versions/1.21.4/src/main/resources/saturnclient.mixins.json index 3bc9ccc..b7aa28a 100644 --- a/versions/1.21.4/src/main/resources/saturnclient.mixins.json +++ b/versions/1.21.4/src/main/resources/saturnclient.mixins.json @@ -10,7 +10,8 @@ "WhoAmI", "DrawContextAccessor", "SplashOverlayMixin", - "SetScreenMixin" + "SetScreenMixin", + "MinecraftClientMixin" ], "injectors": { "defaultRequire": 1