diff --git a/forge/src/main/java/dev/architectury/hooks/client/screen/forge/ScreenHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/client/screen/forge/ScreenHooksImpl.java index 93461487..f7acc49c 100644 --- a/forge/src/main/java/dev/architectury/hooks/client/screen/forge/ScreenHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/client/screen/forge/ScreenHooksImpl.java @@ -19,7 +19,6 @@ package dev.architectury.hooks.client.screen.forge; -import dev.architectury.mixin.forge.ScreenAccessor; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.Renderable; import net.minecraft.client.gui.components.events.GuiEventListener; @@ -38,14 +37,14 @@ public static List getRenderables(Screen screen) { } public static T addRenderableWidget(Screen screen, T widget) { - return ((ScreenAccessor) screen).invokeAddRenderableWidget(widget); + return screen.addRenderableWidget(widget); } public static T addRenderableOnly(Screen screen, T listener) { - return ((ScreenAccessor) screen).invokeAddRenderableOnly(listener); + return screen.addRenderableOnly(listener); } public static T addWidget(Screen screen, T listener) { - return ((ScreenAccessor) screen).invokeAddWidget(listener); + return screen.addWidget(listener); } } diff --git a/forge/src/main/java/dev/architectury/mixin/forge/MixinMinecraft.java b/forge/src/main/java/dev/architectury/mixin/forge/MixinMinecraft.java index 562414b1..841046a2 100644 --- a/forge/src/main/java/dev/architectury/mixin/forge/MixinMinecraft.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/MixinMinecraft.java @@ -29,7 +29,7 @@ // adopted from fabric @Mixin(Minecraft.class) public abstract class MixinMinecraft { - @Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;gameThread:Ljava/lang/Thread;", shift = At.Shift.AFTER, ordinal = 0), method = "run") + @Inject(at = @At(value = "INVOKE", target = "Ljava/lang/Runtime;getRuntime()Ljava/lang/Runtime;", ordinal = 0), method = "run") private void onStart(CallbackInfo ci) { ClientLifecycleEvent.CLIENT_STARTED.invoker().stateChanged((Minecraft) (Object) this); } diff --git a/forge/src/main/java/dev/architectury/mixin/forge/ScreenAccessor.java b/forge/src/main/java/dev/architectury/mixin/forge/ScreenAccessor.java deleted file mode 100644 index 31977d40..00000000 --- a/forge/src/main/java/dev/architectury/mixin/forge/ScreenAccessor.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * This file is part of architectury. - * Copyright (C) 2020, 2021, 2022 architectury - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package dev.architectury.mixin.forge; - -import net.minecraft.client.gui.components.Renderable; -import net.minecraft.client.gui.components.events.GuiEventListener; -import net.minecraft.client.gui.narration.NarratableEntry; -import net.minecraft.client.gui.screens.Screen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(Screen.class) -public interface ScreenAccessor { - @Invoker("addRenderableWidget") - T invokeAddRenderableWidget(T arg); - - @Invoker("addRenderableOnly") - T invokeAddRenderableOnly(T arg); - - @Invoker("addWidget") - T invokeAddWidget(T arg); -} diff --git a/forge/src/main/java/dev/architectury/plugin/forge/ArchitecturyMixinPlugin.java b/forge/src/main/java/dev/architectury/plugin/forge/ArchitecturyMixinPlugin.java index 315b5356..cd95d776 100644 --- a/forge/src/main/java/dev/architectury/plugin/forge/ArchitecturyMixinPlugin.java +++ b/forge/src/main/java/dev/architectury/plugin/forge/ArchitecturyMixinPlugin.java @@ -51,7 +51,7 @@ public void acceptTargets(Set myTargets, Set otherTargets) { @Override public List getMixins() { return ArchitecturyTarget.getCurrentTarget().equals("forge") - ? List.of("minecraftforge.MixinChunkSerializer") + ? List.of() : List.of("neoforge.MixinChunkSerializer"); } diff --git a/forge/src/main/resources/architectury.mixins.json b/forge/src/main/resources/architectury.mixins.json index 4b90c19b..2ebafd4d 100644 --- a/forge/src/main/resources/architectury.mixins.json +++ b/forge/src/main/resources/architectury.mixins.json @@ -6,8 +6,7 @@ "minVersion": "0.8", "client": [ "MixinClientLevel", - "MixinMinecraft", - "ScreenAccessor" + "MixinMinecraft" ], "mixins": [ "MixinEntitySpawnExtension", diff --git a/minecraftforge/build.gradle b/minecraftforge/build.gradle index c93ab596..2d870236 100644 --- a/minecraftforge/build.gradle +++ b/minecraftforge/build.gradle @@ -9,6 +9,7 @@ loom { forge { mixinConfig "architectury.mixins.json" mixinConfig "architectury-common.mixins.json" + mixinConfig "architectury-forge.mixins.json" convertAccessWideners = true extraAccessWideners.add loom.accessWidenerPath.get().asFile.name diff --git a/minecraftforge/src/main/resources/architectury-forge.mixins.json b/minecraftforge/src/main/resources/architectury-forge.mixins.json new file mode 100644 index 00000000..a95e797e --- /dev/null +++ b/minecraftforge/src/main/resources/architectury-forge.mixins.json @@ -0,0 +1,14 @@ +{ + "required": true, + "package": "dev.architectury.mixin.forge", + "compatibilityLevel": "JAVA_16", + "minVersion": "0.8", + "client": [ + ], + "mixins": [ + "minecraftforge.MixinChunkSerializer" + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/neoforge/build.gradle b/neoforge/build.gradle index 6d93d761..f9b51c05 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -69,6 +69,7 @@ remapJar { input.set shadowJar.archiveFile dependsOn shadowJar archiveClassifier = null + atAccessWideners.add "architectury.accessWidener" } task renameJarForPublication(type: Zip, dependsOn: remapJar) {