From e49c78a9b10c8699dc2ab6031433c7413994d9ce Mon Sep 17 00:00:00 2001 From: Ike Johnson-Woods Date: Sun, 12 Jul 2026 19:21:19 +0800 Subject: [PATCH 1/3] Port to 26.2 --- build.gradle | 2 -- gradle.properties | 2 +- .../mixin/client/MinecraftMixin.java | 17 ++++++----------- .../resources/META-INF/accesstransformer.cfg | 2 -- .../resources/META-INF/neoforge.mods.toml | 4 +--- 5 files changed, 8 insertions(+), 19 deletions(-) delete mode 100644 src/utilmod/resources/META-INF/accesstransformer.cfg diff --git a/build.gradle b/build.gradle index 04dcd75..634f391 100644 --- a/build.gradle +++ b/build.gradle @@ -26,8 +26,6 @@ sourceSets { neoForge { version = project.neoforgeVersion - accessTransformers.from("src/utilmod/resources/META-INF/accesstransformer.cfg") - validateAccessTransformers = true mods { spl { diff --git a/gradle.properties b/gradle.properties index b441ce5..caaa4e0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,4 @@ org.gradle.parallel=true org.gradle.caching=true org.gradle.configuration-cache=false -neoforgeVersion=26.1.0.18-beta \ No newline at end of file +neoforgeVersion=26.2.0.11-beta \ No newline at end of file diff --git a/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/MinecraftMixin.java b/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/MinecraftMixin.java index 90698c3..392cf46 100644 --- a/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/MinecraftMixin.java +++ b/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/MinecraftMixin.java @@ -2,32 +2,27 @@ import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod; import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.mojang.realmsclient.client.RealmsClient; import net.forgecraft.serverpacklocator.ModAccessor; import net.minecraft.client.Minecraft; +import net.minecraft.client.GameLoadCookie; +import net.minecraft.client.gui.Gui; import net.minecraft.client.main.GameConfig; import net.minecraft.client.multiplayer.resolver.ServerAddress; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; -@Mixin(Minecraft.class) +@Mixin(Gui.class) public abstract class MinecraftMixin { - @Unique - private Minecraft serverpacklocator$getCurrentInstance() { - return (Minecraft) (Object) this; - } - @WrapMethod(method = "buildInitialScreens") - private Runnable serverpacklocator$buildInitialScreens(@Nullable Minecraft.GameLoadCookie cookie, Operation operation) { + private Runnable serverpacklocator$buildInitialScreens(@Nullable GameLoadCookie cookie, Operation operation) { // parse server address var serverAddress = ServerAddress.parseString(ModAccessor.getQuickPlayServer()); if ((cookie == null || !cookie.quickPlayData().isEnabled()) && !serverAddress.getHost().equals("server.invalid")) { - RealmsClient realmsclient = RealmsClient.getOrCreate(serverpacklocator$getCurrentInstance()); - cookie = new Minecraft.GameLoadCookie(realmsclient, new GameConfig.QuickPlayData( + RealmsClient realmsclient = RealmsClient.getOrCreate(Minecraft.getInstance()); + cookie = new GameLoadCookie(realmsclient, new GameConfig.QuickPlayData( null, new GameConfig.QuickPlayMultiplayerData(serverAddress.toString()) )); diff --git a/src/utilmod/resources/META-INF/accesstransformer.cfg b/src/utilmod/resources/META-INF/accesstransformer.cfg deleted file mode 100644 index 623c0ef..0000000 --- a/src/utilmod/resources/META-INF/accesstransformer.cfg +++ /dev/null @@ -1,2 +0,0 @@ -public net.minecraft.client.Minecraft$GameLoadCookie -public net.minecraft.client.Minecraft$GameLoadCookie (Lcom/mojang/realmsclient/client/RealmsClient;Lnet/minecraft/client/main/GameConfig$QuickPlayData;)V \ No newline at end of file diff --git a/src/utilmod/resources/META-INF/neoforge.mods.toml b/src/utilmod/resources/META-INF/neoforge.mods.toml index 7eaa791..0cfab35 100644 --- a/src/utilmod/resources/META-INF/neoforge.mods.toml +++ b/src/utilmod/resources/META-INF/neoforge.mods.toml @@ -13,6 +13,4 @@ Server Pack Locator Utility mod. This mod is distributed as part of the ServerPackLocator to allow interaction with the game. ''' [[mixins]] -config="utilitymod.mixin.json" -[[accessTransformers]] -file="META-INF/accesstransformer.cfg" \ No newline at end of file +config="utilitymod.mixin.json" \ No newline at end of file From 49de47e3fd7172b7ad63188dc60da8ed528c76c2 Mon Sep 17 00:00:00 2001 From: Apex Date: Mon, 27 Jul 2026 21:43:27 +0100 Subject: [PATCH 2/3] rename `MinecraftMixin` -> `GuiMixin` --- .../mixin/client/{MinecraftMixin.java => GuiMixin.java} | 5 ++--- src/utilmod/resources/utilitymod.mixin.json | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) rename src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/{MinecraftMixin.java => GuiMixin.java} (97%) diff --git a/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/MinecraftMixin.java b/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/GuiMixin.java similarity index 97% rename from src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/MinecraftMixin.java rename to src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/GuiMixin.java index 392cf46..3327fff 100644 --- a/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/MinecraftMixin.java +++ b/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/GuiMixin.java @@ -4,8 +4,8 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.mojang.realmsclient.client.RealmsClient; import net.forgecraft.serverpacklocator.ModAccessor; -import net.minecraft.client.Minecraft; import net.minecraft.client.GameLoadCookie; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.client.main.GameConfig; import net.minecraft.client.multiplayer.resolver.ServerAddress; @@ -13,8 +13,7 @@ import org.spongepowered.asm.mixin.Mixin; @Mixin(Gui.class) -public abstract class MinecraftMixin { - +public abstract class GuiMixin { @WrapMethod(method = "buildInitialScreens") private Runnable serverpacklocator$buildInitialScreens(@Nullable GameLoadCookie cookie, Operation operation) { // parse server address diff --git a/src/utilmod/resources/utilitymod.mixin.json b/src/utilmod/resources/utilitymod.mixin.json index d4f857c..4a4c0e0 100644 --- a/src/utilmod/resources/utilitymod.mixin.json +++ b/src/utilmod/resources/utilitymod.mixin.json @@ -7,7 +7,7 @@ "BrandingControlMixin" ], "client": [ - "client.MinecraftMixin" + "client.GuiMixin" ], "server": [], "injectors": { From 3d6c1e4ee5c98ee24e70ba2567e8199078011082 Mon Sep 17 00:00:00 2001 From: Apex Date: Mon, 27 Jul 2026 21:45:41 +0100 Subject: [PATCH 3/3] Shadow `Minecraft` field --- .../forgecraft/serverpackutility/mixin/client/GuiMixin.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/GuiMixin.java b/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/GuiMixin.java index 3327fff..3dfdb2e 100644 --- a/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/GuiMixin.java +++ b/src/utilmod/java/net/forgecraft/serverpackutility/mixin/client/GuiMixin.java @@ -11,16 +11,20 @@ import net.minecraft.client.multiplayer.resolver.ServerAddress; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; @Mixin(Gui.class) public abstract class GuiMixin { + @Shadow + private Minecraft minecraft; + @WrapMethod(method = "buildInitialScreens") private Runnable serverpacklocator$buildInitialScreens(@Nullable GameLoadCookie cookie, Operation operation) { // parse server address var serverAddress = ServerAddress.parseString(ModAccessor.getQuickPlayServer()); if ((cookie == null || !cookie.quickPlayData().isEnabled()) && !serverAddress.getHost().equals("server.invalid")) { - RealmsClient realmsclient = RealmsClient.getOrCreate(Minecraft.getInstance()); + RealmsClient realmsclient = RealmsClient.getOrCreate(minecraft); cookie = new GameLoadCookie(realmsclient, new GameConfig.QuickPlayData( null, new GameConfig.QuickPlayMultiplayerData(serverAddress.toString())