Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Закрытие инвентаря

arseniy2

Ньюби
Баллы
1
Как можно отменить ивент закрытия инвентаря?
InventoryCloseEvent не имеет setCancelled

В случае, если я делаю:
Код:
@EventHandler
    public void onInventoryClose(InventoryCloseEvent event) {
        Player player = (Player) event.getPlayer();

        if (event.getView().getTitle().equalsIgnoreCase("Выбор класса") && player.hasPlayedBefore()) {
            player.openInventory(event.getInventory());
        }
    }
Сервер крашится.
Прикрепляю crash-report.
 

Вложения:

Как можно отменить ивент закрытия инвентаря?
InventoryCloseEvent не имеет setCancelled

В случае, если я делаю:
Код:
@EventHandler
    public void onInventoryClose(InventoryCloseEvent event) {
        Player player = (Player) event.getPlayer();

        if (event.getView().getTitle().equalsIgnoreCase("Выбор класса") && player.hasPlayedBefore()) {
            player.openInventory(event.getInventory());
        }
    }
Сервер крашится.
Прикрепляю crash-report.
Как выше alexandrage сказал, у тебя код циклично себя выполняет. В момент InventoryCloseEvent предыдущий инвентарь фактически ещё не закрыт, а при открытии нового посредством openInventory закрывается старый. В итоге у тебя раз за разом открывается и закрывается один и тот же инвентарь.
Как и советуется в JavaDoc'е ивента, отложи его выполнение. Небольшая статейка по пользованию тут.
 
Как можно отменить ивент закрытия инвентаря?
InventoryCloseEvent не имеет setCancelled

В случае, если я делаю:
Код:
@EventHandler
    public void onInventoryClose(InventoryCloseEvent event) {
        Player player = (Player) event.getPlayer();

        if (event.getView().getTitle().equalsIgnoreCase("Выбор класса") && player.hasPlayedBefore()) {
            player.openInventory(event.getInventory());
        }
    }
Сервер крашится.
Прикрепляю crash-report.
event.setCancelled(true) для кого придумали???
 

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

Назад
Верх