package com.cricketcraft.chisel.network.message; import io.netty.buffer.ByteBuf; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.network.message.base.MessageCoords; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; public class MessageSlotUpdate extends MessageCoords { public MessageSlotUpdate() { } private int slot; private ItemStack stack; public MessageSlotUpdate(TileEntity te, int slot, ItemStack stack) { super(te); this.slot = slot; this.stack = stack; } @Override public void toBytes(ByteBuf buf) { super.toBytes(buf); buf.writeInt(slot); ByteBufUtils.writeItemStack(buf, stack); } @Override public void fromBytes(ByteBuf buf) { super.fromBytes(buf); this.slot = buf.readInt(); this.stack = ByteBufUtils.readItemStack(buf); } public static class Handler implements IMessageHandler<MessageSlotUpdate, IMessage> { @Override public IMessage onMessage(MessageSlotUpdate message, MessageContext ctx) { TileEntity te = Chisel.proxy.getClientWorld().getTileEntity(message.x, message.y, message.z); if (te != null && te instanceof IInventory) { ((IInventory) te).setInventorySlotContents(message.slot, message.stack); } return null; } } }