Помогите [Решено] Деавторизация и направление на другой сервер (BungeeCord)

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

E_NeLsOn

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
E_NeLsOn
Добрый день!

На BungeCord'e несколько серверов, команда /logout доступна только в лобби. Делаю плагин, который при вводе этой команды деавторизует игрока и отправит его на сервер авторизации. Есть вот такой код:

Код:
    @EventHandler(priority = EventPriority.LOWEST)
    public void logout(PlayerCommandPreprocessEvent e) {
        Player sender = e.getPlayer();
        if(e.getMessage().equalsIgnoreCase("/logout")) {
            e.setCancelled(true);
           
            AuthMeApi authmeApi = AuthMeApi.getInstance();
            authmeApi.forceLogout(sender);
           
            ByteArrayDataOutput out = ByteStreams.newDataOutput();
            out.writeUTF("Connect");
            out.writeUTF("auth");
            sender.sendPluginMessage((org.bukkit.plugin.Plugin) this, "BungeeCord", out.toByteArray());
        }
    }
При исполнении игрок не деавторизуется и попадает на сервер авторизации (потом Authme его отправляет обратно). Если убрать часть, которая отправляет на другой сервер, то игрок деавторизуется, но остается на сервере Лобби.

При чем в консоли пишет:
[AuthMe] player logged out
 
если у тебя authme подключен к mysql, то отправляй mysql-запрос, который делогинет его
 
Я сделал проще: позволил authme делать то, что он должен, и просто слушаю LogoutEvent

Код:
public void listenlogout(LogoutEvent e) {
        ByteArrayDataOutput out = ByteStreams.newDataOutput();
        out.writeUTF("Connect");
        out.writeUTF("auth");
        e.getPlayer().sendPluginMessage((org.bukkit.plugin.Plugin) this, "BungeeCord", out.toByteArray());
    }
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх