    001package cpw.mods.fml.common.network;
    002
    003import net.minecraft.entity.player.EntityPlayer;
    004import net.minecraft.network.INetworkManager;
    005import net.minecraft.network.packet.NetHandler;
    006
    007import com.google.common.io.ByteArrayDataInput;
    008import com.google.common.io.ByteArrayDataOutput;
    009import com.google.common.io.ByteStreams;
    010
    011public class OpenGuiPacket extends FMLPacket
    012{
    013    private int windowId;
    014    private int networkId;
    015    private int modGuiId;
    016    private int x;
    017    private int y;
    018    private int z;
    019
    020    public OpenGuiPacket()
    021    {
    022        super(Type.GUIOPEN);
    023    }
    024
    025    @Override
    026    public byte[] generatePacket(Object... data)
    027    {
    028        ByteArrayDataOutput dat = ByteStreams.newDataOutput();
    029        dat.writeInt((Integer) data[0]); // windowId
    030        dat.writeInt((Integer) data[1]); // networkId
    031        dat.writeInt((Integer) data[2]); // modGuiId
    032        dat.writeInt((Integer) data[3]); // x
    033        dat.writeInt((Integer) data[4]); // y
    034        dat.writeInt((Integer) data[5]); // z
    035        return dat.toByteArray();
    036    }
    037
    038    @Override
    039    public FMLPacket consumePacket(byte[] data)
    040    {
    041        ByteArrayDataInput dat = ByteStreams.newDataInput(data);
    042        windowId = dat.readInt();
    043        networkId = dat.readInt();
    044        modGuiId = dat.readInt();
    045        x = dat.readInt();
    046        y = dat.readInt();
    047        z = dat.readInt();
    048        return this;
    049    }
    050
    051    @Override
    052    public void execute(INetworkManager network, FMLNetworkHandler handler, NetHandler netHandler, String userName)
    053    {
    054        EntityPlayer player = netHandler.getPlayer();
    055        player.openGui(networkId, modGuiId, player.worldObj, x, y, z);
    056        player.openContainer.windowId = windowId;
    057    }
    058
    059}