From aca01a8304b8d7cc8fd950daf2724ee5b704632d Mon Sep 17 00:00:00 2001 From: Shuiling <1668589925@qq.com> Date: Fri, 12 Jul 2024 18:33:23 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E7=9B=91=E5=90=AC=E5=99=A8=E4=BB=A5=E5=A4=84=E7=90=86=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E7=99=BB=E5=BD=95=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baka9/catseedlogin/bungee/Listeners.java | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/main/java/cc/baka9/catseedlogin/bungee/Listeners.java b/src/main/java/cc/baka9/catseedlogin/bungee/Listeners.java index c3b11ab..8f83ff0 100644 --- a/src/main/java/cc/baka9/catseedlogin/bungee/Listeners.java +++ b/src/main/java/cc/baka9/catseedlogin/bungee/Listeners.java @@ -1,17 +1,21 @@ package cc.baka9.catseedlogin.bungee; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.Connection; import net.md_5.bungee.api.connection.ProxiedPlayer; -import net.md_5.bungee.api.event.*; +import net.md_5.bungee.api.event.ChatEvent; +import net.md_5.bungee.api.event.PlayerDisconnectEvent; +import net.md_5.bungee.api.event.PreLoginEvent; +import net.md_5.bungee.api.event.ServerConnectEvent; +import net.md_5.bungee.api.event.ServerConnectedEvent; import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.event.EventHandler; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.List; - /** * Bungee Cord 监听事件类 */ @@ -97,12 +101,19 @@ public void onPlayerDisconnect(PlayerDisconnectEvent event) { /** * 玩家在登录前,检查bc端和子服务器的登录状态,如果任一已登录,阻止连接 */ - @EventHandler + @EventHandler public void onPreLogin(PreLoginEvent event) { String playerName = event.getConnection().getName(); - if (loggedInPlayerList.contains(playerName) || Communication.sendConnectRequest(playerName) == 1) { - event.setCancelReason(new TextComponent("")); + try { + if (loggedInPlayerList.contains(playerName) || Communication.sendConnectRequest(playerName) == 1) { + event.setCancelReason(new TextComponent("您已经登录,请勿重复登录。")); + event.setCancelled(true); + } + } catch (Exception e) { + event.setCancelReason(new TextComponent("发生错误,请稍后再试。")); event.setCancelled(true); + e.printStackTrace(); } } -} \ No newline at end of file + +}