package net.minecraft.network.play.client;
import java.io.IOException;
import org.apache.commons.lang3.StringUtils;
import net.minecraft.network.INetHandler;
import net.minecraft.network.Packet;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.INetHandlerPlayServer;
import net.minecraft.util.BlockPos;
public class C14PacketTabComplete implements Packet
{
private String message;
private int cursorIndex;
private BlockPos pos;
private boolean moddedClient; // TODO: Backwards-compatibility
private static final String __OBFID = "CL_00001346";
public C14PacketTabComplete()
{
}
public C14PacketTabComplete(final String msg)
{
this(msg, 0, (BlockPos) null);
}
public C14PacketTabComplete(final String message, final int cursorIndex, final BlockPos pos)
{
this.message = message;
this.cursorIndex = cursorIndex;
this.pos = pos;
this.moddedClient = true;
}
/**
* Reads the raw packet data from the data stream.
*/
@Override
public void readPacketData(final PacketBuffer data) throws IOException
{
this.message = data.readStringFromBuffer(32767);
final byte var2 = data.readByte();
this.moddedClient = (var2 & 2) != 0;
this.cursorIndex = this.moddedClient ? data.readInt() : this.message.length();
if ((var2 & 1) != 0)
this.pos = data.readBlockPos();
}
/**
* Writes the raw packet data to the data stream.
*/
@Override
public void writePacketData(final PacketBuffer data) throws IOException
{
data.writeString(StringUtils.substring(this.message, 0, 32767));
final boolean var2 = this.pos != null;
data.writeByte(var2 ? 3 : 2);
data.writeInt(this.cursorIndex);
if (var2)
data.writeBlockPos(this.pos);
}
public void func_180756_a(final INetHandlerPlayServer p_180756_1_)
{
p_180756_1_.processTabComplete(this);
}
public String getMessage()
{
return this.message;
}
public int getCursorIndex()
{
return this.cursorIndex;
}
public BlockPos func_179709_b()
{
return this.pos;
}
public boolean isModdedClient()
{
return this.moddedClient;
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
@Override
public void processPacket(final INetHandler handler)
{
this.func_180756_a((INetHandlerPlayServer) handler);
}
}