package me.km.networking; import net.minecraft.client.settings.KeyBinding; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.lwjgl.input.Keyboard; @SideOnly(Side.CLIENT) public class KeyManager { private KeyBinding[] functionKeys; public KeyManager() { functionKeys = new KeyBinding[9]; functionKeys[0] = register(1, Keyboard.KEY_G); functionKeys[1] = register(2, Keyboard.KEY_H); functionKeys[2] = register(3, Keyboard.KEY_J); functionKeys[3] = register(4, Keyboard.KEY_K); functionKeys[4] = register(5, Keyboard.KEY_V); functionKeys[5] = register(6, Keyboard.KEY_B); functionKeys[6] = register(7, Keyboard.KEY_N); functionKeys[7] = register(8, Keyboard.KEY_M); functionKeys[8] = register(9, Keyboard.KEY_COMMA); } private KeyBinding register(int id, int key) { KeyBinding keyBind = new KeyBinding("key.function." + id, key, "key.km.function"); ClientRegistry.registerKeyBinding(keyBind); return keyBind; } private int getFirstPressedKey() { for(int i = 0; i < 9; i++) { if(functionKeys[i].isPressed()) { return i + 1; } } return -1; } @SubscribeEvent public void onRenderGui(TickEvent.ClientTickEvent e) { int key = getFirstPressedKey(); if(key != -1) { ModPacketHandler.sendFunctionKey(key); } } }