diff --git a/jGui b/jGui index 26066998..f3bd6dc9 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit 26066998679b0f443c30c959fe7f25bfcdda2f48 +Subproject commit f3bd6dc93499fc6e4fad78897d33d8b8a0d49519 diff --git a/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java b/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java index 9c39e663..cb095cf8 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java +++ b/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java @@ -3,8 +3,6 @@ package com.replaymod.core.mixin; import com.replaymod.core.events.PostRenderWorldCallback; import com.replaymod.core.events.PreRenderHandCallback; -import de.johni0702.minecraft.gui.versions.callbacks.PostRenderHudCallback; -import de.johni0702.minecraft.gui.versions.callbacks.PostRenderScreenCallback; import net.minecraft.client.render.Camera; import net.minecraft.client.render.GameRenderer; import org.spongepowered.asm.mixin.Mixin; @@ -14,30 +12,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(GameRenderer.class) public class MixinGameRenderer { - @Inject( - method = "render", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/gui/hud/InGameHud;draw(F)V", - shift = At.Shift.AFTER - ) - ) - private void postRenderOverlay(float partialTicks, long nanoTime, boolean renderWorld, CallbackInfo ci) { - PostRenderHudCallback.EVENT.invoker().postRenderHud(partialTicks); - } - - @Inject( - method = "render", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/gui/screen/Screen;render(IIF)V", - shift = At.Shift.AFTER - ) - ) - private void postRenderScreen(float partialTicks, long nanoTime, boolean renderWorld, CallbackInfo ci) { - PostRenderScreenCallback.EVENT.invoker().postRenderScreen(partialTicks); - } - @Inject( method = "renderCenter", at = @At( diff --git a/src/main/java/com/replaymod/core/mixin/MixinKeyboardListener.java b/src/main/java/com/replaymod/core/mixin/MixinKeyboardListener.java index cb046983..a0178e16 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinKeyboardListener.java +++ b/src/main/java/com/replaymod/core/mixin/MixinKeyboardListener.java @@ -16,46 +16,5 @@ public class MixinKeyboardListener { KeyBindingEventCallback.EVENT.invoker().onKeybindingEvent(); KeyEventCallback.EVENT.invoker().onKeyEvent(key, scanCode, action, modifiers); } - - //#if MC>=11400 - /* FIXME we currently don't use these but they also don't work since their target is wrapped in a lambda, - see MixinMouseListener for working examples - @Redirect( - method = "onKey", - at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/ParentElement;keyPressed(III)Z") - ) - private boolean keyPressed(ParentElement element, int keyCode, int modifiers, int scanCode) { - if (KeyboardCallback.EVENT.invoker().keyPressed(keyCode, modifiers, scanCode)) { - return true; - } else { - return element.keyPressed(keyCode, modifiers, scanCode); - } - } - - @Redirect( - method = "onKey", - at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/ParentElement;keyReleased(III)Z") - ) - private boolean keyReleased(ParentElement element, int keyCode, int modifiers, int scanCode) { - if (KeyboardCallback.EVENT.invoker().keyReleased(keyCode, modifiers, scanCode)) { - return true; - } else { - return element.keyReleased(keyCode, modifiers, scanCode); - } - } - - @Redirect( - method = "onKey", - at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/ParentElement;charTyped(CI)Z") - ) - private boolean charTyped(ParentElement element, char keyChar, int modifiers) { - if (KeyboardCallback.EVENT.invoker().charTyped(keyChar, modifiers)) { - return true; - } else { - return element.charTyped(keyChar, modifiers); - } - } - */ - //#endif } //#endif diff --git a/src/main/java/com/replaymod/core/mixin/MixinMinecraft.java b/src/main/java/com/replaymod/core/mixin/MixinMinecraft.java index 1538b398..9f2b22bb 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinMinecraft.java +++ b/src/main/java/com/replaymod/core/mixin/MixinMinecraft.java @@ -9,9 +9,6 @@ import org.spongepowered.asm.mixin.injection.At; //#if MC>=11300 import com.replaymod.core.events.PostRenderCallback; import com.replaymod.core.events.PreRenderCallback; -import de.johni0702.minecraft.gui.versions.callbacks.OpenGuiScreenCallback; -import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; -import net.minecraft.client.gui.screen.Screen; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#else @@ -65,16 +62,6 @@ public abstract class MixinMinecraft private void postRender(boolean unused, CallbackInfo ci) { PostRenderCallback.EVENT.invoker().postRender(); } - - @Inject(method = "tick", at = @At("HEAD")) - private void preTick(CallbackInfo ci) { - PreTickCallback.EVENT.invoker().preTick(); - } - - @Inject(method = "openScreen", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;")) - private void openGuiScreen(Screen newGuiScreen, CallbackInfo ci) { - OpenGuiScreenCallback.EVENT.invoker().openGuiScreen(newGuiScreen); - } //#else //#if MC>=10904 //$$ @Shadow protected abstract void runTickKeyboard() throws IOException; diff --git a/src/main/java/com/replaymod/core/mixin/MixinMouseListener.java b/src/main/java/com/replaymod/core/mixin/MixinMouseListener.java deleted file mode 100644 index c4775683..00000000 --- a/src/main/java/com/replaymod/core/mixin/MixinMouseListener.java +++ /dev/null @@ -1,60 +0,0 @@ -//#if MC>=11400 -package com.replaymod.core.mixin; - -import com.replaymod.core.events.KeyBindingEventCallback; -import de.johni0702.minecraft.gui.versions.callbacks.MouseCallback; -import net.minecraft.client.Mouse; -import net.minecraft.client.gui.Element; -import net.minecraft.client.gui.screen.Screen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.Redirect; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(Mouse.class) -public class MixinMouseListener { - @Shadow private int activeButton; - - @Inject(method = "onMouseButton", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/options/KeyBinding;onKeyPressed(Lnet/minecraft/client/util/InputUtil$KeyCode;)V", shift = At.Shift.AFTER)) - private void afterKeyBindingTick(CallbackInfo ci) { - KeyBindingEventCallback.EVENT.invoker().onKeybindingEvent(); - } - - @Inject(method = "method_1611", at = @At("HEAD"), cancellable = true) - private void mouseDown(boolean[] result, double x, double y, int button, CallbackInfo ci) { - if (MouseCallback.EVENT.invoker().mouseDown(x, y, button)) { - result[0] = true; - ci.cancel(); - } - } - - @Inject(method = "method_1605", at = @At("HEAD"), cancellable = true) - private void mouseUp(boolean[] result, double x, double y, int button, CallbackInfo ci) { - if (MouseCallback.EVENT.invoker().mouseUp(x, y, button)) { - result[0] = true; - ci.cancel(); - } - } - - @Inject(method = "method_1602", at = @At("HEAD"), cancellable = true) - private void mouseDrag(Element element, double x, double y, double dx, double dy, CallbackInfo ci) { - if (MouseCallback.EVENT.invoker().mouseDrag(x, y, this.activeButton, dx, dy)) { - ci.cancel(); - } - } - - @Redirect( - method = "onMouseScroll", - at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;mouseScrolled(DDD)Z") - ) - private boolean mouseScroll(Screen element, double x, double y, double scroll) { - if (MouseCallback.EVENT.invoker().mouseScroll(x, y, scroll)) { - return true; - } else { - return element.mouseScrolled(x, y, scroll); - } - } -} -//#endif diff --git a/src/main/java/com/replaymod/core/mixin/MixinScreen.java b/src/main/java/com/replaymod/core/mixin/MixinScreen.java deleted file mode 100644 index b0aeb981..00000000 --- a/src/main/java/com/replaymod/core/mixin/MixinScreen.java +++ /dev/null @@ -1,27 +0,0 @@ -//#if MC>=11400 -package com.replaymod.core.mixin; - -import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.widget.AbstractButtonWidget; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import java.util.List; - -@Mixin(Screen.class) -public class MixinScreen { - @Shadow - protected @Final List buttons; - - @Inject(method = "init(Lnet/minecraft/client/MinecraftClient;II)V", at = @At("RETURN")) - private void init(MinecraftClient minecraftClient_1, int int_1, int int_2, CallbackInfo ci) { - InitScreenCallback.EVENT.invoker().initScreen((Screen) (Object) this, buttons); - } -} -//#endif diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index af9dde9c..a61b467a 100755 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -24,6 +24,7 @@ ] }, "mixins": [ + "mixins.jgui.json", "mixins.core.replaymod.json", "mixins.extras.playeroverview.replaymod.json", "mixins.recording.replaymod.json", diff --git a/src/main/resources/mixins.core.replaymod.json b/src/main/resources/mixins.core.replaymod.json index 67d49286..3e0fbfeb 100644 --- a/src/main/resources/mixins.core.replaymod.json +++ b/src/main/resources/mixins.core.replaymod.json @@ -7,9 +7,7 @@ //#if MC>=11400 "AbstractButtonWidgetAccessor", "MixinGameRenderer", - "MixinScreen", "MixinModResourcePackUtil", - "MixinMouseListener", //#endif //#if MC>=11300 "MixinKeyboardListener", diff --git a/versions/common.gradle b/versions/common.gradle index 5ba72500..627457da 100644 --- a/versions/common.gradle +++ b/versions/common.gradle @@ -343,7 +343,14 @@ task configureRelocation() { tasks.removeByName('shadowJar') // we want to base our shadowed jar on the reobfJar output, not the sourceSet output task shadowJar(type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar) { - from { tasks.jar.archivePath } + from({ zipTree(tasks.jar.archivePath) }) { + filesMatching('mixins.jgui.json') { + filter { it.replace('de.johni0702', 'com.replaymod.lib.de.johni0702') } + } + filesMatching('mixins.jgui.refmap.json') { + filter { it.replace('de/johni0702', 'com/replaymod/lib/de/johni0702') } + } + } afterEvaluate { dependsOn FABRIC ? tasks.remapJar : (mcVersion >= 10800 ? tasks.reobfJar : tasks.reobf) } manifest.inheritFrom tasks.jar.manifest