mirror of
https://github.com/architectury/architectury-api.git
synced 2026-03-28 03:56:59 -05:00
Fix #451
This commit is contained in:
@@ -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 class ScreenHooksImpl {
|
||||
}
|
||||
|
||||
public static <T extends AbstractWidget & Renderable & NarratableEntry> T addRenderableWidget(Screen screen, T widget) {
|
||||
return ((ScreenAccessor) screen).invokeAddRenderableWidget(widget);
|
||||
return screen.addRenderableWidget(widget);
|
||||
}
|
||||
|
||||
public static <T extends Renderable> T addRenderableOnly(Screen screen, T listener) {
|
||||
return ((ScreenAccessor) screen).invokeAddRenderableOnly(listener);
|
||||
return screen.addRenderableOnly(listener);
|
||||
}
|
||||
|
||||
public static <T extends GuiEventListener & NarratableEntry> T addWidget(Screen screen, T listener) {
|
||||
return ((ScreenAccessor) screen).invokeAddWidget(listener);
|
||||
return screen.addWidget(listener);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
// 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);
|
||||
}
|
||||
|
||||
@@ -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 extends GuiEventListener & Renderable & NarratableEntry> T invokeAddRenderableWidget(T arg);
|
||||
|
||||
@Invoker("addRenderableOnly")
|
||||
<T extends Renderable> T invokeAddRenderableOnly(T arg);
|
||||
|
||||
@Invoker("addWidget")
|
||||
<T extends GuiEventListener & NarratableEntry> T invokeAddWidget(T arg);
|
||||
}
|
||||
@@ -51,7 +51,7 @@ public class ArchitecturyMixinPlugin implements IMixinConfigPlugin {
|
||||
@Override
|
||||
public List<String> getMixins() {
|
||||
return ArchitecturyTarget.getCurrentTarget().equals("forge")
|
||||
? List.of("minecraftforge.MixinChunkSerializer")
|
||||
? List.of()
|
||||
: List.of("neoforge.MixinChunkSerializer");
|
||||
}
|
||||
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
"minVersion": "0.8",
|
||||
"client": [
|
||||
"MixinClientLevel",
|
||||
"MixinMinecraft",
|
||||
"ScreenAccessor"
|
||||
"MixinMinecraft"
|
||||
],
|
||||
"mixins": [
|
||||
"MixinEntitySpawnExtension",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"required": true,
|
||||
"package": "dev.architectury.mixin.forge",
|
||||
"compatibilityLevel": "JAVA_16",
|
||||
"minVersion": "0.8",
|
||||
"client": [
|
||||
],
|
||||
"mixins": [
|
||||
"minecraftforge.MixinChunkSerializer"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
@@ -69,6 +69,7 @@ remapJar {
|
||||
input.set shadowJar.archiveFile
|
||||
dependsOn shadowJar
|
||||
archiveClassifier = null
|
||||
atAccessWideners.add "architectury.accessWidener"
|
||||
}
|
||||
|
||||
task renameJarForPublication(type: Zip, dependsOn: remapJar) {
|
||||
|
||||
Reference in New Issue
Block a user