Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Lisenochek, 22 июл 2016.

  1. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

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

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

    Код:
    chest.getBlockInventory().getContents.equals(null)) {
    }
     
  2. Хостинг MineCraft
    <
  3. SaloEater

    SaloEater Активный участник Пользователь

    Баллы:
    66
    Вот так, наверное.
    Код:
    if (chest.getInventory().contains(Material.CARROT_ITEM)) {
                //Код
     }
    
     
  4. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    А мне надо проверить, содержит ли он ничего?

    null не помогает
     
  5. SaloEater

    SaloEater Активный участник Пользователь

    Баллы:
    66
    Гугл говорит, что так можно попробовать
    Код:
    public boolean isInvEmpty(Inventory inv) {
        for(ItemStack item : inv.getContents()) {
            if(item != null) {
                return false;
            }
        }
        return true;
    }
     
  6. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    А где именно ты нашел?
     
  7. SaloEater

    SaloEater Активный участник Пользователь

    Баллы:
    66
    гугл
    тема
     
  8. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Мне надо вставить это в событие, как условие, но не как метод.
     
  9. SaloEater

    SaloEater Активный участник Пользователь

    Баллы:
    66
    На примере открытия сундука.
    Код:
        @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;
        }
     
  10. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Так сделай из него условие, что ты тупишь то?
    Код:
    public void isInvEmpty(Inventory inv) {
        for(ItemStack item : inv.getContents()) {
            if(item != null) {
               //тут если не пустой
               return;
            }
        }
        //если пустой;
    }
     
  11. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Спасибо, разобрался!
     
  12. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Коротко о том, что такое программирование.
     
  13. Автор темы
    Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Все же не то было событие, надо было править код
     
  14. SaloEater

    SaloEater Активный участник Пользователь

    Баллы:
    66
    Я просто показал, как использовать функцию, как условие.
     
  15. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Я о том, что простейшие Java-задачи гуглятся в контексте майнкрафта. Такое ощущение, что перебрать все предметы и проверить на null крайне сложно. Я бы посоветовал тебе и товарищу @SaloEater начать с азов джавы. Серьёзно.
     
  16. SaloEater

    SaloEater Активный участник Пользователь

    Баллы:
    66
    Я не умею думать быстро, поэтому пользуюсь гуглом.
     
  17. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Тут не нужно думать быстро - задача элементарная. Достаточно понимать принцип языка. Самому писать код гораздо быстрее и полезнее.
    Впрочем, это лишь совет. Можно и дальше пытаться гуглить весь код и создавать десятки тем на RuBukkit, надеясь на помощь и адекватность местных комментаторов.
     
    Последнее редактирование: 23 июл 2016
  18. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    а нельзя проще?
    ItemStack cmd137 = new ItemStack(Material.DIAMOND, 1).

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

    SaloEater Активный участник Пользователь

    Баллы:
    66
    тыкни
     
  20. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    пффы, сказал парень который все с интернета берет, который не умеет "думать быстро".
    Я тебя понял, спасибо, но "в мир" плагины не пишу
     
  21. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Нужно проверить, пуст ли сундук, а не обнаруживать конкретный предмет.
     

Поделиться этой страницей