1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как проверить какой предмет держит игрок в руке?

Тема в разделе "Разработка плагинов для новичков", создана пользователем KaroBallga, 8 июн 2021.

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

    KaroBallga Ньюби Пользователь

    Баллы:
    1
    У меня есть конфиг и как проверить, если из списка items, игрок держит какой-то предмет, то происходило что-то дальше, дайте пожалуйста примерный код
    upload_2021-6-8_13-9-16.png
     
  2. Gru2303

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

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Добавляй nbt теги к предмету
     
  3. OJIEKCAHDP

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

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    player.getInventory().getItemInMainHand()
    Дальше от него получаешь имя, лор и т.д и сравниваешь с предметами из конфига
     
  4. NuaN

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

    Баллы:
    96
    Имя в Minecraft:
    NuaN
    Да, вот это хороший и простой вариант.

    Еще дополню: можно в самую последнюю строчку Lore черным шрифтом добавлять ключевое слово и по нему уже проверять. Тоесть писать generator1 или generator2 (крч. уникальное название давать предметам) черным текстом, и игроки не заметят что это такое написано.
     
  5. Автор темы
    KaroBallga

    KaroBallga Ньюби Пользователь

    Баллы:
    1
    Можно примерный код как это сделать?
     
  6. Автор темы
    KaroBallga

    KaroBallga Ньюби Пользователь

    Баллы:
    1
    Я знаю как сравнить лор, имя предмета, просто у меня есть кастом-айтемы, чтобы можно было добавлять их хоть штук 20, но как взять items.generate_0ne, items.generate_two, если допустим пользователей плагина изменит его на generate1293192, в общем я плохо формулирую..
     
  7. NuaN

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

    Баллы:
    96
    Имя в Minecraft:
    NuaN
    1. Получаешь предмет
    2. Вытягиваешь из него лор в ArrayList
    3. Из ArrayList берешь последнюю строку и ее проверяешь - это и будет твой идентификатор.
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Используй CustomModelData, там будет 2147483647 вариантов для подписи предметов и на каждый номер можно свою модель повесить.
     
  9. Автор темы
    KaroBallga

    KaroBallga Ньюби Пользователь

    Баллы:
    1
    слишком сильно туплю, дайте пожалуйста примерный код
     
  10. NuaN

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

    Баллы:
    96
    Имя в Minecraft:
    NuaN
    Проверить CustomModelData:
    Код:
    ItemStack is = ...;
    
    if (is.getItemMeta().hasCustomModelData() && is.getItemMeta().getCustomModelData() == 200) {
        //предмет имеет номер 200
    }
    Установить CustomModelData:
    https://hub.spigotmc.org/javadocs/s...ta.html#setCustomModelData(java.lang.Integer)
     

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