    001    package net.minecraft.src;
    002
    003    import java.io.DataInputStream;
    004    import java.io.DataOutputStream;
    005    import java.io.IOException;
    006
    007    public class Packet3Chat extends Packet
    008    {
    009        /** Maximum number of characters allowed in chat string in each packet. */
    010        public static int maxChatLength = 119;
    011
    012        /** The message being sent. */
    013        public String message;
    014        private boolean field_73477_c;
    015
    016        public Packet3Chat()
    017        {
    018            this.field_73477_c = true;
    019        }
    020
    021        public Packet3Chat(String par1Str)
    022        {
    023            this(par1Str, true);
    024        }
    025
    026        public Packet3Chat(String par1Str, boolean par2)
    027        {
    028            this.field_73477_c = true;
    029
    030            if (par1Str.length() > maxChatLength)
    031            {
    032                par1Str = par1Str.substring(0, maxChatLength);
    033            }
    034
    035            this.message = par1Str;
    036            this.field_73477_c = par2;
    037        }
    038
    039        /**
    040         * Abstract. Reads the raw packet data from the data stream.
    041         */
    042        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
    043        {
    044            this.message = readString(par1DataInputStream, maxChatLength);
    045        }
    046
    047        /**
    048         * Abstract. Writes the raw packet data to the data stream.
    049         */
    050        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
    051        {
    052            writeString(this.message, par1DataOutputStream);
    053        }
    054
    055        /**
    056         * Passes this Packet on to the NetHandler for processing.
    057         */
    058        public void processPacket(NetHandler par1NetHandler)
    059        {
    060            par1NetHandler.handleChat(this);
    061        }
    062
    063        /**
    064         * Abstract. Return the size of the packet (not counting the header).
    065         */
    066        public int getPacketSize()
    067        {
    068            return 2 + this.message.length() * 2;
    069        }
    070
    071        public boolean func_73475_d()
    072        {
    073            return this.field_73477_c;
    074        }
    075
    076        /**
    077         * if this returns false, processPacket is deffered for processReadPackets to handle
    078         */
    079        public boolean isWritePacket()
    080        {
    081            return !this.message.startsWith("/");
    082        }
    083    }