// Path: src/main/java/myessentials/entities/api/BlockPos.java
// public class BlockPos implements IChatFormat {
//     private final int dim;
//     private final int x;
//     private final int y;
//     private final int z;
// 
//     public BlockPos(int x, int y, int z, int dim) {
//         this.x = x;
//         this.y = y;
//         this.z = z;
//         this.dim = dim;
//     }
// 
//     public int getDim() {
//         return dim;
//     }
// 
//     public int getX() {
//         return x;
//     }
// 
//     public int getY() {
//         return y;
//     }
// 
//     public int getZ() {
//         return z;
//     }
// 
//     @Override
//     public String toString() {
//         return toChatMessage().getUnformattedText();
//     }
// 
//     @Override
//     public boolean equals(Object other) {
//         if(other instanceof BlockPos) {
//             BlockPos otherBP = (BlockPos) other;
//             return otherBP.dim == dim && otherBP.x == x && otherBP.y == y && otherBP.z == z;
//         }
//         return super.equals(other);
//     }
// 
//     @Override
//     public IChatComponent toChatMessage() {
//         return MyEssentialsCore.instance.LOCAL.getLocalization("myessentials.format.blockpos", x, y, z, dim);
//     }
// }
// 
// Path: src/main/java/myessentials/entities/api/tool/Tool.java
// public abstract class Tool {
// 
//     /**
//      * Every tool starts with this string. Allows easy checks for invalid tools.
//      */
//     public static final String IDENTIFIER = EnumChatFormatting.BLUE.toString();
// 
//     protected EntityPlayer owner;
// 
//     /**
//      * This is used as an identifier to find the itemstack in the player's inventory.
//      */
//     protected String toolName;
// 
//     protected Tool(EntityPlayer owner, String toolName) {
//         this.owner = owner;
//         this.toolName = IDENTIFIER + toolName;
//     }
// 
//     public abstract void onItemUse(BlockPos bp, int face);
// 
//     protected abstract String[] getDescription();
// 
//     public void onShiftRightClick() {
//     }
// 
//     public ItemStack getItemStack() {
//         return PlayerUtils.getItemStackFromPlayer(owner, Items.wooden_hoe, toolName);
//     }
// 
//     public void giveItemStack() {
//         ItemStack itemStack = new ItemStack(Items.wooden_hoe);
//         itemStack.setStackDisplayName(toolName);
//         NBTTagList lore = new NBTTagList();
//         for(String s : getDescription()) {
//             lore.appendTag(new NBTTagString(s));
//         }
//         itemStack.getTagCompound().getCompoundTag("display").setTag("Lore", lore);
//         PlayerUtils.giveItemStackToPlayer(owner, itemStack);
//         //owner.sendMessage(MyTown.instance.LOCAL.getLocalization("mytown.notification.tool.gained"));
//     }
// 
//     protected void updateDescription() {
//         NBTTagList lore = getItemStack().getTagCompound().getCompoundTag("display").getTagList("Lore", 8);
//         NBTTagList newLore = new NBTTagList();
//         String[] newDescription = getDescription();
//         for(int i = 0; i < lore.tagCount(); i++) {
//             newLore.appendTag(new NBTTagString(newDescription[i]));
//         }
//         getItemStack().getTagCompound().getCompoundTag("display").setTag("Lore", newLore);
//     }
// }


import myessentials.entities.api.BlockPos;
import myessentials.entities.api.tool.Tool;
import net.minecraft.entity.player.EntityPlayer;
package myessentials.test.entities.tool;


public class FakeTool extends Tool {

    public int amountOfClicks = 0;

    protected FakeTool(EntityPlayer owner) {
        super(owner, "FakestTool");
    }

    // REF: Change the name of method to something different since it can be confused with the onItemUse method in items
    @Override
// Path: src/main/java/myessentials/entities/api/BlockPos.java
// public class BlockPos implements IChatFormat {
//     private final int dim;
//     private final int x;
//     private final int y;
//     private final int z;
// 
//     public BlockPos(int x, int y, int z, int dim) {
//         this.x = x;
//         this.y = y;
//         this.z = z;
//         this.dim = dim;
//     }
// 
//     public int getDim() {
//         return dim;
//     }
// 
//     public int getX() {
//         return x;
//     }
// 
//     public int getY() {
//         return y;
//     }
// 
//     public int getZ() {
//         return z;
//     }
// 
//     @Override
//     public String toString() {
//         return toChatMessage().getUnformattedText();
//     }
// 
//     @Override
//     public boolean equals(Object other) {
//         if(other instanceof BlockPos) {
//             BlockPos otherBP = (BlockPos) other;
//             return otherBP.dim == dim && otherBP.x == x && otherBP.y == y && otherBP.z == z;
//         }
//         return super.equals(other);
//     }
// 
//     @Override
//     public IChatComponent toChatMessage() {
//         return MyEssentialsCore.instance.LOCAL.getLocalization("myessentials.format.blockpos", x, y, z, dim);
//     }
// }
// 
// Path: src/main/java/myessentials/entities/api/tool/Tool.java
// public abstract class Tool {
// 
//     /**
//      * Every tool starts with this string. Allows easy checks for invalid tools.
//      */
//     public static final String IDENTIFIER = EnumChatFormatting.BLUE.toString();
// 
//     protected EntityPlayer owner;
// 
//     /**
//      * This is used as an identifier to find the itemstack in the player's inventory.
//      */
//     protected String toolName;
// 
//     protected Tool(EntityPlayer owner, String toolName) {
//         this.owner = owner;
//         this.toolName = IDENTIFIER + toolName;
//     }
// 
//     public abstract void onItemUse(BlockPos bp, int face);
// 
//     protected abstract String[] getDescription();
// 
//     public void onShiftRightClick() {
//     }
// 
//     public ItemStack getItemStack() {
//         return PlayerUtils.getItemStackFromPlayer(owner, Items.wooden_hoe, toolName);
//     }
// 
//     public void giveItemStack() {
//         ItemStack itemStack = new ItemStack(Items.wooden_hoe);
//         itemStack.setStackDisplayName(toolName);
//         NBTTagList lore = new NBTTagList();
//         for(String s : getDescription()) {
//             lore.appendTag(new NBTTagString(s));
//         }
//         itemStack.getTagCompound().getCompoundTag("display").setTag("Lore", lore);
//         PlayerUtils.giveItemStackToPlayer(owner, itemStack);
//         //owner.sendMessage(MyTown.instance.LOCAL.getLocalization("mytown.notification.tool.gained"));
//     }
// 
//     protected void updateDescription() {
//         NBTTagList lore = getItemStack().getTagCompound().getCompoundTag("display").getTagList("Lore", 8);
//         NBTTagList newLore = new NBTTagList();
//         String[] newDescription = getDescription();
//         for(int i = 0; i < lore.tagCount(); i++) {
//             newLore.appendTag(new NBTTagString(newDescription[i]));
//         }
//         getItemStack().getTagCompound().getCompoundTag("display").setTag("Lore", newLore);
//     }
// }


// Path: src/test/java/myessentials/test/entities/tool/FakeTool.java
import myessentials.entities.api.BlockPos;
import myessentials.entities.api.tool.Tool;
import net.minecraft.entity.player.EntityPlayer;

package myessentials.test.entities.tool;


public class FakeTool extends Tool {

    public int amountOfClicks = 0;

    protected FakeTool(EntityPlayer owner) {
        super(owner, "FakestTool");
    }

    // REF: Change the name of method to something different since it can be confused with the onItemUse method in items
    @Override
    public void onItemUse(BlockPos bp, int face) {