Ломается инструмент

Версия Minecraft
1.7.10
26
1
Начал делать аддон для ic2. Решил сделать бур, он вроде работает, но нет. Когда он садится он сразу ломается, и когда его заряжаешь он не забирает энергию из хранилища, хотя сам и заряжается
Основа:
@SuppressWarnings("all")
public class ItemToolBigMiningDrill extends ItemElectricTool {
    protected double operationCost;
    private Set<Object> toolProperties;

    public ItemToolBigMiningDrill(String name, int energyTier, double maxCharge, double transferLimit, boolean providesEnergy, double operationCost) {
        super(name, energyTier, maxCharge, transferLimit, providesEnergy);
        this.operationCost = operationCost;
        this.toolProperties = new HashSet(Arrays.asList(new Object[] { Items.iron_pickaxe, Items.diamond_shovel }));
    }


    @Override
    public int getHarvestLevel(ItemStack stack, String toolClass) {
        if ((toolClass.equals("pickaxe")) || (toolClass.equals("shovel"))) {
            return this.toolMaterial.getHarvestLevel();
        }
        return super.getHarvestLevel(stack, toolClass);
    }


}
ItemElectric Tools:
public class ItemElectricTool extends ItemTool implements IElectricItem {
    // Vars
    protected String name;
    protected double operationCost;

    // -------------- IElectricItem vars -------------- //
    protected int energyTier;
    protected double maxCharge;
    protected double transferLimit;
    protected boolean providesEnergy;

    // -------------- Constructor -------------- //
    public ItemElectricTool(String name, int energyTier, double maxCharge, double transferLimit, boolean providesEnergy) {
        super(0.0F, ToolMaterial.IRON, new HashSet());

        this.name = name;
        this.energyTier = energyTier;
        this.maxCharge = maxCharge;
        this.transferLimit = transferLimit;
        this.providesEnergy = providesEnergy;

        setUnlocalizedName(this.name);
        setMaxDamage(27);
        setMaxStackSize(1);
        setNoRepair();
    }

    // -------------- Item methods -------------- //
    @Override
    public int getItemEnchantability() {
        return 0;
    }

    @Override
    public boolean isBookEnchantable(ItemStack stack, ItemStack book) {
        return false;
    }

    @Override
    public boolean isRepairable() {
        return false;
    }

    @Override
    public boolean getIsRepairable(ItemStack itemStack1, ItemStack itemStack2) {
        return false;
    }

    @Override
    public boolean hitEntity(ItemStack itemstack, EntityLivingBase entityliving, EntityLivingBase entityliving1) {
        return true;
    }

    // -------------- Client item methods -------------- //
    @Override
    @SideOnly(Side.CLIENT)
    public void getSubItems(Item item, CreativeTabs tabs, List itemList) {
        // Charged Item
        ItemStack chargedItem = new ItemStack(this, 1);
        ElectricItem.manager.charge(chargedItem, Double.POSITIVE_INFINITY, Integer.MAX_VALUE, true, false);
        itemList.add(chargedItem);

        // Depleted Item
        ItemStack depletedItem = new ItemStack(this, 1, getMaxDamage());
        itemList.add(depletedItem);
    }

    @Override
    @SideOnly(Side.CLIENT)
    public void registerIcons(IIconRegister iconRegister) {
        this.itemIcon = iconRegister.registerIcon(Main.MODID + ":" + this.name);
    }

