Войти или зарегистрироваться

Помогите InventoryClickEvent триггерится через раз

  • Автор темы Автор темы Kerskiy
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Kerskiy

Новичок
Баллы
6
Хочу в своём плагине запретить ложить определенный предмет в сундук(Именно если игрок ложит предмет в сундук, а не просто берёт его в курсор). Пробую самый простой код:
Код:
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
  e.getWhoClicked().sendMessage(e.getCursor().getType().toString());
}

Если, к примеру, 5-7 раз кликать по одному и тому же слоту(Необязательно быстро), а затем кликнуть на другой слот - событие просто напросто не вызовется. Оно не вернёт ни null, ни AIR. Ничего, просто пропуск. Ещё раз кликаешь - и уже выводится материал предмета.

Пробовал отслеживать два ивента: InventoryDragEvent и InventoryClickEvent. Та же ситуация, ни один ивент не выводит в такой ситуации сообщение в чат
 
Есть InventoryDragEvent
 
Хочу в своём плагине запретить ложить определенный предмет в сундук(Именно если игрок ложит предмет в сундук, а не просто берёт его в курсор). Пробую самый простой код:
Код:
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
  e.getWhoClicked().sendMessage(e.getCursor().getType().toString());
}

Если, к примеру, 5-7 раз кликать по одному и тому же слоту(Необязательно быстро), а затем кликнуть на другой слот - событие просто напросто не вызовется. Оно не вернёт ни null, ни AIR. Ничего, просто пропуск. Ещё раз кликаешь - и уже выводится материал предмета.

Пробовал отслеживать два ивента: InventoryDragEvent и InventoryClickEvent. Та же ситуация, ни один ивент не выводит в такой ситуации сообщение в чат
А существует ещё InventoryMoveItemEvent
Слушай все три ивента и будет тебе счастье
 
А существует ещё InventoryMoveItemEvent
Слушай все три ивента и будет тебе счастье
Думаешь? Я слушал 4 ивента сразу, 2 для запрета воронок(InventoryPickupItem и InventoryMoveItem), где стояло e.setCancelled(true). Остальные 2 - с сообщением, и InventoryMoveItem ниразу не сработал в этой ситуации
 
Кажется, проблема решена. Заключалась в коде выше, подозреваю e.getView()...
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх