[1.7.10] LOTR - Проблема модификаторов улучшения инструментов или оружия

Версия Minecraft
1.7.10
API
Forge
Доброго утра, сегодня я хочу поделиться с вами проблемой, над решением которой бьюсь уже неделю.
Предыстория: Мы решили покопаться в моде ЛОТР, скачали мастер-src с русской википедии мода, и сразу же нашли несколько багов при запуске в Эклипсе. Если все остальные решить удалось, то вот последний - нет, а именно со свитками-модификаторами. Что это такое? Эти свитки накладывают определенный эффект на инструмент или оружие, например, если взять железный меч и дать ему модификатор +1 урона, то к урону железного меча накладывается еще один дамаг. Вроде бы все просто, но при просмотре кода самого модификатора ошибку найти не удалось.

Вот сам код модификатора.
Java:
public class LOTREnchantmentDamage extends LOTREnchantment {
    private final float baseDamageBoost;

    public LOTREnchantmentDamage(String s, float boost) {
        super(s, new LOTREnchantmentType[] { LOTREnchantmentType.MELEE, LOTREnchantmentType.THROWING_AXE });
        baseDamageBoost = boost;
        //следующие два блока определяют количество материала для усовершенствования   
        if (baseDamageBoost >= 0.0f) {
            setValueModifier((7.0f + baseDamageBoost * 5.0f) / 7.0f);
        } else {
            setValueModifier((7.0f + baseDamageBoost) / 7.0f);
        }
    }

    public float getBaseDamageBoost() {    //геттер для получение дамага модификатора
        return baseDamageBoost;
    }

    public float getEntitySpecificDamage(EntityLivingBase entity) {
        return 0.0f;
    }

Далее метод getBaseDamageBoost() вызывается методом calcBaseMeleeDamageBoost() в своем блоке инициализации:

Java:
public static float calcBaseMeleeDamageBoost(ItemStack itemstack) {
        float damage = 0.0f;
        if (itemstack != null) {
            List<LOTREnchantment> enchants = LOTREnchantmentHelper.getEnchantList(itemstack);
            for (LOTREnchantment ench : enchants) {
                if (!(ench instanceof LOTREnchantmentDamage)) {
                    continue;
                }
                damage += ((LOTREnchantmentDamage)ench).getBaseDamageBoost();
            }
        }
        return damage;
    }

Тот в свою очередь вызывается методом func_152377_a:


Java:
public static float func_152377_a(ItemStack itemstack, EnumCreatureAttribute creatureAttribute) {
            return LOTREnchantmentHelper.calcBaseMeleeDamageBoost(itemstack);
        }

Который в свою очередь вызывается вот этим:


Java:
public static float getMeleeDamageBonus(ItemStack itemstack) {
        Multimap weaponAttributes;
        float damage = 0.0f;
        if (itemstack != null && (weaponAttributes = itemstack.getAttributeModifiers()) != null) {
            for (Object obj : weaponAttributes.entries()) {
                Map.Entry e = (Map.Entry) obj;
                AttributeModifier mod = (AttributeModifier) e.getValue();
                if (mod.getID() != LOTRItemSword.accessWeaponDamageModifier()) {
                    continue;
                }
                damage = (float)(damage + mod.getAmount());
                damage += LOTRReplacedMethods.Enchants.func_152377_a(itemstack, EnumCreatureAttribute.UNDEFINED);
            }
        }
        return damage;
    }

Может ли здесь быть ошибка, и это подтвердит мою теорию о том, что я просто слеп и глуп, или проблема гораздо глубже?
Всем неравнодушным спасибо за помощь.
 
Сверху