Fix Keyboard IndexOutOfBoundsException (#704)

This commit is contained in:
slprime authored and GitHub committed 2025-08-31 18:33:59 +02:00
1 parent ec28bdf116
commit 28539bbacc
2 files changed
+5 -2

No files matched your search

@@ -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<String, KeyState> 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) {
@@ -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();
}