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    }