package crazypants.enderio.item;
import io.netty.buffer.ByteBuf;
import net.minecraft.item.ItemStack;
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;
import crazypants.enderio.conduit.ConduitDisplayMode;
public class YetaWrenchPacketProcessor implements IMessage, IMessageHandler<YetaWrenchPacketProcessor, IMessage> {
private int slot;
private ConduitDisplayMode mode;
public YetaWrenchPacketProcessor() {
}
public YetaWrenchPacketProcessor(int slot, ConduitDisplayMode mode) {
this.slot = slot;
this.mode = mode;
}
@Override
public void toBytes(ByteBuf buffer) {
buffer.writeInt(slot);
ByteBufUtils.writeUTF8String(buffer, mode.getName());
}
@Override
public void fromBytes(ByteBuf buffer) {
slot = buffer.readInt();
mode = ConduitDisplayMode.fromName(ByteBufUtils.readUTF8String(buffer));
}
@Override
public IMessage onMessage(YetaWrenchPacketProcessor message, MessageContext ctx) {
ItemStack stack = null;
if(message.slot > -1 && message.slot < 9) {
stack = ctx.getServerHandler().playerEntity.inventory.getStackInSlot(message.slot);
}
if(stack != null) {
ConduitDisplayMode.setDisplayMode(stack, message.mode);
}
return null;
}
}