package net.minecraft.network.login.server;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.IOException;
import net.minecraft.network.INetHandler;
import net.minecraft.network.Packet;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.login.INetHandlerLoginClient;
import net.minecraft.util.IChatComponent;
public class S00PacketDisconnect extends Packet
{
private IChatComponent reason;
private static final String __OBFID = "CL_00001377";
public S00PacketDisconnect() {}
public S00PacketDisconnect(IChatComponent reasonIn)
{
this.reason = reasonIn;
}
/**
* Reads the raw packet data from the data stream.
*/
public void readPacketData(PacketBuffer data) throws IOException
{
this.reason = IChatComponent.Serializer.jsonToComponent(data.readStringFromBuffer(32767));
}
/**
* Writes the raw packet data to the data stream.
*/
public void writePacketData(PacketBuffer data) throws IOException
{
data.writeStringToBuffer(IChatComponent.Serializer.componentToJson(this.reason));
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandlerLoginClient handler)
{
handler.handleDisconnect(this);
}
/**
* If true, the network manager will process the packet immediately when received, otherwise it will queue it for
* processing. Currently true for: Disconnect, LoginSuccess, KeepAlive, ServerQuery/Info, Ping/Pong
*/
public boolean hasPriority()
{
return true;
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandler handler)
{
this.processPacket((INetHandlerLoginClient)handler);
}
@SideOnly(Side.CLIENT)
public IChatComponent func_149603_c()
{
return this.reason;
}
}