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

Lisenochek

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Lisenochek
Всем привет. Как вот можно проверить содержимое сундука в событии?
Перелазил англ.ведро, видимо, что я плохо искал.

Пытался так, но мне кажется, что это бред

JavaScript:
chest.getBlockInventory().getContents.equals(null)) {
}
 
Вот так, наверное.
Код:
if (chest.getInventory().contains(Material.CARROT_ITEM)) {
            //Код
 }
 
А мне надо проверить, содержит ли он ничего?
null не помогает
Гугл говорит, что так можно попробовать
Код:
public boolean isInvEmpty(Inventory inv) {
    for(ItemStack item : inv.getContents()) {
        if(item != null) {
            return false;
        }
    }
    return true;
}
 
Мне надо вставить это в событие, как условие, но не как метод.
 
Мне надо вставить это в событие, как условие, но не как метод.
На примере открытия сундука.
Код:
    @EventHandler
    public void onInventoryOpenEvent(InventoryOpenEvent e){
        InventoryHolder iH = e.getInventory().getHolder();
        if (iH instanceof Chest || iH instanceof DoubleChest){
            if(isInvEmpty(e.getInventory())){
                //Код
            }
        }
    }

    public boolean isInvEmpty(Inventory inv) {
        for(ItemStack item : inv.getContents()) {
            if(item != null) {
                return false;
            }
        }
        return true;
    }
 
Мне надо вставить это в событие, как условие, но не как метод.
Так сделай из него условие, что ты тупишь то?
Код:
public void isInvEmpty(Inventory inv) {
    for(ItemStack item : inv.getContents()) {
        if(item != null) {
           //тут если не пустой
           return;
        }
    }
    //если пустой;
}
 
На примере открытия сундука.
Код:
    @EventHandler
    public void onInventoryOpenEvent(InventoryOpenEvent e){
        InventoryHolder iH = e.getInventory().getHolder();
        if (iH instanceof Chest || iH instanceof DoubleChest){
            if(isInvEmpty(e.getInventory())){
                //Код
            }
        }
    }

    public boolean isInvEmpty(Inventory inv) {
        for(ItemStack item : inv.getContents()) {
            if(item != null) {
                return false;
            }
        }
        return true;
    }
Спасибо, разобрался!
 
Коротко о том, что такое программирование.
 
Все же не то было событие, надо было править код
Я о том, что простейшие Java-задачи гуглятся в контексте майнкрафта. Такое ощущение, что перебрать все предметы и проверить на null крайне сложно. Я бы посоветовал тебе и товарищу @SaloEater начать с азов джавы. Серьёзно.
 
Я о том, что простейшие Java-задачи гуглятся в контексте майнкрафта. Такое ощущение, что перебрать все предметы и проверить на null крайне сложно. Я бы посоветовал тебе и товарищу @SaloEater начать с азов джавы. Серьёзно.
Я не умею думать быстро, поэтому пользуюсь гуглом.
 
Я не умею думать быстро, поэтому пользуюсь гуглом.
Тут не нужно думать быстро - задача элементарная. Достаточно понимать принцип языка. Самому писать код гораздо быстрее и полезнее.
Впрочем, это лишь совет. Можно и дальше пытаться гуглить весь код и создавать десятки тем на RuBukkit, надеясь на помощь и адекватность местных комментаторов.
 
Последнее редактирование:
а нельзя проще?
ItemStack cmd137 = new ItemStack(Material.DIAMOND, 1).

Далее вызывать PlayerInteractEvent, проверить что мы кликаем на блок и блок это сундук, и дальше - if (chest.getInventory().contains(cmd137)) {
Как проверить что мы кликаем на сундук и получить chest - я тебе уже писал )) ыыы
(сказал говнокодер)
SNOOP FEEDING
 
Назад
Верх