Проверить находится ли определенный предмет у игрока в хотбаре.

Версия Minecraft
1.16.4
API
Forge
17
1
1
Как можно проверить находится ли определенный предмет у игрока в хотбаре?
 

sk9zist :l

Исправился
981
18
157
Java:
for (int i=0; i <= player.inventory.getHotbarSize(); i++)
{
    if(player.inventory.mainInventory.get(i).getItem() == ItemReg.твой_предмет)
    {
        // предмет находиться в одном из слотов хотбара.
    } else {
        // предмета нет в хотбаре.
    }
    i = player.inventory.getHotbarSize();
}
Сделаешь на 1.16. А так думаю ты понял, надо циклом проходиться.
 
1,560
86
204
Пофикшенный вариант:
public boolean isItemInHotbar(PlayerEntity player) {
    for (int i = 0; i < 9; i++) {
        if (isMyItem(player.inventory.mainInventory.get(i))) {
            return true;
        }
    }

    ItemStack heldOffhand = player.getHeldItemOffhand();

    return isMyItem(heldOffhand);
}

public boolean isMyItem(ItemStack stack) {
    return stack.getItem() == MY_ITEM_INSTANCE;
}
 

sk9zist :l

Исправился
981
18
157
Надеюсь это под 1.16.4.

~~~
Вот тогда тебе:
супер-мега короткий вариант:
player.inventory.hasItemStack(new ItemStack(MY_ITEM_INSTANCE))
 
Последнее редактирование:
Сверху