[BungeeCord] PluginMessageEvent вызывается несколько раз

  • Автор темы Автор темы _Nanit_
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

_Nanit_

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
_Nanit_
Хелпуйте, пацаны, уже не знаю что делать. Только сейчас заметил, что евент PluginMessageEvent в банже вызывается несколько раз, причем столько раз, сколько игроков на сервере. Все бы ничего, но я часто юзаю плагин мессаджинг для обработки команд через банжу. И результатом такой обработки является спам сообщениями, запросами и т.д.
Вот сам евент:
PHP:
    @EventHandler
    public void onPluginMessage(PluginMessageEvent e) {
        if(!e.getTag().equals("NM") && !e.getTag().equals("BungeeCord")) {
            return;
        }
 
        ByteArrayDataInput input = ByteStreams.newDataInput(e.getData());
        String subchannel = input.readUTF();
        System.out.println("Message called " + subchannel + ", " + e.getReceiver());
 
        if(subchannel.equals("captcha_response")) {
            String result = input.readUTF();
            ProxiedPlayer player = ProxyServer.getInstance().getPlayer(input.readUTF());
            if(result.equals("true")) {
                Auth.getInstance().registerNewPlayer(player, Auth.passwordHash.get(player.getName()));
                return;
            }
            player.disconnect(new TextComponent(TextUtils.color("&cТы не прошел капчу. Попробуй еще разок.")));
            return;
        }
 
        else if(subchannel.equals("ExecuteCommand")) {
            String command = input.readUTF();
            ProxiedPlayer player = ProxyServer.getInstance().getPlayer(input.readUTF());
  
            BungeeCord.getInstance().getPluginManager().dispatchCommand(player, command);
            return;
        }
    }
Тоесть результат принта в консоли примерно такой
Код:
13:26:20 [INFO] Message called ExecuteCommand, _Nanit_
13:26:20 [INFO] Message called ExecuteCommand, Test
Регистрирую я его один раз. Отправка сообщения на него тоже вызывается один раз. Но сам он выполняется столько раз, сколько сейчас игроков онлайн.
 
Последнее редактирование:
Ну так не используй Bukkit#sendPluginMessage, а юзай player#sendPluginMessage, и капча через плагин, странно както, а точнее бесполезно.
 
Ну так не используй Bukkit#sendPluginMessage, а юзай player#sendPluginMessage, и капча через плагин, странно както, а точнее бесполезно.
Насчет player#sendPluginMessage, да, прогнал маленько. считал что разницы между этими методами нет. Спасибо. А насчет капчи - вполне себе защита от простых школо ботов.
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх