- 122
- 4
- 6
Здорова все, вопрос в следующем создал крафт на улучшение все работает, но показатели при крафте не увеличиваются, подскажите как прописать чтоб увеличивался начальный показатель на заданное значение, при этом ничего лишнего не добавлялась.
Java:
private static final UUID[] ARMOR_MODIFIERS = new UUID[] {UUID.fromString("845DB27C-C624-495F-8C9F-6020A9A58B6B"), UUID.fromString("D8499B04-0E66-4726-AB29-64469D734E0D"), UUID.fromString("9F3D476D-C118-4544-8365-64846904B48E"), UUID.fromString("2AD3F246-FEE1-4E67-B886-69FD380BB150")};
@Override
public ItemStack getCraftingResult(InventoryCrafting inv) {
ItemStack stackUpArmor = ItemStack.EMPTY;
for (int i = 0; i < inv.getSizeInventory(); i++) {
ItemStack stack = inv.getStackInSlot(i);
if (stack != null && stack.getItem() instanceof ItemArmor) {
ItemArmor armor = (ItemArmor) stack.getItem();
if (armor.getEquipmentSlot() == armor.armorType) {
stackUpArmor = stack.copy();
break;
}
}
}
if (stackUpArmor == ItemStack.EMPTY) return ItemStack.EMPTY;
EntityEquipmentSlot slot = ((ItemArmor) stackUpArmor.getItem()).getEquipmentSlot();
ItemArmor.ArmorMaterial am = ((ItemArmor) stackUpArmor.getItem()).getArmorMaterial();
Multimap mm = stackUpArmor.getAttributeModifiers(slot);
//вот это не получается
mm.put(SharedMonsterAttributes.ARMOR.getName(), new AttributeModifier(ARMOR_MODIFIERS[slot.getIndex()], "Armor modifier", (double) am.getDamageReductionAmount(slot) + 0.1f, 0));
return stackUpArmor;
}