Помогите Убрать открытие сундука

Статус
Закрыто для дальнейших ответов.

AntonMikon

Активный участник
Пользователь
Баллы
66
Код:
    @EventHandler
    public void Test(PlayerInteractEvent event) {
        Player p = event.getPlayer();
        Block b = (Block) event.getClickedBlock();
        if (event.getAction() == Action.RIGHT_CLICK_BLOCK && b.getType() == Material.CHEST) {
            if ((event.getBlockInventory().getName().equalsIgnoreCase("1")) {
                event.setCancelled(true);
                p.sendMessage("123test");
            }
        }
    }

Почему-то не работает. выдает ошибку в строчке, где проверяю название сундука
 
Не тот эвент, используй ОпенИнвенториИвент, ошибка скорее всего потому-что не у всех сундуков есть инвентарь с названием (name = null)
 
Теперь другая проблема, сундуки с названием "Сундук" не открываются, но это те сундуки, которым я прописал это название (/lore name Сундук) А стандартные сундуки открываются. Мне нужно, чтобы все сундуки с названием "Сундук" не открывались
 
Теперь другая проблема, сундуки с названием "Сундук" не открываются, но это те сундуки, которым я прописал это название (/lore name Сундук) А стандартные сундуки открываются. Мне нужно, чтобы все сундуки с названием "Сундук" не открывались
Скорее всего, имя дефолтного сундука равно null, так что в ивенте открытия, отправь себе сообщение с именем сундука и посмотри чему оно равно, и после добавь нужное условие.
 
Они называются Chest :D
Хз не проверял, думал также как дисплейнейм айтемстака работает. Почему тогда у ТСа евент тригерит только на сундуки которые он назвал с помощью команды. И зачем вообще переименовывать "Сундук" в "Сундук", у меня так часто в жизни встречается подобная тавтология, что можно подумать я живу в матрице которая постоянно сбоит.

ТС мб ты ошибся и думаешь, что сундук называется "Сундук", хотя реальное название "Chest"?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх