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

Помогите containsAtLeast() не считывает мету

Тема в разделе "Разработка плагинов для новичков", создана пользователем Evdokimov, 5 фев 2023.

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

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

    Баллы:
    76
    Имя в Minecraft:
    evdokimov27
    Написал код на поиск в инвентаре определенных предметов, все работает, но как только меняю Material на
    ItemStack и добавляю к нему ItemMeta он перестает видеть этот объект, хоть он и присутствует

    Рабочий код
    public boolean CheckItems(Player p, Material item, String name, int amount) {
    return p.getInventory().containsAtLeast(new ItemStack(item), amount);
    }

    Не рабочий код
    public boolean CheckItems(Player p, ItemStack item, String name, int amount) {
    ItemMeta meta = item.getItemMeta();
    meta.setDisplayName(name);
    item.setItemMeta(meta);
    return p.getInventory().containsAtLeast(item, amount);
    }
     
    Последнее редактирование: 5 фев 2023
  2. Автор темы
    Evdokimov

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

    Баллы:
    76
    Имя в Minecraft:
    evdokimov27
    условие: CheckItems(p, new ItemStack(Material.STONE), ChatColor.DARK_RED+"Веревка", 10)

    [​IMG]
    Слева то что в руке, справа то что нужно по условию
     
    Последнее редактирование: 5 фев 2023
  3. Sturm_PT

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

    Баллы:
    76
    Так ты можешь свой метод написать, просто циклом пройди по всем предметам в инвентаре
    Если религия требует именно bukkitовским сделать, посмотри на результат yourItem.isSimilar(checkItem) и копай от этого
     
  4. Автор темы
    Evdokimov

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

    Баллы:
    76
    Имя в Minecraft:
    evdokimov27
    Окей, спасибо, думал мб есть нормальные функции, чтобы циклом не гонять каждый раз
     
  5. Sturm_PT

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

    Баллы:
    76
    Так, скорее всего, в ведро апи тот же цикл
     
  6. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    containsAtLeast сам по себе внутри цикл содержит:
    upload_2023-2-6_0-18-39.png
     

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