feat: 优化部分代码处理流程

This commit is contained in:
2023-12-03 16:51:23 +08:00
parent da710e5af8
commit 305144b412
10 changed files with 57 additions and 32 deletions

View File

@@ -23,6 +23,12 @@ public class UpdatePlayerInfoListener implements Listener {
private UpdatePlayerInfoListener() {
}
@Subscribe
public void onBallPlayerLogin(BallPlayerLoginEvent event) {
BallPlayerInfo info = event.getPlayerInfo();
PLAYER_PROXY_SERVER.put(info.getUuid(), BallAPI.getInstance().getBallConfig().getChannelPrefix() + ":" + info.getProxyServer());
}
@EventHandler(ignoreCancelled = true)
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
@@ -36,15 +42,12 @@ public class UpdatePlayerInfoListener implements Listener {
BallBukkitUtils.uploadPlayerInfo(playerInfo);
}
@Subscribe
public void onBallPlayerLogin(BallPlayerLoginEvent event) {
BallPlayerInfo info = event.getPlayerInfo();
PLAYER_PROXY_SERVER.put(info.getUuid(), info.getProxyServer());
}
@Subscribe
public void onBallPlayerLogout(BallPlayerLogoutEvent event) {
BallPlayerInfo playerInfo = BallAPI.getInstance().getPlayerInfo(event.getPlayerInfo().getUuid());
if (playerInfo == null) {
return;
}
if (!BallAPI.getInstance().isLocalServer(playerInfo.getGameServer())) {
return;
}

View File

@@ -1,14 +1,14 @@
package cn.hamster3.mc.plugin.core.bungee;
package cn.hamster3.mc.plugin.ball.bungee;
import cn.hamster3.mc.plugin.ball.bungee.api.BallBungeeCordAPI;
import cn.hamster3.mc.plugin.ball.bungee.listener.BallBungeeListener;
import cn.hamster3.mc.plugin.ball.bungee.listener.BallBungeeListenerV2;
import cn.hamster3.mc.plugin.ball.bungee.listener.UpdatePlayerInfoListener;
import cn.hamster3.mc.plugin.ball.bungee.util.BallBungeeCordUtils;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
import cn.hamster3.mc.plugin.ball.common.event.BallActions;
import cn.hamster3.mc.plugin.ball.common.event.server.ServerOnlineEvent;
import cn.hamster3.mc.plugin.core.bungee.api.BallBungeeCordAPI;
import cn.hamster3.mc.plugin.core.bungee.listener.BallBungeeListener;
import cn.hamster3.mc.plugin.core.bungee.listener.BallBungeeListenerV2;
import cn.hamster3.mc.plugin.core.bungee.listener.UpdatePlayerInfoListener;
import cn.hamster3.mc.plugin.core.bungee.util.BallBungeeCordUtils;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin;

View File

@@ -1,11 +1,11 @@
package cn.hamster3.mc.plugin.core.bungee.api;
package cn.hamster3.mc.plugin.ball.bungee.api;
import cn.hamster3.mc.plugin.ball.bungee.util.BallBungeeCordUtils;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.config.BallConfig;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerType;
import cn.hamster3.mc.plugin.core.bungee.HamsterBallPlugin;
import cn.hamster3.mc.plugin.core.bungee.util.BallBungeeCordUtils;
import cn.hamster3.mc.plugin.ball.bungee.HamsterBallPlugin;
import cn.hamster3.mc.plugin.core.bungee.util.CoreBungeeCordUtils;
import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import io.lettuce.core.RedisClient;

View File

@@ -1,4 +1,4 @@
package cn.hamster3.mc.plugin.core.bungee.listener;
package cn.hamster3.mc.plugin.ball.bungee.listener;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
@@ -6,7 +6,7 @@ import cn.hamster3.mc.plugin.ball.common.event.BallActions;
import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerLoginEvent;
import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerPostLoginEvent;
import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerPreLoginEvent;
import cn.hamster3.mc.plugin.core.bungee.util.BallBungeeCordUtils;
import cn.hamster3.mc.plugin.ball.bungee.util.BallBungeeCordUtils;
import net.md_5.bungee.api.connection.PendingConnection;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.LoginEvent;

View File

@@ -1,9 +1,9 @@
package cn.hamster3.mc.plugin.core.bungee.listener;
package cn.hamster3.mc.plugin.ball.bungee.listener;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallServerType;
import cn.hamster3.mc.plugin.ball.common.event.operate.*;
import cn.hamster3.mc.plugin.core.bungee.HamsterBallPlugin;
import cn.hamster3.mc.plugin.ball.bungee.HamsterBallPlugin;
import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.audience.Audience;
import cn.hamster3.mc.plugin.core.lib.net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer;

View File

@@ -1,4 +1,4 @@
package cn.hamster3.mc.plugin.core.bungee.listener;
package cn.hamster3.mc.plugin.ball.bungee.listener;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
@@ -6,7 +6,7 @@ import cn.hamster3.mc.plugin.ball.common.event.BallActions;
import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerLogoutEvent;
import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerPostConnectServerEvent;
import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerPreConnectServerEvent;
import cn.hamster3.mc.plugin.core.bungee.util.BallBungeeCordUtils;
import cn.hamster3.mc.plugin.ball.bungee.util.BallBungeeCordUtils;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
import net.md_5.bungee.api.event.ServerConnectEvent;

View File

@@ -1,4 +1,4 @@
package cn.hamster3.mc.plugin.core.bungee.util;
package cn.hamster3.mc.plugin.ball.bungee.util;
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;

View File

@@ -1,5 +1,5 @@
name: HamsterBall
main: cn.hamster3.mc.plugin.core.bungee.HamsterBallPlugin
main: cn.hamster3.mc.plugin.ball.bungee.HamsterBallPlugin
version: ${version}
author: MiniDay

View File

@@ -522,32 +522,54 @@ public abstract class BallAPI {
}
/**
* 获取玩家信息
* 获取玩家信息(大小写字母不匹配)
*
* @param playerName 玩家名称
* @return 玩家信息
*/
public BallPlayerInfo getPlayerInfo(@NotNull String playerName) {
if (getBallConfig().isGameServerUpdatePlayerInfo()) {
for (BallPlayerInfo info : allPlayerInfo.values()) {
if (!info.getProxyServer().startsWith(BallAPI.getInstance().getBallConfig().getChannelPrefix())) {
continue;
}
if (info.getName().equalsIgnoreCase(playerName)) {
return info;
}
}
} else {
for (BallPlayerInfo info : allPlayerInfo.values()) {
if (info.getName().equalsIgnoreCase(playerName)) {
return info;
}
}
}
return null;
}
/**
* 获取玩家信息
* 获取玩家信息(大小写字母匹配)
*
* @param playerName 玩家名称
* @return 玩家信息
*/
public BallPlayerInfo getPlayerInfoExact(@NotNull String playerName) {
if (getBallConfig().isGameServerUpdatePlayerInfo()) {
for (BallPlayerInfo info : allPlayerInfo.values()) {
if (!info.getProxyServer().startsWith(BallAPI.getInstance().getBallConfig().getChannelPrefix())) {
continue;
}
if (info.getName().equals(playerName)) {
return info;
}
}
} else {
for (BallPlayerInfo info : allPlayerInfo.values()) {
if (info.getName().equals(playerName)) {
return info;
}
}
}
return null;
}

View File

@@ -5,7 +5,7 @@ plugins {
}
group = "cn.hamster3.mc.plugin"
version = "1.4.2"
version = "1.4.3"
subprojects {
apply {