@Override public Multimap<String, AttributeModifier> getAttributeModifiers(EntityEquipmentSlot slot, ItemStack stack) { Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(slot); if (slot == EntityEquipmentSlot.MAINHAND) { multimap.removeAll(SharedMonsterAttributes.ATTACK_DAMAGE.getName()); multimap.removeAll(SharedMonsterAttributes.ATTACK_SPEED.getName()); multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", attackDamage, 0)); multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", attackSpeed, 0)); } return multimap; }
@Override @Nonnull public Multimap<String, AttributeModifier> getAttributeModifiers(@Nonnull EntityEquipmentSlot equipmentSlot, @Nonnull ItemStack stack) { Multimap<String, AttributeModifier> res = super.getItemAttributeModifiers(equipmentSlot); if (equipmentSlot == EntityEquipmentSlot.MAINHAND) { if (DarkSteelConfig.darkSteelSwordPowerUsePerHit.get() <= 0 || EnergyUpgradeManager.getEnergyStored(stack) >= DarkSteelConfig.darkSteelSwordPowerUsePerHit.get()) { EnergyUpgrade energyUpgrade = EnergyUpgrade.loadAnyFromItem(stack); int level = energyUpgrade.getLevel(); res.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), DarkSteelAttributeModifiers.getAttackDamage(level)); res.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), DarkSteelAttributeModifiers.getAttackSpeed(level)); } } return res; }