diff --git a/src/main/java/codechicken/nei/KeyManager.java b/src/main/java/codechicken/nei/KeyManager.java index 725481b3..8fa2e5ad 100644 --- a/src/main/java/codechicken/nei/KeyManager.java +++ b/src/main/java/codechicken/nei/KeyManager.java @@ -6,6 +6,8 @@ import java.util.Map.Entry; import org.lwjgl.input.Keyboard; +import codechicken.nei.util.NEIKeyboardUtils; + /** * Good old down/held/up keystate tracker */ @@ -28,7 +30,8 @@ public class KeyManager { public static void tickKeyStates() { for (Entry entry : keyStates.entrySet()) { - final boolean down = Keyboard.isKeyDown(NEIClientConfig.getKeyBinding(entry.getKey())); + final int keyCode = NEIKeyboardUtils.unhash(NEIClientConfig.getKeyBinding(entry.getKey())); + final boolean down = keyCode < Keyboard.KEYBOARD_SIZE ? Keyboard.isKeyDown(keyCode) : null; final KeyState state = entry.getValue(); if (down) { diff --git a/src/main/java/codechicken/nei/NEIClientConfig.java b/src/main/java/codechicken/nei/NEIClientConfig.java index c1be19a9..d17f8efd 100644 --- a/src/main/java/codechicken/nei/NEIClientConfig.java +++ b/src/main/java/codechicken/nei/NEIClientConfig.java @@ -889,7 +889,7 @@ public class NEIClientConfig { final int hash = getKeyBinding(string); if (hash != Keyboard.CHAR_NONE && Keyboard.getEventKeyState()) { - return KeyManager.keyStates.containsKey(string) ? Keyboard.isKeyDown(hash) + return KeyManager.keyStates.containsKey(string) ? Keyboard.isKeyDown(NEIKeyboardUtils.unhash(hash)) : hash == NEIClientUtils.getKeyHash(); }