diff --git a/README.md b/README.md index 0353fc8..55ece4c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # [HamsterBall](https://git.airgame.net/MiniDay/hamster-ball) -仓鼠球:一个基于 Redis 的 Minecraft 服务端通用消息中间件(原HamsterService) +基于 Redis 的 Minecraft 服务端通用消息中间件 该插件依赖于 [仓鼠核心](https://git.airgame.net/MiniDay/hamster-core) @@ -49,9 +49,9 @@ repositories { dependencies { // 对于 Bukkit 插件 - compileOnly("cn.hamster3.mc.plugin:ball-bukkit:1.6.2") + compileOnly("cn.hamster3.mc.plugin:ball-bukkit:1.6.3-SNAPSHOT") // 对于 BungeeCord 插件 - compileOnly("cn.hamster3.mc.plugin:ball-bungee:1.6.2") + compileOnly("cn.hamster3.mc.plugin:ball-bungee:1.6.3-SNAPSHOT") } ``` @@ -77,13 +77,13 @@ dependencies { cn.hamster3.mc.plugin ball-bukkit - 1.6.2 + 1.6.3-SNAPSHOT cn.hamster3.mc.plugin ball-bungee - 1.6.2 + 1.6.3-SNAPSHOT diff --git a/ball-bukkit/src/main/resources/plugin.yml b/ball-bukkit/src/main/resources/plugin.yml index 4cf3fc7..13005df 100644 --- a/ball-bukkit/src/main/resources/plugin.yml +++ b/ball-bukkit/src/main/resources/plugin.yml @@ -4,8 +4,15 @@ version: ${version} api-version: 1.13 author: MiniDay +description: ${description} website: https://git.airgame.net/MiniDay/hamster-ball -description: 仓鼠球:一个基于 Redis 的 Minecraft 服务端通用消息中间件(原HamsterService) + +UPDATE_CHECKER: + VERSION: ${version} + CHECK_TYPE: GITEA_RELEASES + GIT_BASE_URL: https://git.airgame.net + GIT_REPO: MiniDay/hamster-ball + DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-ball/ load: STARTUP diff --git a/ball-bukkit/src/main/resources/update.yml b/ball-bukkit/src/main/resources/update.yml deleted file mode 100644 index 2ccf96c..0000000 --- a/ball-bukkit/src/main/resources/update.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: ${version} -CHECK_TYPE: GITEA_RELEASES -GIT_BASE_URL: https://git.airgame.net -GIT_REPO: MiniDay/hamster-ball -GIT_TOKEN: a44a69a4d1b8601bf6091403247759cd28764d5e -DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-ball/ diff --git a/ball-bungee/src/main/resources/bungee.yml b/ball-bungee/src/main/resources/bungee.yml index c618590..666607f 100644 --- a/ball-bungee/src/main/resources/bungee.yml +++ b/ball-bungee/src/main/resources/bungee.yml @@ -3,7 +3,15 @@ main: cn.hamster3.mc.plugin.ball.bungee.HamsterBallPlugin version: ${version} author: MiniDay -description: 仓鼠球:一个基于 Redis 的 Minecraft 服务端通用消息中间件(原HamsterService) +description: ${description} +website: https://git.airgame.net/MiniDay/hamster-ball + +UPDATE_CHECKER: + VERSION: ${version} + CHECK_TYPE: GITEA_RELEASES + GIT_BASE_URL: https://git.airgame.net + GIT_REPO: MiniDay/hamster-ball + DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-ball/ depend: - HamsterCore diff --git a/ball-bungee/src/main/resources/update.yml b/ball-bungee/src/main/resources/update.yml deleted file mode 100644 index 2ccf96c..0000000 --- a/ball-bungee/src/main/resources/update.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: ${version} -CHECK_TYPE: GITEA_RELEASES -GIT_BASE_URL: https://git.airgame.net -GIT_REPO: MiniDay/hamster-ball -GIT_TOKEN: a44a69a4d1b8601bf6091403247759cd28764d5e -DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-ball/ 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 d2a3716..842449b 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 @@ -506,26 +506,28 @@ public abstract class BallAPI { *

