    001    package cpw.mods.fml.common.network;
    002
    003    import net.minecraft.entity.player.EntityPlayer;
    004    import net.minecraft.network.INetworkManager;
    005    import net.minecraft.network.packet.NetHandler;
    006
    007    import com.google.common.io.ByteArrayDataInput;
    008    import com.google.common.io.ByteArrayDataOutput;
    009    import com.google.common.io.ByteStreams;
    010
    011    public 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    }