package mekanism.common.network; import java.io.DataOutputStream; import java.util.ArrayList; import mekanism.api.Coord4D; import mekanism.common.ITileNetwork; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import com.google.common.io.ByteArrayDataInput; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; public class PacketTileEntity extends MekanismPacket { public Coord4D coord4D; public ArrayList parameters; public PacketTileEntity(Coord4D coord, ArrayList params) { coord4D = coord; parameters = params; } public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception { int x = dataStream.readInt(); int y = dataStream.readInt(); int z = dataStream.readInt(); TileEntity tileEntity = world.getTileEntity(x, y, z); if(tileEntity instanceof ITileNetwork) { ((ITileNetwork)tileEntity).handlePacketData(dataStream); } } public void write(DataOutputStream dataStream) throws Exception { dataStream.writeInt(coord4D.xCoord); dataStream.writeInt(coord4D.yCoord); dataStream.writeInt(coord4D.zCoord); PacketHandler.encode(new Object[] {parameters}, dataStream); } @Override public void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer) { } @Override public void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer) { } @Override public void handleClientSide(EntityPlayer player) { } @Override public void handleServerSide(EntityPlayer player) { } }