* 会自动加上 config 中设置的频道前缀 * - * @param channel 频道名称 + * @param channels 频道名称 */ - public void subscribe(@NotNull String... channel) { - for (int i = 0; i < channel.length; i++) { - channel[i] = ballConfig.getChannelPrefix() + channel[i]; + public void subscribe(@NotNull String... channels) { + for (int i = 0; i < channels.length; i++) { + channels[i] = ballConfig.getChannelPrefix() + channels[i]; } - CoreAPI.getInstance().getExecutorService().submit( - () -> redisSub.subscribe(BallRedisListener.INSTANCE, channel) - ); + subscribeRaw(channels); } /** * 忽略频道前缀配置,订阅 redis 消息频道 * - * @param channel 频道名称 + * @param channels 频道名称 */ - public void subscribeRaw(@NotNull String... channel) { - CoreAPI.getInstance().getExecutorService().submit( - () -> redisSub.subscribe(BallRedisListener.INSTANCE, channel) - ); + public void subscribeRaw(@NotNull String... channels) { + CoreAPI.getInstance().getExecutorService().submit(() -> { + try { + redisSub.subscribe(BallRedisListener.INSTANCE, channels); + } catch (Exception | Error e) { + e.printStackTrace(); + } + }); } /** diff --git a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/listener/BallRedisListener.java b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/listener/BallRedisListener.java index d18715b..2b5faca 100644 --- a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/listener/BallRedisListener.java +++ b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/listener/BallRedisListener.java @@ -15,19 +15,26 @@ public class BallRedisListener extends JedisPubSub { @Override public void onMessage(String channel, String message) { - if (channel.startsWith(BallAPI.getInstance().getBallConfig().getChannelPrefix())) { - channel = channel.substring(BallAPI.getInstance().getBallConfig().getChannelPrefix().length()); - } - BallMessage ballMessage = CoreAPI.getInstance().getGson().fromJson(message, BallMessage.class); - BallAPI ballAPI = BallAPI.getInstance(); - EventBus eventBus = ballAPI.getEventBus(); - if (ballMessage.getReceiverType() != null && ballMessage.getReceiverType() != ballAPI.getLocalServerInfo().getType()) { - return; - } - if (ballMessage.getReceiverID() != null && !ballAPI.isLocalServer(ballMessage.getReceiverID())) { - return; - } - eventBus.post(new MessageReceivedEvent(channel, ballMessage)); + CoreAPI.getInstance().getExecutorService().submit(() -> { + try { + String finalChannel = channel; + if (finalChannel.startsWith(BallAPI.getInstance().getBallConfig().getChannelPrefix())) { + finalChannel = finalChannel.substring(BallAPI.getInstance().getBallConfig().getChannelPrefix().length()); + } + BallMessage ballMessage = CoreAPI.getInstance().getGson().fromJson(message, BallMessage.class); + BallAPI ballAPI = BallAPI.getInstance(); + EventBus eventBus = ballAPI.getEventBus(); + if (ballMessage.getReceiverType() != null && ballMessage.getReceiverType() != ballAPI.getLocalServerInfo().getType()) { + return; + } + if (ballMessage.getReceiverID() != null && !ballAPI.isLocalServer(ballMessage.getReceiverID())) { + return; + } + eventBus.post(new MessageReceivedEvent(finalChannel, ballMessage)); + } catch (Exception | Error e) { + e.printStackTrace(); + } + }); } @Override diff --git a/ball-velocity/src/main/resources/update.yml b/ball-velocity/src/main/resources/update.yml index 2ccf96c..2808414 100644 --- a/ball-velocity/src/main/resources/update.yml +++ b/ball-velocity/src/main/resources/update.yml @@ -1,6 +1,5 @@ -version: ${version} +VERSION: ${version} CHECK_TYPE: GITEA_RELEASES GIT_BASE_URL: https://git.airgame.net GIT_REPO: MiniDay/hamster-ball -GIT_TOKEN: a44a69a4d1b8601bf6091403247759cd28764d5e DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-ball/ diff --git a/build.gradle.kts b/build.gradle.kts index 6046052..b377d0b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,8 @@ plugins { } group = "cn.hamster3.mc.plugin" -version = "1.6.2" +version = "1.6.3-SNAPSHOT" +description = "基于 Redis 的 Minecraft 服务端通用消息中间件" subprojects { apply { @@ -16,6 +17,7 @@ subprojects { group = rootProject.group version = rootProject.version + description = rootProject.description repositories { maven("https://maven.airgame.net/maven-public/") @@ -43,11 +45,6 @@ subprojects { from(rootProject.file("LICENSE")) duplicatesStrategy = DuplicatesStrategy.EXCLUDE } - processResources { - filesMatching("update.yml") { - expand(rootProject.properties) - } - } build { dependsOn(shadowJar) }