package net.minecraft.client.gui; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.client.resources.I18n; import net.minecraft.network.play.client.C0BPacketEntityAction; @SideOnly(Side.CLIENT) public class GuiSleepMP extends GuiChat { private static final String __OBFID = "CL_00000697"; /** * Adds the buttons (and other controls) to the screen in question. */ public void initGui() { super.initGui(); this.buttonList.add(new GuiButton(1, this.width / 2 - 100, this.height - 40, I18n.format("multiplayer.stopSleeping", new Object[0]))); } /** * Fired when a key is typed (except F11 who toggle full screen). This is the equivalent of * KeyListener.keyTyped(KeyEvent e). Args : character (character on the key), keyCode (lwjgl Keyboard key code) */ protected void keyTyped(char typedChar, int keyCode) { if (keyCode == 1) { this.wakeFromSleep(); } else if (keyCode != 28 && keyCode != 156) { super.keyTyped(typedChar, keyCode); } else { String s = this.inputField.getText().trim(); if (!s.isEmpty()) { this.submitChatMessage(s); // Forge: fix vanilla not adding messages to the sent list while sleeping } this.inputField.setText(""); this.mc.ingameGUI.getChatGUI().resetScroll(); } } protected void actionPerformed(GuiButton button) { if (button.id == 1) { this.wakeFromSleep(); } else { super.actionPerformed(button); } } private void wakeFromSleep() { NetHandlerPlayClient nethandlerplayclient = this.mc.thePlayer.sendQueue; nethandlerplayclient.addToSendQueue(new C0BPacketEntityAction(this.mc.thePlayer, 3)); } }