From 1fce59d63a3282ea06e14d8003a3aec8fff7214a Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Wed, 31 May 2023 06:01:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=81=E8=AE=B8=E4=BB=8E=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=98=E9=87=8F=E4=B8=AD=E8=AF=BB=E5=8F=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/ball/bukkit/api/BallBukkitAPI.java | 38 ++++++++++++------- .../core/bungee/api/BallBungeeCordAPI.java | 34 +++++++++++------ .../src/main/resources/config.yml | 2 +- 3 files changed, 49 insertions(+), 25 deletions(-) diff --git a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/api/BallBukkitAPI.java b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/api/BallBukkitAPI.java index 607ddf0..2574da3 100644 --- a/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/api/BallBukkitAPI.java +++ b/hamster-ball-bukkit/src/main/java/cn/hamster3/mc/plugin/ball/bukkit/api/BallBukkitAPI.java @@ -12,6 +12,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.jetbrains.annotations.NotNull; import java.sql.SQLException; +import java.util.Map; import java.util.logging.Logger; public class BallBukkitAPI extends BallAPI { @@ -29,21 +30,32 @@ public class BallBukkitAPI extends BallAPI { } HamsterBallPlugin plugin = HamsterBallPlugin.getInstance(); plugin.saveDefaultConfig(); - FileConfiguration pluginConfig = plugin.getConfig(); - String host = pluginConfig.getString("server-info.host", Bukkit.getIp()); - BallConfig config = new BallConfig( - new BallServerInfo( - pluginConfig.getString("server-info.id"), - pluginConfig.getString("server-info.name"), - BallServerType.GAME, - host.isEmpty() ? "127.0.0.1" : host, - pluginConfig.getInt("server-info.port", Bukkit.getPort()) - ), - pluginConfig.getString("ball-server.host", "ball.hamster3.cn"), - pluginConfig.getInt("ball-server.port", 58888), - pluginConfig.getInt("ball-server.event-loop-thread", 2) + FileConfiguration pluginConfig = plugin.getConfig(); + Map env = System.getenv(); + + String serverInfoID = env.getOrDefault("BALL_SERVER_INFO_ID", + pluginConfig.getString("server-info.id")); + String serverInfoName = env.getOrDefault("BALL_SERVER_INFO_NAME", + pluginConfig.getString("server-info.name")); + String serverInfoHost = pluginConfig.getString("server-info.host", Bukkit.getIp()); + int serverInfoPort = pluginConfig.getInt("server-info.port", Bukkit.getPort()); + BallServerInfo serverInfo = new BallServerInfo( + serverInfoID, + serverInfoName, + BallServerType.GAME, + serverInfoHost.isEmpty() ? "127.0.0.1" : serverInfoHost, + serverInfoPort ); + + String serverHost = env.getOrDefault("BALL_SERVER_HOST", + pluginConfig.getString("ball-server.host", "ball.hamster3.cn")); + int serverPort = Integer.parseInt(env.getOrDefault("BALL_SERVER_PORT", + String.valueOf(pluginConfig.getInt("ball-server.port", 58888)))); + int eventLoopThread = Integer.parseInt(env.getOrDefault("BALL_EVENT_LOOP_THREAD", + String.valueOf(pluginConfig.getInt("ball-server.event-loop-thread", 2)))); + BallConfig config = new BallConfig(serverInfo, serverHost, serverPort, eventLoopThread); + instance = new BallBukkitAPI(config); instance.addListener(BallBukkitListener.INSTANCE); 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 711321f..0a22c4a 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 @@ -12,6 +12,7 @@ import net.md_5.bungee.config.Configuration; import org.jetbrains.annotations.NotNull; import java.sql.SQLException; +import java.util.Map; import java.util.logging.Logger; public class BallBungeeCordAPI extends BallAPI { @@ -29,19 +30,30 @@ public class BallBungeeCordAPI extends BallAPI { } HamsterBallPlugin plugin = HamsterBallPlugin.getInstance(); Configuration pluginConfig = CoreBungeeCordUtils.getPluginConfig(plugin); + Map env = System.getenv(); - BallConfig config = new BallConfig( - new BallServerInfo( - pluginConfig.getString("server-info.id", "Proxy"), - pluginConfig.getString("server-info.name", "Proxy"), - BallServerType.PROXY, - pluginConfig.getString("server-info.host"), - pluginConfig.getInt("server-info.port") - ), - pluginConfig.getString("ball-server.host", "ball.hamster3.cn"), - pluginConfig.getInt("ball-server.port", 58888), - pluginConfig.getInt("ball-server.event-loop-thread", 5) + String serverInfoID = env.getOrDefault("BALL_SERVER_INFO_ID", + pluginConfig.getString("server-info.id")); + String serverInfoName = env.getOrDefault("BALL_SERVER_INFO_NAME", + pluginConfig.getString("server-info.name")); + String serverInfoHost = pluginConfig.getString("server-info.host", "0.0.0.0"); + int serverInfoPort = pluginConfig.getInt("server-info.port", 25577); + BallServerInfo serverInfo = new BallServerInfo( + serverInfoID, + serverInfoName, + BallServerType.GAME, + serverInfoHost, + serverInfoPort ); + + String serverHost = env.getOrDefault("BALL_SERVER_HOST", + pluginConfig.getString("ball-server.host", "ball.hamster3.cn")); + int serverPort = Integer.parseInt(env.getOrDefault("BALL_SERVER_PORT", + String.valueOf(pluginConfig.getInt("ball-server.port", 58888)))); + int eventLoopThread = Integer.parseInt(env.getOrDefault("BALL_EVENT_LOOP_THREAD", + String.valueOf(pluginConfig.getInt("ball-server.event-loop-thread", 2)))); + BallConfig config = new BallConfig(serverInfo, serverHost, serverPort, eventLoopThread); + instance = new BallBungeeCordAPI(config); instance.addListener(BallBungeeCordListener.INSTANCE); diff --git a/hamster-ball-bungeecord/src/main/resources/config.yml b/hamster-ball-bungeecord/src/main/resources/config.yml index a017905..43b5ce0 100644 --- a/hamster-ball-bungeecord/src/main/resources/config.yml +++ b/hamster-ball-bungeecord/src/main/resources/config.yml @@ -4,7 +4,7 @@ debug: false ball-server: host: "ball.hamster3.cn" port: 58888 - event-loop-thread: 10 + event-loop-thread: 5 server-info: # 服务器唯一识别码,最长 32 字符