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

Помогите Chatty отлавливает событие быстрее чем мой плагин

Тема в разделе "Разработка плагинов для новичков", создана пользователем 0xLairon1, 3 дек 2022.

  1. Автор темы
    0xLairon1

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

    Баллы:
    76
    Имя в Minecraft:
    0xLairon1
    Я делаю клановый чат, который будет работать на @, все работает но Chatty быстрее отрабатывает событие чем мой плагин и я не успеваю отменить его. Стоят такие настройки события
    ignoreCancelled = true, priority = EventPriority.LOWEST

    Что можно сделать в таком случае? EventPriority еще ниже нет. Но какое-то решение точно есть ибо много каких плагинов отрабатывают быстрее чатти. Допустим SimpleClans, пытался посмотреть как он это делает но не нашел этот кусок кода

    UPD: В конфиге чатти стоит
    priority: MONITOR
    Никак не помогает
     
  2. Автор темы
    0xLairon1

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

    Баллы:
    76
    Имя в Minecraft:
    0xLairon1
    Пока что решил эту проблему через ProtocolLib, решение гавно, если есть у когото по элегантнее буду благодарен за ответ
     
  3. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    С чего ты взял, что чатти отрабатывает раньше? Возможно он или любой другой плагин просто устанавливает event.setCancelled(false)

    Можно попробовать в своё плагине выставить приоритет на единицу раньше, чем приоритет Chatty, т.е. HIGHEST
     
  4. Автор темы
    0xLairon1

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

    Баллы:
    76
    Имя в Minecraft:
    0xLairon1
    Я пишу в чат "@test"
    Первое сообщение от Chatty
    Потом только уже от моего плагина
     
  5. Автор темы
    0xLairon1

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

    Баллы:
    76
    Имя в Minecraft:
    0xLairon1
  6. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Возможно в чатти используется другое событие чата. Их 2-3 штуки разных
     
    Последнее редактирование: 5 дек 2022
  7. H4kt

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

    Баллы:
    61
    Имя в Minecraft:
    H4kt
    Chatty использует AsyncPlayerChatEvent, который считается deprecated в paper-api
    Достаточно использовать приоритет на единицу выше, чем приоритет Chatty
    В моем конфиге Chatty выставлен приоритет high

    Пример на Kotlin
    Код:
    import org.bukkit.event.EventHandler
    import org.bukkit.event.Listener
    import org.bukkit.event.player.AsyncPlayerChatEvent
    
    class ChatListener : Listener {
    
        @EventHandler (priority = EventPriority.HIGHEST)
        fun onChat(event: AsyncPlayerChatEvent) {
            event.player.sendMessage("test ok")
            event.isCancelled = true
        }
    
    }
     
  8. Egorov

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

    Баллы:
    66
    Имя в Minecraft:
    sqlex
    Как пример, можешь в конфиге Chatty в строке приоритета поставить highest.
    А в ивенте твоего плагина поставить EventPriority.LOWEST
    И твой ивент будет быстрее обрабатываться, чем отреагирует Chatty
     
  9. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    А теперь прочитай первое сообщение в теме полностью
     
  10. Egorov

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

    Баллы:
    66
    Имя в Minecraft:
    sqlex
    В Chatty нельзя в приоритете поставить MONITOR. Максимум что можно поставить для удобства, это highest. Не смотрел последнюю версию. Но на всякий приложу скриншот
    upload_2022-12-6_20-40-44.png
     
  11. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Вот это уже ближе к теме
     

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