{
boolean inChat = FMLClientHandler.instance().getClient().currentScreen instanceof GuiChat;
for (int i = 0; i < this.keyBindings.length; i++)
{
KeyBinding keyBinding = this.keyBindings[i];
int keyCode = keyBinding.getKeyCode();
boolean state = inChat ? false : (keyCode < 0 ? Mouse.isButtonDown(keyCode + 100) : Keyboard.isKeyDown(keyCode));
if (state != this.keyDown[i] || state && this.repeatings[i])
{
if (state)
{
this.keyDown(type, keyBinding, tickEnd, state != this.keyDown[i]);
}
else
{
this.keyUp(type, keyBinding, tickEnd);
}
if (tickEnd)
{
this.keyDown[i] = state;
}
}
}
for (int i = 0; i < this.vKeyBindings.length; i++)
{
KeyBinding keyBinding = this.vKeyBindings[i];
int keyCode = keyBinding.getKeyCode();
boolean state = keyCode < 0 ? Mouse.isButtonDown(keyCode + 100) : Keyboard.isKeyDown(keyCode);
if (state != this.keyDown[i + this.keyBindings.length] || state && this.vRepeatings[i])
{
if (state)
{