فهرست منبع

Fix Chocohead/OptiFabric#147

shedaniel 4 سال پیش
والد
کامیت
26c04a60c4
2فایلهای تغییر یافته به همراه19 افزوده شده و 5 حذف شده
  1. 1 1
      build.gradle
  2. 18 4
      fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinKeyboardHandler.java

+ 1 - 1
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

+ 18 - 4
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)