From 49b057658e534dc358395e952114880c1129a9ae Mon Sep 17 00:00:00 2001 From: alemidev Date: Tue, 31 Jan 2023 22:25:17 +0100 Subject: [PATCH] fix: "debounce" keypresses --- .../co/fantabos/bscv/module/QuickModule.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/main/java/co/fantabos/bscv/module/QuickModule.java b/src/main/java/co/fantabos/bscv/module/QuickModule.java index b6a0be0..470aa5e 100644 --- a/src/main/java/co/fantabos/bscv/module/QuickModule.java +++ b/src/main/java/co/fantabos/bscv/module/QuickModule.java @@ -17,25 +17,32 @@ public class QuickModule extends Module { private class ToggleHook { private final KeyBinding key; private final Module mod; + private boolean debounce; + // TODO all examples show isPressed() to get a debounced value + // but it seems to be missing? making my own debounce for now protected ToggleHook(KeyBinding key, Module mod) { this.key = key; this.mod = mod; + this.debounce = false; } - @SubscribeEvent - public void onKeyPress(InputEvent.KeyInputEvent event) { - if (this.key.isDown()) { - this.mod.toggle(); // TODO debounce this + private void onInput() { + if (this.debounce) { + if (!this.key.isDown()) { + this.debounce = false; + } + } else { + if (this.key.isDown()) { + this.mod.toggle(); + this.debounce = true; + } } } @SubscribeEvent - public void onKeyPress(InputEvent.MouseInputEvent event) { - if (this.key.isDown()) { - this.mod.toggle(); // TODO debounce this - - } - } + public void onKeyPress(InputEvent.KeyInputEvent event) { this.onInput(); } + @SubscribeEvent + public void onKeyPress(InputEvent.MouseInputEvent event) { this.onInput(); } } public final KeyBinding keybind;