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

Помогите AsyncPlayerChatEvent

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

  1. Автор темы
    baksovic111

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

    Баллы:
    88
    Всем привет)
    Не давно начал по мимо работы с серверами учится кодить.
    Ну и куда же без проблем?
    Собственно у меня возникла такая проблема:
    Мне нужно отследить определенные символы/слова в чате и кикнуть игрока если есть эти символы в чате.
    Для отслежки я беру эвент AsyncPlayerChatEvent
    Но с ним при попытки кикнуть игрока выбивает ошибку в консоли
    Caused by: java.lang.IllegalStateException: Asynchronous player kick!
    Подскажите что делать?
    Вот для примера код который я пытаюсь использовать..
    Даже в таком простом варианте не хочет кикать игрока...
    Spigot 1.8

    public void checkContains(AsyncPlayerChatEvent event)
    {
    if (event.getMessage().contains("simbol")){
    event.getPlayer().kickPlayer("Kick");
    }
     
  2. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Ну так кикайте синхронно.
     
  3. Автор темы
    baksovic111

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

    Баллы:
    88
    Спасибо)
    Решил погуглить что это значит и нарвался на решение где используют Scheduler
    И это действительно помогло.
    Если не сложно, в нескольких словах можете объяснить что такое синхронно в понимании данного кода?
     
  4. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    С большей частью API можно работать только в основном потоке.
     
  5. Автор темы
    baksovic111

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

    Баллы:
    88
    В некотором смысле, понял)
    Спасибо еще раз.
     
  6. alexandrage

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

    Баллы:
    173
    С левыми символами я нестал заморачиватся.
    String s = e.getMessage().replaceAll("[^ёЁ№!-~А-я\\u0020]", "");
    e.setMessage(s);
     

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