From 26c04a60c412f64856282113e7be40fcbb9037e3 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 12 Jan 2021 10:09:43 +0800 Subject: [PATCH] Fix Chocohead/OptiFabric#147 --- build.gradle | 2 +- .../fabric/client/MixinKeyboardHandler.java | 22 +++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 13488e7e..f102c636 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id "architectury-plugin" version "1.3.45" - id "forgified-fabric-loom" version "0.5.26" apply false + id "forgified-fabric-loom" version "0.5.28" apply false id "org.cadixdev.licenser" version "0.5.0" id "com.jfrog.bintray" version "1.8.4" id "com.matthewprenger.cursegradle" version "1.4.0" apply false diff --git a/fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinKeyboardHandler.java b/fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinKeyboardHandler.java index bce9790d..ec0d5d23 100644 --- a/fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinKeyboardHandler.java +++ b/fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinKeyboardHandler.java @@ -44,8 +44,7 @@ public class MixinKeyboardHandler { @Shadow private boolean sendRepeatsToGui; - @SuppressWarnings("UnresolvedMixinReference") - @ModifyVariable(method = {"method_1458", "lambda$charTyped$5"}, at = @At("HEAD"), ordinal = 0, argsOnly = true) + @ModifyVariable(method = {"method_1458", "lambda$charTyped$5"}, at = @At("HEAD"), require = 0, ordinal = 0, argsOnly = true) private static GuiEventListener wrapCharTypedFirst(GuiEventListener screen) { if (screen instanceof ScreenInputDelegate) { return ((ScreenInputDelegate) screen).architectury_delegateInputs(); @@ -53,8 +52,7 @@ public class MixinKeyboardHandler { return screen; } - @SuppressWarnings("UnresolvedMixinReference") - @ModifyVariable(method = {"method_1473", "lambda$charTyped$6"}, at = @At("HEAD"), ordinal = 0, argsOnly = true) + @ModifyVariable(method = {"method_1473", "lambda$charTyped$6"}, at = @At("HEAD"), require = 0, ordinal = 0, argsOnly = true) private static GuiEventListener wrapCharTypedSecond(GuiEventListener screen) { if (screen instanceof ScreenInputDelegate) { return ((ScreenInputDelegate) screen).architectury_delegateInputs(); @@ -62,6 +60,22 @@ public class MixinKeyboardHandler { return screen; } + @ModifyVariable(method = "lambda$onCharEvent$5", at = @At("HEAD"), require = 0, ordinal = 0, argsOnly = true) + private GuiEventListener wrapCharTypedFirstOptiFabric(GuiEventListener screen) { + if (screen instanceof ScreenInputDelegate) { + return ((ScreenInputDelegate) screen).architectury_delegateInputs(); + } + return screen; + } + + @ModifyVariable(method = "lambda$onCharEvent$6", at = @At("HEAD"), require = 0, ordinal = 0, argsOnly = true) + private GuiEventListener wrapCharTypedSecondOptiFabric(GuiEventListener screen) { + if (screen instanceof ScreenInputDelegate) { + return ((ScreenInputDelegate) screen).architectury_delegateInputs(); + } + return screen; + } + @Inject(method = "keyPress", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;wrapScreenError(Ljava/lang/Runnable;Ljava/lang/String;Ljava/lang/String;)V", ordinal = 0), cancellable = true)