Как сделать так, чтобы предмет не выдавался повторно если он есть в инвентаре

Статус
Закрыто для дальнейших ответов.

Dynamite Play

Активный участник
Пользователь
Баллы
61
Здравствуйте. Я пишу свой первый плагин на выдачу меню и у меня возникла проблема. У меня получается выдать меню, но мне хотелось бы, чтобы после перезахода на сервер оно не выдавалось повторно если уже имеется в инвентаре у игрока. Буду очень благодарен за помощь!
Скрин того, что имеется, если кому-то нужно:
 

Вложения

  • Безымянный.png
    Безымянный.png
    15,4 КБ · Просмотры: 18
Проверяй в цикле весь инвентарь на наличие предмета и если он такой есть то return
 
Код:
for(int g = 0; g>= 35; g++){
if(p.getinventory.getitem(g) == item) return;
}
Писал с телефона могут быть ошибки.
конечно будут, данное условие никогда не вернет true, т.к. ссылки там как минимум разные.
более того цикл даже не запустится 0 не удовлетворит условию >=35
вместо 35 - Inventory#getSize() (мб по другому называется, не помню)
для проверки стаков - ItemStack#isSimilar()
 
конечно будут, данное условие никогда не вернет true, т.к. ссылки там как минимум разные.
более того цикл даже не запустится 0 не удовлетворит условию >=35
вместо 35 - Inventory#getSize() (мб по другому называется, не помню)
для проверки стаков - ItemStack#isSimilar()
Ок с цыклом да но предметы так можно сравнить.
 
конечно будут, данное условие никогда не вернет true, т.к. ссылки там как минимум разные.
более того цикл даже не запустится 0 не удовлетворит условию >=35
вместо 35 - Inventory#getSize() (мб по другому называется, не помню)
для проверки стаков - ItemStack#isSimilar()
М, хорошо. А можно покажешь как оно в итоге выглядеть будет?
 
Я говорю с мобилки так что так легче. Ладно убедили
Рубаккит неизменно радует меня, когда бы я сюда ни зашел, спасибо)

М, хорошо. А можно покажешь как оно в итоге выглядеть будет?
нет, поработай головой сам
 
М, хорошо. А можно покажешь как оно в итоге выглядеть будет?
Если ты постоянно будешь копипастить код то так ничего из этого и не поймешь. Попробуй разобратся что он сказал и просто изменить то что скинул я
 
Если ты постоянно будешь копипастить код то так ничего из этого и не поймешь. Попробуй разобратся что он сказал и просто изменить то что скинул я
Ладно, хорошо. Всем спасибо! Тему, как я понимаю, можно закрывать?
 
Код:
public boolean hasItem(ItemStack targetStack, Inventory inventory) {
    for (ItemStack stack : inventory.getContents())
        if (stack.isSimilar(targetStack)) return true;
    return false;
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх