1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как пофиксить баг с setCancelled

Тема в разделе "Разработка плагинов для новичков", создана пользователем Energy warrior, 25 мар 2019.

Статус темы:
Закрыта.
  1. Автор темы
    Energy warrior

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

    Баллы:
    76
    Думаю понятно в чём вопрос. Когда кликаю на слоты или просто зажимаю ПКМ у меня не срабатывает setCancelled и преметы кладутся в инвентарь но обратно не возвращаются.

    Код:
    public void inventoryAction(InventoryClickEvent event){
            System.out.println(event.getRawSlot());
            event.setCancelled(true);
            if(freespace.contains(event.getRawSlot())) {
                event.setCancelled(false);
                return;
            }
            if (event.getRawSlot() > event.getInventory().getSize()) {
                event.setCancelled(false);
                return;
            }
            if (event.getSlotType() == InventoryType.SlotType.OUTSIDE) {
                return;
            }
            if (event.getSlot() >= buttons.size()) {
                return;
            }
            if(buttons.get(event.getRawSlot()) == null)return;
    
            GuiButton button = buttons.get(event.getSlot());
            button.action(event);
        }
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Так это InventoryDragEvent же не?
     
  3. Автор темы
    Energy warrior

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

    Баллы:
    76
    С dragevent я пофиксил. Осталось только с точечным кликом. Я когда кликаю с некоторым шансом у меня предмет застревает и не возвращается назад.
     
  4. Автор темы
    Energy warrior

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

    Баллы:
    76
    Как не странно, но всё само пофиксилось.
     
  5. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Если с некоторым шансом - то точно замешан InventoryDragEvent. Показывай код, если хочешь разобраться.
    Суть в том, что это событие может срабатывать даже для одного слота, если не очень аккуратно клинуть- чуть протащить зажатой мышкой внутри слота.
    Как пофиксилось - так и сломается... Нет? Смотри, как знаешь...
     
  6. Автор темы
    Energy warrior

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

    Баллы:
    76
    Так скинул же.
     
  7. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Плохо скинул )
     
  8. Автор темы
    Energy warrior

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

    Баллы:
    76
     
  9. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Рофлишь? Где тут InventoryDragEvent?
     
  10. Автор темы
    Energy warrior

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

    Баллы:
    76
    Кароче, усё пофикшено
     
Статус темы:
Закрыта.

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