diff --git a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/BallBukkitListener.java b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/BallBukkitListener.java index 8b2912e..1000f73 100644 --- a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/BallBukkitListener.java +++ b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/listener/BallBukkitListener.java @@ -5,12 +5,10 @@ import cn.hamster3.mc.plugin.ball.bukkit.data.BukkitLocation; import cn.hamster3.mc.plugin.ball.common.api.BallAPI; import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo; import cn.hamster3.mc.plugin.ball.common.entity.BallServerType; -import cn.hamster3.mc.plugin.ball.common.event.operate.DispatchConsoleCommandEvent; -import cn.hamster3.mc.plugin.ball.common.event.operate.DispatchPlayerCommandEvent; -import cn.hamster3.mc.plugin.ball.common.event.operate.SendPlayerToLocationEvent; -import cn.hamster3.mc.plugin.ball.common.event.operate.SendPlayerToPlayerEvent; +import cn.hamster3.mc.plugin.ball.common.event.operate.*; import cn.hamster3.mc.plugin.ball.common.listener.BallListener; import cn.hamster3.mc.plugin.core.bukkit.api.CoreBukkitAPI; +import cn.hamster3.mc.plugin.core.common.api.CoreAPI; import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; import cn.hamster3.mc.plugin.core.common.data.DisplayMessage; import cn.hamster3.mc.plugin.core.common.util.Pair; @@ -44,6 +42,13 @@ public class BallBukkitListener implements Listener, BallListener { @Override public void onMessageReceived(@NotNull BallMessageInfo info) { switch (info.getAction()) { + case BroadcastPlayerMessageEvent.ACTION: { + BroadcastPlayerMessageEvent event = CoreConstantObjects.GSON.fromJson(info.getContent(), BroadcastPlayerMessageEvent.class); + DisplayMessage message = event.getMessage(); + Audience audience = CoreAPI.getInstance().getAudienceProvider().all(); + message.show(audience); + break; + } case DispatchConsoleCommandEvent.ACTION: { DispatchConsoleCommandEvent event = CoreConstantObjects.GSON.fromJson(info.getContent(), DispatchConsoleCommandEvent.class); if (event.getType() != null && event.getType() != BallServerType.GAME) { diff --git a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterBallPlugin.java b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterBallPlugin.java index dd71c37..68cbf71 100644 --- a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterBallPlugin.java +++ b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterBallPlugin.java @@ -2,11 +2,8 @@ package cn.hamster3.mc.plugin.core.bungee; 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.entity.BallServerInfo; -import cn.hamster3.mc.plugin.ball.common.entity.BallServerType; 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.core.BallConfigManager; import cn.hamster3.mc.plugin.core.bungee.listener.BallBungeeCordListener; import cn.hamster3.mc.plugin.core.bungee.util.BallBungeeCordUtils; import net.md_5.bungee.api.ProxyServer; @@ -25,8 +22,6 @@ public class HamsterBallPlugin extends Plugin { public void onLoad() { instance = this; Logger logger = getLogger(); - BallConfigManager.init(); - logger.info("BallConfigManager 已初始化."); BallBungeeCordAPI.init(); logger.info("BallBungeeCordAPI 已初始化."); try { @@ -43,16 +38,6 @@ public class HamsterBallPlugin extends Plugin { Logger logger = getLogger(); ProxyServer.getInstance().getPluginManager().registerListener(this, BallBungeeCordListener.INSTANCE); logger.info("已注册 BallBungeeCordListener."); - if (BallConfigManager.isAutoRegisterServer()) { - ProxyServer.getInstance().getServers().clear(); - for (BallServerInfo serverInfo : BallAPI.getInstance().getAllServerInfo().values()) { - if (serverInfo.getType() != BallServerType.GAME) { - continue; - } - ProxyServer.getInstance().getServers().put(serverInfo.getId(), BallBungeeCordUtils.getServerInfo(serverInfo)); - HamsterBallPlugin.getInstance().getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置."); - } - } BallAPI.getInstance().sendBallMessage( BallAPI.BALL_CHANNEL, ServerOnlineEvent.ACTION, diff --git a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/BallBungeeCordAPI.java b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/BallBungeeCordAPI.java index 6f7b925..fd9fa42 100644 --- a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/BallBungeeCordAPI.java +++ b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/BallBungeeCordAPI.java @@ -6,8 +6,8 @@ import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo; import cn.hamster3.mc.plugin.ball.common.entity.BallServerType; import cn.hamster3.mc.plugin.ball.common.listener.BallDebugListener; import cn.hamster3.mc.plugin.core.bungee.HamsterBallPlugin; -import cn.hamster3.mc.plugin.core.bungee.core.BallConfigManager; import cn.hamster3.mc.plugin.core.bungee.listener.BallBungeeCordListener; +import cn.hamster3.mc.plugin.core.bungee.util.BungeeCordUtils; import net.md_5.bungee.config.Configuration; import org.jetbrains.annotations.NotNull; @@ -27,7 +27,8 @@ public class BallBungeeCordAPI extends BallAPI { if (instance != null) { return; } - Configuration pluginConfig = BallConfigManager.getPluginConfig(); + HamsterBallPlugin plugin = HamsterBallPlugin.getInstance(); + Configuration pluginConfig = BungeeCordUtils.getPluginConfig(plugin); BallConfig config = new BallConfig( new BallServerInfo( pluginConfig.getString("server-info.id"), diff --git a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/core/BallConfigManager.java b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/core/BallConfigManager.java deleted file mode 100644 index 4d7d354..0000000 --- a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/core/BallConfigManager.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.hamster3.mc.plugin.core.bungee.core; - -import cn.hamster3.mc.plugin.core.bungee.HamsterBallPlugin; -import cn.hamster3.mc.plugin.core.bungee.util.BungeeCordUtils; -import net.md_5.bungee.config.Configuration; - -public final class BallConfigManager { - private static Configuration pluginConfig; - private static boolean autoRegisterServer; - - private BallConfigManager() { - } - - public static void init() { - HamsterBallPlugin plugin = HamsterBallPlugin.getInstance(); - pluginConfig = BungeeCordUtils.getPluginConfig(plugin); - autoRegisterServer = pluginConfig.getBoolean("auto-register-server", true); - } - - public static Configuration getPluginConfig() { - return pluginConfig; - } - - public static boolean isAutoRegisterServer() { - return autoRegisterServer; - } -} diff --git a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeCordListener.java b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeCordListener.java index 7bc8819..966e0c4 100644 --- a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeCordListener.java +++ b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/listener/BallBungeeCordListener.java @@ -3,19 +3,14 @@ package cn.hamster3.mc.plugin.core.bungee.listener; import cn.hamster3.mc.plugin.ball.common.api.BallAPI; import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo; import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo; -import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo; import cn.hamster3.mc.plugin.ball.common.entity.BallServerType; import cn.hamster3.mc.plugin.ball.common.event.operate.*; import cn.hamster3.mc.plugin.ball.common.event.player.*; -import cn.hamster3.mc.plugin.ball.common.event.server.ServerOfflineEvent; -import cn.hamster3.mc.plugin.ball.common.event.server.ServerOnlineEvent; import cn.hamster3.mc.plugin.ball.common.listener.BallListener; import cn.hamster3.mc.plugin.core.bungee.HamsterBallPlugin; -import cn.hamster3.mc.plugin.core.bungee.core.BallConfigManager; import cn.hamster3.mc.plugin.core.bungee.util.BallBungeeCordUtils; import cn.hamster3.mc.plugin.core.common.api.CoreAPI; import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; -import cn.hamster3.mc.plugin.core.common.data.DisplayMessage; import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer; import net.md_5.bungee.api.ProxyServer; @@ -28,7 +23,6 @@ import net.md_5.bungee.event.EventHandler; import net.md_5.bungee.event.EventPriority; import org.jetbrains.annotations.NotNull; -import java.util.Map; import java.util.UUID; public final class BallBungeeCordListener implements Listener, BallListener { @@ -40,13 +34,6 @@ public final class BallBungeeCordListener implements Listener, BallListener { @Override public void onMessageReceived(@NotNull BallMessageInfo info) { switch (info.getAction()) { - case BroadcastPlayerMessageEvent.ACTION: { - BroadcastPlayerMessageEvent event = CoreConstantObjects.GSON.fromJson(info.getContent(), BroadcastPlayerMessageEvent.class); - DisplayMessage message = event.getMessage(); - Audience audience = CoreAPI.getInstance().getAudienceProvider().all(); - message.show(audience); - break; - } case DispatchConsoleCommandEvent.ACTION: { DispatchConsoleCommandEvent event = CoreConstantObjects.GSON.fromJson(info.getContent(), DispatchConsoleCommandEvent.class); if (event.getType() != null && event.getType() != BallServerType.PROXY) { @@ -121,30 +108,6 @@ public final class BallBungeeCordListener implements Listener, BallListener { ProxyServer.getInstance().stop("HamsterBall 重连失败."); } - @Override - public void onServerOnline(@NotNull ServerOnlineEvent event) { - if (!BallConfigManager.isAutoRegisterServer()) { - return; - } - BallServerInfo serverInfo = event.getServerInfo(); - if (serverInfo.getType() != BallServerType.GAME) { - return; - } - ProxyServer.getInstance().getServers().put(serverInfo.getId(), BallBungeeCordUtils.getServerInfo(serverInfo)); - HamsterBallPlugin.getInstance().getLogger().info("已添加子服 " + serverInfo.getId() + " 的接入点配置."); - } - - @Override - public void onServerOffline(@NotNull ServerOfflineEvent event) { - if (!BallConfigManager.isAutoRegisterServer()) { - return; - } - Map map = ProxyServer.getInstance().getServers(); - if (map.remove(event.getServerID()) != null) { - HamsterBallPlugin.getInstance().getLogger().info("已移除子服 " + event.getServerID() + " 的接入点配置."); - } - } - @EventHandler(priority = EventPriority.HIGH) public void onPreLogin(PreLoginEvent event) { BallAPI.getInstance().sendBallMessage( diff --git a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/util/BallBungeeCordUtils.java b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/util/BallBungeeCordUtils.java index e433711..aea0fa3 100644 --- a/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/util/BallBungeeCordUtils.java +++ b/hamster-ball-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/util/BallBungeeCordUtils.java @@ -2,16 +2,12 @@ package cn.hamster3.mc.plugin.core.bungee.util; 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.entity.BallServerInfo; import cn.hamster3.mc.plugin.ball.common.event.player.BallPlayerInfoUpdateEvent; import cn.hamster3.mc.plugin.core.common.api.CoreAPI; import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.connection.Server; -import java.net.InetSocketAddress; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; @@ -31,15 +27,6 @@ public final class BallBungeeCordUtils { ); } - public static ServerInfo getServerInfo(BallServerInfo serverInfo) { - return ProxyServer.getInstance().constructServerInfo( - serverInfo.getId(), - new InetSocketAddress(serverInfo.getHost(), serverInfo.getPort()), - serverInfo.getName(), - false - ); - } - public static void uploadPlayerInfo(BallPlayerInfo playerInfo) { CoreConstantObjects.WORKER_EXECUTOR.execute(() -> { try (Connection connection = CoreAPI.getInstance().getConnection()) { diff --git a/hamster-ball-bungeecord/src/main/resources/config.yml b/hamster-ball-bungeecord/src/main/resources/config.yml index 3591f54..93dc002 100644 --- a/hamster-ball-bungeecord/src/main/resources/config.yml +++ b/hamster-ball-bungeecord/src/main/resources/config.yml @@ -13,9 +13,3 @@ server-info: name: "代理端" host: 0.0.0.0 port: 25577 - -# 是否允许 HamsterBall 自动添加子服接入点配置 -# 开启该功能后,插件启动时将会自动清除 BC 中配置的所有子服信息 -# 并从数据库中读取子服的数据,然后自动填充 -# 使用的链接地址取决于子服 HamsterBall 配置文件中的 server-info 信息 -auto-register-server: true