package com.insane.simplelabels; import io.netty.buffer.ByteBuf; import com.insane.simplelabels.tile.TileLabel; import com.insane.simplelabels.tile.TileVastStorageUnit; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; public class MessageVSUUpdate implements IMessage { public MessageVSUUpdate() {} public int x,y,z; public ItemStack storedStack; public MessageVSUUpdate(int x, int y, int z, ItemStack storedStack) { this.x = x; this.y = y; this.z = z; this.storedStack = storedStack; } @Override public void toBytes(ByteBuf buf) { ByteBufUtils.writeItemStack(buf, this.storedStack); if (storedStack != null) { buf.writeInt(storedStack.stackSize); } buf.writeInt(this.x); buf.writeInt(this.y); buf.writeInt(this.z); } @Override public void fromBytes(ByteBuf buf) { this.storedStack = ByteBufUtils.readItemStack(buf); if (storedStack != null) { storedStack.stackSize = buf.readInt(); } this.x = buf.readInt(); this.y = buf.readInt(); this.z = buf.readInt(); } public static final class Handler implements IMessageHandler<MessageVSUUpdate, IMessage> { @Override public IMessage onMessage(MessageVSUUpdate message, MessageContext ctx) { TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos(message.x, message.y, message.z)); if (te != null && te instanceof TileVastStorageUnit) { if (message.storedStack == null) { ((TileVastStorageUnit) te).setStoredItemType(null, 0); } else { ((TileVastStorageUnit) te).setStoredItemType(message.storedStack, message.storedStack.stackSize); } } return null; } } }