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

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

SolurEXS

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

А как получить кол-во этого предмета?
 
И то не правильно чекаешь.
if(inv.contains(new ItemStack(Material.DIRT))) {}
Кол-во получать так:
ItemStack#getCount();
 
Можно кодом, как получить кол-во.
Я кинул не кодом? Удивительно, но я кинул кодом.
Ты хоть ООП учил?

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

Мне сложно тут обьяснить, напиши в дискорд: ʟᴜᴍɪɴᴀᴛᴇ#9999
 
Я кинул не кодом? Удивительно, но я кинул кодом.
Ты хоть ООП учил?

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

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

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

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

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

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

Если ты ооп учил то ты должен понимать что значит ItemStack#getCount()
Это метод getCount в классе ItemStack.

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

Код:
Stream.of(inv.getContents()).filter(item -> item.getType().equals(Material.DIRT)).forEach(item -> {
    // Ну вот, item это предмет, сравнивай количество и всё.
});
 
Если ты ооп учил то ты должен понимать что значит ItemStack#getCount()
Это метод getCount в классе ItemStack.

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

Код:
Stream.of(inv.getContents()).filter(item -> item.getType().equals(Material.DIRT)).forEach(item -> {
    // Ну вот, item это предмет, сравнивай количество и всё.
});
Нет метода getCount... есть getAmount
 
PHP:
public int getAmountOfItem(Inventory inventory, Material material) {
    return Arrays.stream(inventory.getContents())
            .filter(stack -> stack != null && stack.getType() == material)
            .mapToInt(ItemStack::getAmount).sum();
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх