Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите AsyncPlayerChatEvent

Discussion in 'Разработка плагинов для новичков' started by baksovic111, Mar 25, 2015.

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

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

    Trophy Points:
    88
    Skype:
    Baksovic2
    Имя в 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");
    }
     
  2. Хостинг MineCraft
    <
  3. serega6531

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

    Trophy Points:
    173
    Skype:
    shkurovs
    Ну так кикайте синхронно.
     
  4. Автор темы
    baksovic111

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

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

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

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

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

    Trophy Points:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    В некотором смысле, понял)
    Спасибо еще раз.
     
  7. alexandrage

    alexandrage Администратор

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

Share This Page