Skip to content

Commit

Permalink
feat: 添加事件监听器以处理玩家登录状态
Browse files Browse the repository at this point in the history
  • Loading branch information
shulng committed Jul 13, 2024
1 parent 9d1e0ab commit aca01a8
Showing 1 changed file with 19 additions and 8 deletions.
27 changes: 19 additions & 8 deletions src/main/java/cc/baka9/catseedlogin/bungee/Listeners.java
Original file line number Diff line number Diff line change
@@ -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 监听事件类
*/
Expand Down Expand Up @@ -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();
}
}
}

}

0 comments on commit aca01a8

Please sign in to comment.