    @Override
    @SideOnly(Side.CLIENT)
    public IIcon getIcon(ItemStack itemStack, int pass) {
        return this.itemIcon;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public boolean requiresMultipleRenderPasses() {
        return true;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public boolean hasEffect(ItemStack itemStack, int pass) {
        return false;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean var) {
        list.add(StatCollector.translateToLocal("tooltip.tool.PowerTier") + " " + this.energyTier);
    }

    // -------------- IElectricItem implementation -------------- //
    @Override
    public boolean canProvideEnergy(ItemStack itemStack) {
        return this.providesEnergy;
    }

    @Override
    public Item getChargedItem(ItemStack itemStack) {
        return this;
    }

    @Override
    public Item getEmptyItem(ItemStack itemStack) {
        return this;
    }

    @Override
    public double getMaxCharge(ItemStack itemStack) {
        return this.maxCharge;
    }

    @Override
    public int getTier(ItemStack itemStack) {
        return this.energyTier;
    }

    @Override
    public double getTransferLimit(ItemStack itemStack) {
        return this.transferLimit;
    }
}

Сам предмет:
public class ItemToolBigIridiumDrill extends ItemToolBigMiningDrill {
    public ItemToolBigIridiumDrill(String name, String texture, int energyTier, double maxCharge, double transferLimit, boolean providesEnergy, double operationCost) {
        super(name, energyTier, maxCharge, transferLimit, providesEnergy, operationCost);
        this.setCreativeTab(ConfigInfo.tabAFRebornTools);
        this.setTextureName(Main.MODID + ":" + texture);
    }

    @Override
    public float getDigSpeed(ItemStack itemStack, Block block, int meta) {
        if (!ElectricItem.manager.canUse(itemStack, this.operationCost)) {
            return 1.0F;
        }
        if (canHarvestBlock(block, itemStack)) {
            return 15.0F;
        }
        return 1.0F;
    }

    @Override
    public boolean canHarvestBlock(Block block, ItemStack stack) {
        return (Items.diamond_pickaxe.canHarvestBlock(block, stack) ||
                Items.diamond_pickaxe.func_150893_a(stack, block) > 1.0F ||
                Items.diamond_shovel.canHarvestBlock(block, stack) ||
                Items.diamond_shovel.func_150893_a(stack, block) > 1.0F);
    }

    @Override
    public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityplayer) {
        if (FMLCommonHandler.instance().getEffectiveSide().isClient()) {
            return itemStack;
        }

        Map<Integer, Integer> enchantmentMap = new HashMap();

        if(EnchantmentHelper.getEnchantmentLevel(Enchantment.silkTouch.effectId, itemStack) == 0) {
            enchantmentMap.put(Integer.valueOf(Enchantment.silkTouch.effectId), Integer.valueOf(1));
        }
        else {
            enchantmentMap.put(Integer.valueOf(Enchantment.fortune.effectId), Integer.valueOf(3));
        }
        EnchantmentHelper.setEnchantments(enchantmentMap, itemStack);
        return super.onItemRightClick(itemStack, world, entityplayer);
    }

    @Override
    @SideOnly(Side.CLIENT)
    public void getSubItems(Item item, CreativeTabs tabs, List itemList) {
        Map<Integer, Integer> enchantmentMap = new HashMap<Integer, Integer>();
        enchantmentMap.put(Integer.valueOf(Enchantment.fortune.effectId), Integer.valueOf(3));

        // Charged Item
        ItemStack chargedItem = new ItemStack(this, 1);
        ElectricItem.manager.charge(chargedItem, Double.POSITIVE_INFINITY, Integer.MAX_VALUE, true, false);
        EnchantmentHelper.setEnchantments(enchantmentMap, chargedItem);
        NBTTagCompound nbtDataCharged = Util.getOrCreateNbtData(chargedItem);
        itemList.add(chargedItem);

        // Depleted Item
        ItemStack depletedItem = new ItemStack(this, 1);
        ElectricItem.manager.charge(depletedItem, 0.0D, Integer.MAX_VALUE, true, false);
        EnchantmentHelper.setEnchantments(enchantmentMap, depletedItem);
        NBTTagCompound nbtDataDepleted = Util.getOrCreateNbtData(chargedItem);
        itemList.add(depletedItem);
    }

    @SideOnly(Side.CLIENT)
    public EnumRarity getRarity(ItemStack itemStack) {
        return EnumRarity.epic;
    }
}

В чем может быть проблема?
 
Сверху