diff --git a/src/main/java/dev/cigarette/helper/KeybindHelper.java b/src/main/java/dev/cigarette/helper/KeybindHelper.java index 9b600260..b7b16809 100644 --- a/src/main/java/dev/cigarette/helper/KeybindHelper.java +++ b/src/main/java/dev/cigarette/helper/KeybindHelper.java @@ -263,6 +263,9 @@ public static void forceBlockInputs(Object module, InputBlocker blocker) { public static void unblock() { blockedInputs = null; blockingModule = null; + for(MinecraftKeybind keybind : wrappedBindings) { + keybind.release(); + } updateKeyStates(); } diff --git a/src/main/java/dev/cigarette/helper/keybind/InputBlocker.java b/src/main/java/dev/cigarette/helper/keybind/InputBlocker.java index 72063cc6..31afa016 100644 --- a/src/main/java/dev/cigarette/helper/keybind/InputBlocker.java +++ b/src/main/java/dev/cigarette/helper/keybind/InputBlocker.java @@ -93,7 +93,6 @@ public boolean processMouse(int button, int action, int modifiers) { for (MinecraftKeybind binding : blockedBindings) { if (!binding.isMouse) continue; if (!binding.isOfMouse(button)) continue; - System.out.println("Processing Mouse | button=" + button + " action=" + action); binding.physicalAction(action); return true; } diff --git a/src/main/java/dev/cigarette/mixin/KeyboardMixin.java b/src/main/java/dev/cigarette/mixin/KeyboardMixin.java index 98aba9b1..739a01f2 100644 --- a/src/main/java/dev/cigarette/mixin/KeyboardMixin.java +++ b/src/main/java/dev/cigarette/mixin/KeyboardMixin.java @@ -3,6 +3,7 @@ import dev.cigarette.helper.KeybindHelper; import net.minecraft.client.Keyboard; import net.minecraft.client.MinecraftClient; +import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -17,9 +18,13 @@ private void onKey(long window, int key, int scancode, int action, int modifiers ci.cancel(); return; } - if (client.currentScreen == null && (KeybindHelper.handleKeyByGUI(client, key, scancode, action, modifiers) || KeybindHelper.handleBlockedKeyInputs(client, key, scancode, action, modifiers) || KeybindHelper.handleCustomKeys(client, key, scancode, action, modifiers))) { - ci.cancel(); - return; + if (client.currentScreen == null) { + if (KeybindHelper.handleKeyByGUI(client, key, scancode, action, modifiers) || KeybindHelper.handleBlockedKeyInputs(client, key, scancode, action, modifiers) || KeybindHelper.handleCustomKeys(client, key, scancode, action, modifiers)) { + ci.cancel(); + return; + } + } else if (action == GLFW.GLFW_RELEASE) { + KeybindHelper.handleCustomKeys(client, key, scancode, action, modifiers); } } } diff --git a/src/main/java/dev/cigarette/mixin/MouseMixin.java b/src/main/java/dev/cigarette/mixin/MouseMixin.java index 52409a3e..174ede9d 100644 --- a/src/main/java/dev/cigarette/mixin/MouseMixin.java +++ b/src/main/java/dev/cigarette/mixin/MouseMixin.java @@ -3,6 +3,7 @@ import dev.cigarette.helper.KeybindHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.Mouse; +import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -23,9 +24,13 @@ private void onMouseButton(long window, int button, int action, int mods, Callba ci.cancel(); return; } - if (client.currentScreen == null && (KeybindHelper.handleBlockedMouseInputs(client, button, action, mods) || KeybindHelper.handleCustomMouse(client, button, action, mods))) { - ci.cancel(); - return; + if (client.currentScreen == null) { + if (KeybindHelper.handleBlockedMouseInputs(client, button, action, mods) || KeybindHelper.handleCustomMouse(client, button, action, mods)) { + ci.cancel(); + return; + } + } else if (action == GLFW.GLFW_RELEASE) { + KeybindHelper.handleCustomMouse(client, button, action, mods); } } }