001 package net.minecraft.network.packet;
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 }