- Баллы
- 66
Приветствую! Возникла такая проблема: в моем проекте есть кастомное оружие: косы, булавы, кинжалы и тд. Собственно, встал вопрос об их перековке в незеритовые версии. На данный момент есть такой код, однако, он хоть и переделывает сам предмет, не меняет его мету. Идей, что с ним не так нет, аналогичный код с PrepareCraftIvent работает без изъянов. Подскажите, пожалуйста, что можно сделать.
PHP:
@EventHandler
public void PrepareSmithing(PrepareSmithingEvent e) {
SmithingInventory inventory = e.getInventory();
ItemStack tool = new ItemStack(Material.DIAMOND_SWORD);
ItemMeta a = tool.getItemMeta();
AttributeModifier modifier = new AttributeModifier(UUID.randomUUID(), "generic.attackDamage", 4.5f, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
a.addAttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE, modifier);
AttributeModifier modifier2 = new AttributeModifier(UUID.randomUUID(), "generic.attackSpeed", 3, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
a.addAttributeModifier(Attribute.GENERIC_ATTACK_SPEED, modifier2);
a.setDisplayName(ChatColor.WHITE + "Алмазный кинжал");
tool.setItemMeta(a);
ItemStack me = inventory.getItem(1);
ItemStack y = inventory.getItem(1);
if(y.getType() == Material.DIAMOND_SWORD) {
if(y.hasItemMeta()) {
if(y.getItemMeta().equals(a)) {
if(me.getType() == Material.NETHERITE_INGOT) {
ItemStack diamonddaggere = new ItemStack(Material.NETHERITE_SWORD);
ItemMeta meta = diamonddaggere.getItemMeta();
AttributeModifier modifier3 = new AttributeModifier(UUID.randomUUID(), "generic.attackDamage", 6, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
meta.addAttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE, modifier3);
AttributeModifier modifier4 = new AttributeModifier(UUID.randomUUID(), "generic.attackSpeed", 3, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
meta.addAttributeModifier(Attribute.GENERIC_ATTACK_SPEED, modifier4);
meta.setDisplayName(ChatColor.WHITE + "Незеритовый кинжал");
diamonddaggere.setItemMeta(meta);
e.setResult(diamonddaggere);
}
}
}
}