001    package net.minecraft.client.gui;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import net.minecraft.client.multiplayer.NetClientHandler;
006    import net.minecraft.network.packet.Packet19EntityAction;
007    import net.minecraft.util.StringTranslate;
008    
009    @SideOnly(Side.CLIENT)
010    public class GuiSleepMP extends GuiChat
011    {
012        /**
013         * Adds the buttons (and other controls) to the screen in question.
014         */
015        public void initGui()
016        {
017            super.initGui();
018            StringTranslate var1 = StringTranslate.getInstance();
019            this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height - 40, var1.translateKey("multiplayer.stopSleeping")));
020        }
021    
022        /**
023         * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
024         */
025        protected void keyTyped(char par1, int par2)
026        {
027            if (par2 == 1)
028            {
029                this.wakeEntity();
030            }
031            else if (par2 == 28)
032            {
033                String var3 = this.inputField.getText().trim();
034    
035                if (var3.length() > 0)
036                {
037                    this.mc.thePlayer.sendChatMessage(var3);
038                }
039    
040                this.inputField.setText("");
041                this.mc.ingameGUI.getChatGUI().resetScroll();
042            }
043            else
044            {
045                super.keyTyped(par1, par2);
046            }
047        }
048    
049        /**
050         * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
051         */
052        protected void actionPerformed(GuiButton par1GuiButton)
053        {
054            if (par1GuiButton.id == 1)
055            {
056                this.wakeEntity();
057            }
058            else
059            {
060                super.actionPerformed(par1GuiButton);
061            }
062        }
063    
064        /**
065         * Wakes the entity from the bed
066         */
067        private void wakeEntity()
068        {
069            NetClientHandler var1 = this.mc.thePlayer.sendQueue;
070            var1.addToSendQueue(new Packet19EntityAction(this.mc.thePlayer, 3));
071        }
072    }