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

Помогите Как мне сделать проверку имени предмета на который игрок кликнул в инвентаре?

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    AguRChek_TV
    Раньше я проверял слоты на у меня много предметов с одинаковым именем и изменёнными текстурами которые образуют карта минирежима, и проверять нажатия на каждый из 16 слотоы не очень удобно.
     
  2. Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
  3. iD3LSY

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

    Баллы:
    76
    Перепиши на русском, перечитал 3 раза, но ничего не понял.
    Хитро придумал: отвечать какой-то водой. Это никому не поможет. Просто фарманул одно сообщение в стату.
     
  4. Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Ээ, нууу. Эвенты это такие события, которые вызывают определённые методы когда что-то происходит, в данном случае когда происходит клик в инвентаре вызывает этот метод. В них передаётся объект, который содержит всю информацию об событии. В данном случае это InventoryClickEvent event. Дальше я получил из переданной информации сам предмет на который кликнул с помощью event.getCurrentItem();
     
  5. iD3LSY

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

    Баллы:
    76
    Воу-воу, полегче, я смог прочитать твои знания еще с прошлого поста, когда ты даже не загуглил саму ошибку. Это вода, т.к. у него это все уже есть, да и в целом, каждый может переписать, что ты кинул, по туториалу.

    Вопрос, мне лично, до конца не ясен. Не знаю, поможет или нет, но у ItemStack есть метод, который называется isSimilar. В аргументы он принимает другой ItemStack; возвращает boolean: true, если предметы одинаковые (учитывает все, кроме количества: айди типа, дата, нбт).

    Если что-то написал непонятно, читай тут.
     
  6. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Код:
    ItemStack item = ...; // InventoryClickEvent#getClickedItem(); ?
    ItemMeta meta = item.getItemMeta();
    if ("CustomName".equals(meta.getDisplayName()) {
        // ...
    }
     
  7. iD3LSY

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

    Баллы:
    76
    Как-то я невнимательно поступил :|

    Ну, в любом случае, будет полезно использовать ItemStack#isSimilar(ItemStack), т.к. это по-прежнему точнее.
     
  8. alexandrage

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

    Баллы:
    173
    Зависит от нужд же. isSimilar всю мету чекает, это не всегда нужно.
     

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