package com.prupe.mcpatcher; import java.util.BitSet; import org.lwjgl.input.Keyboard; public class InputHandler { private final BitSet keysDown = new BitSet(); private final String name; private final boolean enabled; public InputHandler(String name, boolean enabled) { this.name = name; this.enabled = enabled; } public String getName() { return this.name; } public boolean isEnabled() { return this.enabled; } public boolean isKeyPressed(int key) { if (this.enabled) { if (Keyboard.isKeyDown(key)) { if (!this.keysDown.get(key)) { this.keysDown.set(key); return true; } } else { this.keysDown.clear(key); } } return false; } public boolean isKeyDown(int key) { return this.enabled && Keyboard.isKeyDown(key); } public String toString() { StringBuilder sb = new StringBuilder(); sb.append("InputUtils{").append(this.name).append(':'); for (int i = this.keysDown.nextSetBit(0); i >= 0; i = this.keysDown.nextSetBit(i + 1)) { sb.append(' ').append(Keyboard.getKeyName(i)); } sb.append('}'); return sb.toString(); } }