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

AguRChek_TV

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
AguRChek_TV
как проверить пуст ли сундук
 
Фором проверять объем сундука и дальше проверять есть ли в нем айтемы
 
как проверить пуст ли сундук
Вроде так
Код:
Block block = getBlock();
if (block instanceof Chest) {
    Chest chest = (Chest) block.getState();
    Inventory inv = chest.getBlockInventory();
    boolean empty = inv.getContents().length > 0;
}
UPD: я точно не помню, но вроде каждый элемент массива итемов null и нужно проверять их
 
Вроде так
Код:
Block block = getBlock();
if (block instanceof Chest) {
    Chest chest = (Chest) block.getState();
    Inventory inv = chest.getBlockInventory();
    boolean empty = inv.getContents().length > 0;
}
Нужно на инстанс проверять не блок, а его стейт, а ещё getContents().length имеет фиксированный размер, так что нужно каждый элемент проверить, если один из них не null и не воздух, то значит он (инвентарь) не пустой.


Код:
Block block = getBlock();
BlockState state = block.getState();

if (state instanceof Chest) {
    Chest chest = state;
    Inventory inventory = chest.getBlockInventory();
    boolean empty = true;

    for (ItemStack item : inventory.getContents()) {
        if (item != null && item.getType() != Material.AIR) {
            empty = false;
            break;
        }
    }
}
 
Последнее редактирование:
Нужно на инстанс проверять не блок, а его стейт, а ещё getContents().length имеет фиксированный размер, так что нужно каждый элемент проверить, если один из них не null и не воздух, то значит он (инвентарь) не пустой.


Код:
Block block = getBlock();
BlockState state = block.getState();

if (state instanceof Chest) {
    Chest chest = state;
    Inventory inventory = chest.getBlockInventory();
    boolean empty = true;

    for (ItemStack item : inventory.getContents()) {
        if (item != null && item.getType() != Material.AIR) {
            empty = false;
            break;
        }
    }
}
на скорую руку писал, забыл про state, а про фиксированный размер да, я ниже написал, что надо будет проверять на null, спасибо за исправленный код
 
Воздух там не вернет точно, если ничего не поменялось.
 
Назад
Верх