Вопрос Как добавить итемстаку зачарования

Версия Minecraft
1.16.X

QuodLitee

Заблокирован
Сообщения
27
нужно чтобы итемстаку добавляли зачарования через конфиг таким образом:
enchants:
- "PROTECTION_ENVIRONMENTAL;5"
- "OXYGEN;2"
написал метод добавления зачарований, но он не работает
Код:
public static void addEnchantments(ItemStack item, String enchantmentString) {
String[] enchantmentParts = enchantmentString.split(";");
if (enchantmentParts.length == 2) {
String enchantmentName = enchantmentParts[0];
int level = Integer.parseInt(enchantmentParts[1]);
Enchantment enchantment = Enchantment.getByKey(NamespacedKey.minecraft(enchantmentName.toLowerCase()));
if (enchantment!= null) {
            item.addUnsafeEnchantment(enchantment, level);
        }
    }
}

public static void applyEnchantments(ItemStack item, List<String> enchantmentList) {
 for (String enchantmentString : enchantmentList) {
 addEnchantments(item, enchantmentString);
    }
}
в итемстак добавлял так: applyEnchantments(item1, Main.heads.getStringList("Head1.enchants"));
 
Добавь это в айтем мету:
Java:
                                List<String> enchantmentsList = this.getConfig().getStringList("enchantments");
                                for (String enchantmentInfo : enchantmentsList) {
                                    String enchantmentName = enchantmentInfo.split(";")[0];
                                    double level = Double.parseDouble(enchantmentInfo.split(";")[1]);
                                    МетаПредмета.addEnchant(Enchantment.getByName(enchantmentName), (int) level, false);
                                }

И вот эти строчки в конфиг:

YAML:
    enchantments:
    # - 'Имя зачарования;сила зачарования'
      - 'DAMAGE_ALL;3' # Острота
 
Добавь это в айтем мету:
Java:
                                List<String> enchantmentsList = this.getConfig().getStringList("enchantments");
                                for (String enchantmentInfo : enchantmentsList) {
                                    String enchantmentName = enchantmentInfo.split(";")[0];
                                    double level = Double.parseDouble(enchantmentInfo.split(";")[1]);
                                    МетаПредмета.addEnchant(Enchantment.getByName(enchantmentName), (int) level, false);
                                }

И вот эти строчки в конфиг:

YAML:
    enchantments:
    # - 'Имя зачарования;сила зачарования'
      - 'DAMAGE_ALL;3' # Острота
а если игрок захочет зачаровать предмет на уровень выше максимального, как это можно реализовать?
 
Назад
Сверху Снизу