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 }