001    package net.minecraft.src;
002    
003    import cpw.mods.fml.common.Side;
004    import cpw.mods.fml.common.asm.SideOnly;
005    import java.io.DataInputStream;
006    import java.io.DataOutputStream;
007    import java.io.IOException;
008    
009    public class Packet204ClientInfo extends Packet
010    {
011        private String language;
012        private int renderDistance;
013        private int chatVisisble;
014        private boolean chatColours;
015        private int gameDifficulty;
016    
017        public Packet204ClientInfo() {}
018    
019        @SideOnly(Side.CLIENT)
020        public Packet204ClientInfo(String par1Str, int par2, int par3, boolean par4, int par5)
021        {
022            this.language = par1Str;
023            this.renderDistance = par2;
024            this.chatVisisble = par3;
025            this.chatColours = par4;
026            this.gameDifficulty = par5;
027        }
028    
029        /**
030         * Abstract. Reads the raw packet data from the data stream.
031         */
032        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
033        {
034            this.language = readString(par1DataInputStream, 7);
035            this.renderDistance = par1DataInputStream.readByte();
036            byte var2 = par1DataInputStream.readByte();
037            this.chatVisisble = var2 & 7;
038            this.chatColours = (var2 & 8) == 8;
039            this.gameDifficulty = par1DataInputStream.readByte();
040        }
041    
042        /**
043         * Abstract. Writes the raw packet data to the data stream.
044         */
045        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
046        {
047            writeString(this.language, par1DataOutputStream);
048            par1DataOutputStream.writeByte(this.renderDistance);
049            par1DataOutputStream.writeByte(this.chatVisisble | (this.chatColours ? 1 : 0) << 3);
050            par1DataOutputStream.writeByte(this.gameDifficulty);
051        }
052    
053        /**
054         * Passes this Packet on to the NetHandler for processing.
055         */
056        public void processPacket(NetHandler par1NetHandler)
057        {
058            par1NetHandler.handleClientInfo(this);
059        }
060    
061        /**
062         * Abstract. Return the size of the packet (not counting the header).
063         */
064        public int getPacketSize()
065        {
066            return 0;
067        }
068    
069        public String getLanguage()
070        {
071            return this.language;
072        }
073    
074        public int getRenderDistance()
075        {
076            return this.renderDistance;
077        }
078    
079        public int getChatVisibility()
080        {
081            return this.chatVisisble;
082        }
083    
084        public boolean getChatColours()
085        {
086            return this.chatColours;
087        }
088    
089        public int getDifficulty()
090        {
091            return this.gameDifficulty;
092        }
093    
094        /**
095         * only false for the abstract Packet class, all real packets return true
096         */
097        public boolean isRealPacket()
098        {
099            return true;
100        }
101    
102        /**
103         * eg return packet30entity.entityId == entityId; WARNING : will throw if you compare a packet to a different packet
104         * class
105         */
106        public boolean containsSameEntityIDAs(Packet par1Packet)
107        {
108            return true;
109        }
110    }