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

Помогите Проверить, есть ли предмет в инвентаре и его кол-во.

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

Статус темы:
Закрыта.
  1. Автор темы
    SolurEXS

    SolurEXS Ньюби

    Баллы:
    1
    Имя в Minecraft:
    SolurEXS
    Сам предмет я умею проверять.
    if (inv.contains(Material.DIRT)) {
    }

    А как получить кол-во этого предмета?
     
  2. Luminate_

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

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    И то не правильно чекаешь.
    if(inv.contains(new ItemStack(Material.DIRT))) {}
    Кол-во получать так:
    ItemStack#getCount();
     
  3. Автор темы
    SolurEXS

    SolurEXS Ньюби

    Баллы:
    1
    Имя в Minecraft:
    SolurEXS
    Можно кодом, как получить кол-во.
     
  4. Luminate_

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

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    Я кинул не кодом? Удивительно, но я кинул кодом.
    Ты хоть ООП учил?

    ItemStack item = ...;
    item.getCount();

    Мне сложно тут обьяснить, напиши в дискорд: ʟᴜᴍɪɴᴀᴛᴇ#9999
     
  5. Автор темы
    SolurEXS

    SolurEXS Ньюби

    Баллы:
    1
    Имя в Minecraft:
    SolurEXS
    я ооп учил, просто ты так написал , и я не понял.

    ItemStack item = new ItemStack(Material.DIRT);
    item.getCount();

    есть ли варианты без создания item , а сразу в строку?
     
  6. Luminate_

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

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    Если ты ооп учил то ты должен понимать что значит ItemStack#getCount()
    Это метод getCount в классе ItemStack.

    Поверь, заместь item ты ставишь любой itemstack, тот который нао сравнять. Берешь стак из инвентаря и делаешь. ВОт как лямбдой сделать:

    Код:
    Stream.of(inv.getContents()).filter(item -> item.getType().equals(Material.DIRT)).forEach(item -> {
        // Ну вот, item это предмет, сравнивай количество и всё.
    });
     
  7. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Нет метода getCount... есть getAmount
     
  8. Luminate_

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

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    Кодил >2мес. назад, позабыл названия методов.
     
  9. TrashCode

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

    Баллы:
    31
    Имя в Minecraft:
    TrashCode
    PHP:
    public int getAmountOfItem(Inventory inventoryMaterial material) {
        return 
    Arrays.stream(inventory.getContents())
                .
    filter(stack -> stack != null && stack.getType() == material)
                .
    mapToInt(ItemStack::getAmount).sum();
    }
     
  10. Автор темы
    SolurEXS

    SolurEXS Ньюби

    Баллы:
    1
    Имя в Minecraft:
    SolurEXS
    Спасибо за ответ!
     
Статус темы:
Закрыта.

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