- Баллы
- 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;
}
Нужно на инстанс проверять не блок, а его стейт, а ещё getContents().length имеет фиксированный размер, так что нужно каждый элемент проверить, если один из них не null и не воздух, то значит он (инвентарь) не пустой.Вроде так
Код:Block block = getBlock(); if (block instanceof Chest) { Chest chest = (Chest) block.getState(); Inventory inv = chest.getBlockInventory(); boolean empty = inv.getContents().length > 0; }
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, спасибо за исправленный кодНужно на инстанс проверять не блок, а его стейт, а ещё 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; } } }