Помогите [Решено] Добавить зачары к книге

Fenix78563

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Blc_Dragon
Доброго времени суток, форумчане.

Вопрос в заголовке. (нужны именно те зачары, которые потом можно в наковальне использовать)

Заранее спасибо
 
Добавить одиночный чар можно методом
Java:
addEnchantment(Enchantment.NAME_OF_ENCH, int levelOfEnch);
Так что примерно, это будет выглядеть так:
Java:
ItemStack bookItemStack = new ItemStack(Material.BOOK);
bookItemStack.addEnchantment(Enchantment.LUCK, 1);
Так же, можно добавить сразу несколько зачарований, указав в параметре метода addEnchantment() Map<Enchantment,Integer>.
 
Добавить одиночный чар можно методом
Java:
addEnchantment(Enchantment.NAME_OF_ENCH, int levelOfEnch);
Так что примерно, это будет выглядеть так:
Java:
ItemStack bookItemStack = new ItemStack(Material.BOOK);
bookItemStack.addEnchantment(Enchantment.LUCK, 1);
Так же, можно добавить сразу несколько зачарований, указав в параметре метода addEnchantment() Map<Enchantment,Integer>.
в таком случае эту книгу нельзя использовать в наковальне. это получается как обычный зачареный предмет.
 
в таком случае эту книгу нельзя использовать в наковальне. это получается как обычный зачареный предмет.
Вот, состряпал на скорую руку, оно работает, но я думаю можно лучше реализовать:
Java:
        if(event.getPlayer().getItemInHand().getType() == Material.BOOK) {
            event.getPlayer().getItemInHand().setType(Material.ENCHANTED_BOOK);
            EnchantmentStorageMeta enchStorageMeta = (EnchantmentStorageMeta) event.getPlayer().getItemInHand().getItemMeta();
            enchStorageMeta.addStoredEnchant(Enchantment.DURABILITY, 1, false);
            event.getPlayer().getItemInHand().setItemMeta(enchStorageMeta);
Сейчас попытаюсь сократить.
 
Вот, состряпал на скорую руку, оно работает, но я думаю можно лучше реализовать:
Java:
        if(event.getPlayer().getItemInHand().getType() == Material.BOOK) {
            event.getPlayer().getItemInHand().setType(Material.ENCHANTED_BOOK);
            EnchantmentStorageMeta enchStorageMeta = (EnchantmentStorageMeta) event.getPlayer().getItemInHand().getItemMeta();
            enchStorageMeta.addStoredEnchant(Enchantment.DURABILITY, 1, false);
            event.getPlayer().getItemInHand().setItemMeta(enchStorageMeta);
Сейчас попытаюсь сократить.
Спасибо, мне и так пойдет. я не гонюсь за тем чтобы вычеркнуть пару лишних строк кода.

Тему могу оставить открытой, если будет желание - сокращайте.
 
Ну так правильно, ибо нужна енчант книга, а не простая.
я использовал энчант книгу, и то что у @AtomicInteger в коде нарисована обычная меня не смущает. Я умею подгибать коды под себя.
Java:
event.getPlayer().getItemInHand().setType(Material.ENCHANTED_BOOK);
Я перевожу обычную книгу в ENCHANTED_BOOK.Кстати, можно как-нибудь без перевода?
 
Java:
event.getPlayer().getItemInHand().setType(Material.ENCHANTED_BOOK);
Я перевожу обычную книгу в ENCHANTED_BOOK.Кстати, можно как-нибудь без перевода?
да, вашим же кодом. только без переводов книги. просто сразу указываем зачареную и все
 
да, вашим же кодом. только без переводов книги. просто сразу указываем зачареную и все
Я просто подумал что в качестве входного материала должны быть обычная книга, но если можно зачареную то это ещё лучше.
 
Назад
Верх