From 305144b41253c7688f498462d0518ecb4dd5f5cc Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Sun, 3 Dec 2023 16:51:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/UpdatePlayerInfoListener.java | 15 +++++--- .../bungee/HamsterBallPlugin.java | 12 +++--- .../bungee/api/BallBungeeCordAPI.java | 6 +-- .../bungee/listener/BallBungeeListener.java | 4 +- .../bungee/listener/BallBungeeListenerV2.java | 4 +- .../listener/UpdatePlayerInfoListener.java | 4 +- .../bungee/util/BallBungeeCordUtils.java | 2 +- ball-bungee/src/main/resources/bungee.yml | 2 +- .../mc/plugin/ball/common/api/BallAPI.java | 38 +++++++++++++++---- build.gradle.kts | 2 +- 10 files changed, 57 insertions(+), 32 deletions(-) rename ball-bungee/src/main/java/cn/hamster3/mc/plugin/{core => ball}/bungee/HamsterBallPlugin.java (90%) rename ball-bungee/src/main/java/cn/hamster3/mc/plugin/{core => ball}/bungee/api/BallBungeeCordAPI.java (94%) rename ball-bungee/src/main/java/cn/hamster3/mc/plugin/{core => ball}/bungee/listener/BallBungeeListener.java (95%) rename ball-bungee/src/main/java/cn/hamster3/mc/plugin/{core => ball}/bungee/listener/BallBungeeListenerV2.java (97%) rename ball-bungee/src/main/java/cn/hamster3/mc/plugin/{core => ball}/bungee/listener/UpdatePlayerInfoListener.java (96%) rename ball-bungee/src/main/java/cn/hamster3/mc/plugin/{core => ball}/bungee/util/BallBungeeCordUtils.java (98%) diff --git a/ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/UpdatePlayerInfoListener.java b/ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/UpdatePlayerInfoListener.java index 048f9ef..75c09bc 100644 --- a/ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/UpdatePlayerInfoListener.java +++ b/ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/UpdatePlayerInfoListener.java @@ -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; } diff --git a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterBallPlugin.java b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/HamsterBallPlugin.java similarity index 90% rename from ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterBallPlugin.java rename to ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/HamsterBallPlugin.java index cc5e9d8..ee7da6e 100644 --- a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterBallPlugin.java +++ b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/HamsterBallPlugin.java @@ -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; diff --git a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/BallBungeeCordAPI.java b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/api/BallBungeeCordAPI.java similarity index 94% rename from ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/BallBungeeCordAPI.java rename to ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/api/BallBungeeCordAPI.java index aeeeb8e..e334176 100644 --- a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/BallBungeeCordAPI.java +++ b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/api/BallBungeeCordAPI.java @@ -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; diff --git a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeListener.java b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/BallBungeeListener.java similarity index 95% rename from ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeListener.java rename to ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/BallBungeeListener.java index 18d5aff..676fec6 100644 --- a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeListener.java +++ b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/BallBungeeListener.java @@ -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; diff --git a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeListenerV2.java b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/BallBungeeListenerV2.java similarity index 97% rename from ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeListenerV2.java rename to ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/BallBungeeListenerV2.java index e6c10f3..be06862 100644 --- a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeListenerV2.java +++ b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/BallBungeeListenerV2.java @@ -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; diff --git a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/UpdatePlayerInfoListener.java b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/UpdatePlayerInfoListener.java similarity index 96% rename from ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/UpdatePlayerInfoListener.java rename to ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/UpdatePlayerInfoListener.java index 24d6476..1bc8f31 100644 --- a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/UpdatePlayerInfoListener.java +++ b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/listener/UpdatePlayerInfoListener.java @@ -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; diff --git a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/util/BallBungeeCordUtils.java b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/util/BallBungeeCordUtils.java similarity index 98% rename from ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/util/BallBungeeCordUtils.java rename to ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/util/BallBungeeCordUtils.java index deed911..dd1d7ea 100644 --- a/ball-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/util/BallBungeeCordUtils.java +++ b/ball-bungee/src/main/java/cn/hamster3/mc/plugin/ball/bungee/util/BallBungeeCordUtils.java @@ -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; diff --git a/ball-bungee/src/main/resources/bungee.yml b/ball-bungee/src/main/resources/bungee.yml index 72be04a..c618590 100644 --- a/ball-bungee/src/main/resources/bungee.yml +++ b/ball-bungee/src/main/resources/bungee.yml @@ -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 diff --git a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java index e4a95b3..b956d5a 100644 --- a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java +++ b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java @@ -522,30 +522,52 @@ public abstract class BallAPI { } /** - * 获取玩家信息 + * 获取玩家信息(大小写字母不匹配) * * @param playerName 玩家名称 * @return 玩家信息 */ public BallPlayerInfo getPlayerInfo(@NotNull String playerName) { - for (BallPlayerInfo info : allPlayerInfo.values()) { - if (info.getName().equalsIgnoreCase(playerName)) { - return info; + 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) { - for (BallPlayerInfo info : allPlayerInfo.values()) { - if (info.getName().equals(playerName)) { - return info; + 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; diff --git a/build.gradle.kts b/build.gradle.kts index 183862f..51e071e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "cn.hamster3.mc.plugin" -version = "1.4.2" +version = "1.4.3" subprojects { apply {