package com.cricketcraft.chisel.network.message;
import io.netty.buffer.ByteBuf;
import net.minecraft.item.ItemStack;
import com.cricketcraft.chisel.api.IAdvancedChisel;
import com.cricketcraft.chisel.api.IChiselItem;
import com.cricketcraft.chisel.api.carving.IChiselMode;
import com.cricketcraft.chisel.item.chisel.ChiselMode;
import com.cricketcraft.chisel.utils.General;
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 MessageChiselMode implements IMessage {
public MessageChiselMode(){
}
private String mode;
public MessageChiselMode(IChiselMode iChiselMode) {
this.mode = iChiselMode.name();
}
public void toBytes(ByteBuf buf) {
ByteBufUtils.writeUTF8String(buf, mode);
}
@Override
public void fromBytes(ByteBuf buf) {
this.mode = ByteBufUtils.readUTF8String(buf);
}
public static class Handler implements IMessageHandler<MessageChiselMode, IMessage> {
@Override
public IMessage onMessage(MessageChiselMode message, MessageContext ctx) {
ItemStack stack = ctx.getServerHandler().playerEntity.getCurrentEquippedItem();
if (stack != null && stack.getItem() instanceof IChiselItem) {
if (stack.getItem() instanceof IAdvancedChisel) {
General.setChiselMode(stack, ((IAdvancedChisel) stack.getItem()).getMode(stack, message.mode));
} else {
General.setChiselMode(stack, ChiselMode.valueOf(message.mode));
}
}
return null;
}
}
}