From 31ff1824a5460d0e77d829dbab5c43fbae606907 Mon Sep 17 00:00:00 2001 From: isXander Date: Sun, 2 Jul 2023 19:47:48 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20journeymap=20crash=20on=20?= =?UTF-8?q?Steam=20Deck=20(don't=20ask=20how=20idk=20either)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controlify/mixins/core/KeyboardHandlerMixin.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/isxander/controlify/mixins/core/KeyboardHandlerMixin.java b/src/main/java/dev/isxander/controlify/mixins/core/KeyboardHandlerMixin.java index c7db9ca..6eab47e 100644 --- a/src/main/java/dev/isxander/controlify/mixins/core/KeyboardHandlerMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/core/KeyboardHandlerMixin.java @@ -15,10 +15,17 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public class KeyboardHandlerMixin { @Shadow @Final private Minecraft minecraft; - // m_unngxkoe is lambda for GLFW keypress hook - do it outside of the `keyPress` method due to fake inputs + // method_22678 is lambda for GLFW keypress hook - do it outside of the `keyPress` method due to fake inputs @Inject(method = "method_22678", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/KeyboardHandler;keyPress(JIIII)V")) private void onKeyboardInput(long window, int i, int j, int k, int m, CallbackInfo ci) { if (window == minecraft.getWindow().getWindow() && Controlify.instance().currentInputMode() != InputMode.MIXED) Controlify.instance().setInputMode(InputMode.KEYBOARD_MOUSE); } + + // method_22677 is lambda for GLFW char input hook - do it outside of the `charTyped` method due to fake inputs + @Inject(method = "method_22677", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/KeyboardHandler;charTyped(JII)V")) + private void onCharInput(long window, int codePoint, int modifiers, CallbackInfo ci) { + if (window == minecraft.getWindow().getWindow() && Controlify.instance().currentInputMode() != InputMode.MIXED) + Controlify.instance().setInputMode(InputMode.KEYBOARD_MOUSE); + } }