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