// Path: src/api/java/com/github/atomicblom/shearmadness/api/Capability.java
// public final class Capability {
//     @CapabilityInject(IChiseledSheepCapability.class)
//     public static final net.minecraftforge.common.capabilities.Capability<IChiseledSheepCapability> CHISELED_SHEEP;
// 
//     static {
//         CHISELED_SHEEP = null;
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/capability/CapabilityProvider.java
// @SuppressWarnings({"ObjectEquality", "ConstantConditions", "ClassHasNoToStringMethod"})
// public class CapabilityProvider implements ICapabilityProvider, INBTSerializable<NBTBase>
// {
//     private final IChiseledSheepCapability capability;
// 
//     public CapabilityProvider()
//     {
//         capability = new ChiseledSheepCapability();
//     }
// 
//     @Override
//     public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing)
//     {
//         return capability == CHISELED_SHEEP;
//     }
// 
//     @Override
//     public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing)
//     {
//         if (capability == CHISELED_SHEEP)
//         {
//             return CHISELED_SHEEP.cast(this.capability);
//         }
//         //noinspection ReturnOfNull
//         return null;
//     }
// 
//     @Override
//     public NBTBase serializeNBT()
//     {
//         return ChiseledSheepCapabilityStorage.instance.writeNBT(CHISELED_SHEEP, capability, null);
//     }
// 
//     @Override
//     public void deserializeNBT(NBTBase nbt)
//     {
//         ChiseledSheepCapabilityStorage.instance.readNBT(CHISELED_SHEEP, capability, null, nbt);
//     }
// }
// 
// Path: src/api/java/com/github/atomicblom/shearmadness/api/capability/IChiseledSheepCapability.java
// public interface IChiseledSheepCapability
// {
//     boolean isChiseled();
// 
//     void unChisel();
// 
//     void chisel(ItemStack itemStack);
// 
//     ItemStack getChiselItemStack();
// 
//     int getItemIdentifier();
// 
//     NBTTagCompound getExtraData();
// }


import com.github.atomicblom.shearmadness.api.Capability;
import com.github.atomicblom.shearmadness.capability.CapabilityProvider;
import com.github.atomicblom.shearmadness.api.capability.IChiseledSheepCapability;
import com.google.common.base.Objects;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
package com.github.atomicblom.shearmadness.networking;


public class SheepChiseledMessage implements IMessage
{
    private int sheepId;
    private boolean isChiseled;
    private ItemStack itemStack = null;

    @SuppressWarnings("unused")
    public SheepChiseledMessage() {}

    public SheepChiseledMessage(Entity sheep)
    {
        sheepId = sheep.getEntityId();
// Path: src/api/java/com/github/atomicblom/shearmadness/api/Capability.java
// public final class Capability {
//     @CapabilityInject(IChiseledSheepCapability.class)
//     public static final net.minecraftforge.common.capabilities.Capability<IChiseledSheepCapability> CHISELED_SHEEP;
// 
//     static {
//         CHISELED_SHEEP = null;
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/capability/CapabilityProvider.java
// @SuppressWarnings({"ObjectEquality", "ConstantConditions", "ClassHasNoToStringMethod"})
// public class CapabilityProvider implements ICapabilityProvider, INBTSerializable<NBTBase>
// {
//     private final IChiseledSheepCapability capability;
// 
//     public CapabilityProvider()
//     {
//         capability = new ChiseledSheepCapability();
//     }
// 
//     @Override
//     public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing)
//     {
//         return capability == CHISELED_SHEEP;
//     }
// 
//     @Override
//     public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing)
//     {
//         if (capability == CHISELED_SHEEP)
//         {
//             return CHISELED_SHEEP.cast(this.capability);
//         }
//         //noinspection ReturnOfNull
//         return null;
//     }
// 
//     @Override
//     public NBTBase serializeNBT()
//     {
//         return ChiseledSheepCapabilityStorage.instance.writeNBT(CHISELED_SHEEP, capability, null);
//     }
// 
//     @Override
//     public void deserializeNBT(NBTBase nbt)
//     {
//         ChiseledSheepCapabilityStorage.instance.readNBT(CHISELED_SHEEP, capability, null, nbt);
//     }
// }
// 
// Path: src/api/java/com/github/atomicblom/shearmadness/api/capability/IChiseledSheepCapability.java
// public interface IChiseledSheepCapability
// {
//     boolean isChiseled();
// 
//     void unChisel();
// 
//     void chisel(ItemStack itemStack);
// 
//     ItemStack getChiselItemStack();
// 
//     int getItemIdentifier();
// 
//     NBTTagCompound getExtraData();
// }


// Path: src/main/java/com/github/atomicblom/shearmadness/networking/SheepChiseledMessage.java
import com.github.atomicblom.shearmadness.api.Capability;
import com.github.atomicblom.shearmadness.capability.CapabilityProvider;
import com.github.atomicblom.shearmadness.api.capability.IChiseledSheepCapability;
import com.google.common.base.Objects;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;

package com.github.atomicblom.shearmadness.networking;


public class SheepChiseledMessage implements IMessage
{
    private int sheepId;
    private boolean isChiseled;
    private ItemStack itemStack = null;

    @SuppressWarnings("unused")
    public SheepChiseledMessage() {}

    public SheepChiseledMessage(Entity sheep)
    {
        sheepId = sheep.getEntityId();
        final IChiseledSheepCapability capability = sheep.getCapability(Capability.CHISELED_SHEEP, null);