    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    }