ProGiple
Пользователь
- Сообщения
- 83
- Решения
- 1
Привет, разработчики! Начал писать плагин, в котором должна была быть функция изменения аттрибутов у предмета. Всё добавляется, но проблема в том, что если предмет ванильный то он не имеет свойства getAttributeModifiers(attribute), оно равно null, из-за этого всё работает не так как надо. Вот ласт код, на котором я остановился после некоторых попыток исправить это:
Прошу помочь мне с этим!
Уточнение: мне необходимо чтобы после применения метода на предмет у него считался аттрибут определённый, если он есть (не важно, предмет ванильный или уже изменённый), то к новому числу добавиться число уже текущее и именно оно должно примениться.
Если кому-то легче читать на фото:
Java:
private void addParam(ItemStack item, Attribute attribute, double amount) {
ItemMeta meta = item.getItemMeta();
double totalAmount = amount;
if (meta != null) {
Collection<AttributeModifier> modifierMap = meta.getAttributeModifiers(attribute);
if (modifierMap != null) {
for (AttributeModifier modifier : modifierMap) {
AttributeModifier.Operation operation = modifier.getOperation();
if (operation.equals(AttributeModifier.Operation.ADD_NUMBER)) {
totalAmount += modifier.getAmount();
}
if (operation.equals(AttributeModifier.Operation.ADD_SCALAR)) {
totalAmount += totalAmount * modifier.getAmount();
}
meta.removeAttributeModifier(attribute, modifier);
}
}
AttributeModifier modifier = new AttributeModifier(attribute.name(), totalAmount, AttributeModifier.Operation.ADD_NUMBER);
meta.addAttributeModifier(attribute, modifier);
item.setItemMeta(meta);
}
}
Прошу помочь мне с этим!
Уточнение: мне необходимо чтобы после применения метода на предмет у него считался аттрибут определённый, если он есть (не важно, предмет ванильный или уже изменённый), то к новому числу добавиться число уже текущее и именно оно должно примениться.
Если кому-то легче читать на фото:
Вам необходимо зарегистрироваться для просмотра изображений-вложений