Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Fenix78563, 2 дек 2016.

  1. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

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

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

    Заранее спасибо
     
  2. Хостинг MineCraft
    <
  3. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Добавить одиночный чар можно методом
    Код:
    addEnchantment(Enchantment.NAME_OF_ENCH, int levelOfEnch);
    Так что примерно, это будет выглядеть так:
    Код:
    ItemStack bookItemStack = new ItemStack(Material.BOOK);
    bookItemStack.addEnchantment(Enchantment.LUCK, 1);
    Так же, можно добавить сразу несколько зачарований, указав в параметре метода addEnchantment() Map<Enchantment,Integer>.
     
  4. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    в таком случае эту книгу нельзя использовать в наковальне. это получается как обычный зачареный предмет.
     
  5. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Вот, состряпал на скорую руку, оно работает, но я думаю можно лучше реализовать:
    Код:
            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);
    Сейчас попытаюсь сократить.
     
  6. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Спасибо, мне и так пойдет. я не гонюсь за тем чтобы вычеркнуть пару лишних строк кода.

    Тему могу оставить открытой, если будет желание - сокращайте.
     
  7. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ну так правильно, ибо нужна енчант книга, а не простая.
     
  8. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    я использовал энчант книгу, и то что у @AtomicInteger в коде нарисована обычная меня не смущает. Я умею подгибать коды под себя.
     
  9. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ну ок.
     
  10. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Код:
    event.getPlayer().getItemInHand().setType(Material.ENCHANTED_BOOK);
    Я перевожу обычную книгу в ENCHANTED_BOOK.Кстати, можно как-нибудь без перевода?
     
  11. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    да, вашим же кодом. только без переводов книги. просто сразу указываем зачареную и все
     
  12. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Я просто подумал что в качестве входного материала должны быть обычная книга, но если можно зачареную то это ещё лучше.
     

Поделиться этой страницей