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

Помогите AsyncPlayerChatEvent

baksovic111

Активный участник
Пользователь
Баллы
88
Имя в Minecraft
Baksovic
Всем привет)
Не давно начал по мимо работы с серверами учится кодить.
Ну и куда же без проблем?
Собственно у меня возникла такая проблема:
Мне нужно отследить определенные символы/слова в чате и кикнуть игрока если есть эти символы в чате.
Для отслежки я беру эвент 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");
}
 
Ну так кикайте синхронно.
Спасибо)
Решил погуглить что это значит и нарвался на решение где используют Scheduler
И это действительно помогло.
Если не сложно, в нескольких словах можете объяснить что такое синхронно в понимании данного кода?
 
Спасибо)
Решил погуглить что это значит и нарвался на решение где используют Scheduler
И это действительно помогло.
Если не сложно, в нескольких словах можете объяснить что такое синхронно в понимании данного кода?
С большей частью API можно работать только в основном потоке.
 
С левыми символами я нестал заморачиватся.
String s = e.getMessage().replaceAll("[^ёЁ№!-~А-я\\u0020]", "");
e.setMessage(s);
 

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

Назад
Верх