From aac72489948b5950d32b85054e0f320aa58c8955 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Tue, 19 Mar 2024 16:19:00 +0800 Subject: [PATCH 1/5] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=9B=B4=E6=96=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ball-bukkit/src/main/resources/plugin.yml | 9 ++++++++- ball-bukkit/src/main/resources/update.yml | 6 ------ ball-bungee/src/main/resources/bungee.yml | 10 +++++++++- ball-bungee/src/main/resources/update.yml | 6 ------ ball-velocity/src/main/resources/update.yml | 5 ++--- 5 files changed, 19 insertions(+), 17 deletions(-) delete mode 100644 ball-bukkit/src/main/resources/update.yml delete mode 100644 ball-bungee/src/main/resources/update.yml 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-velocity/src/main/resources/update.yml b/ball-velocity/src/main/resources/update.yml index 2ccf96c..43bba43 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/ +DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-ball/ \ No newline at end of file From aa0e94c7b75e322fc2d9ac5fb6f4d53bf1c44782 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Tue, 19 Mar 2024 16:22:36 +0800 Subject: [PATCH 2/5] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- ball-velocity/src/main/resources/update.yml | 2 +- build.gradle.kts | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0353fc8..4576df8 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) diff --git a/ball-velocity/src/main/resources/update.yml b/ball-velocity/src/main/resources/update.yml index 43bba43..2808414 100644 --- a/ball-velocity/src/main/resources/update.yml +++ b/ball-velocity/src/main/resources/update.yml @@ -2,4 +2,4 @@ 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/ \ No newline at end of file +DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-ball/ diff --git a/build.gradle.kts b/build.gradle.kts index 6046052..228b402 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,6 +6,7 @@ plugins { group = "cn.hamster3.mc.plugin" version = "1.6.2" +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/") From 4e29246441c49929ac4118ea628da163873c0294 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Thu, 21 Mar 2024 23:30:04 +0800 Subject: [PATCH 3/5] =?UTF-8?q?build:=20=E4=BC=98=E5=8C=96=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 228b402..8076a52 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -45,11 +45,6 @@ subprojects { from(rootProject.file("LICENSE")) duplicatesStrategy = DuplicatesStrategy.EXCLUDE } - processResources { - filesMatching("update.yml") { - expand(rootProject.properties) - } - } build { dependsOn(shadowJar) } From 84721e31eefa899d8be52b857ec14e24c9bed8f4 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Tue, 26 Mar 2024 17:25:49 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix(ball-common):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=BD=93=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=B6=E7=9B=B4=E6=8E=A5=E4=BC=9A=E9=98=BB=E5=A1=9E=E5=90=8E?= =?UTF-8?q?=E7=BB=ADredis=E6=B6=88=E6=81=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- .../mc/plugin/ball/common/listener/BallRedisListener.java | 6 +++++- build.gradle.kts | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4576df8..55ece4c 100644 --- a/README.md +++ b/README.md @@ -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-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..8a51458 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 @@ -27,7 +27,11 @@ public class BallRedisListener extends JedisPubSub { if (ballMessage.getReceiverID() != null && !ballAPI.isLocalServer(ballMessage.getReceiverID())) { return; } - eventBus.post(new MessageReceivedEvent(channel, ballMessage)); + try { + eventBus.post(new MessageReceivedEvent(channel, ballMessage)); + } catch (Exception | Error e) { + e.printStackTrace(); + } } @Override diff --git a/build.gradle.kts b/build.gradle.kts index 8076a52..b377d0b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "cn.hamster3.mc.plugin" -version = "1.6.2" +version = "1.6.3-SNAPSHOT" description = "基于 Redis 的 Minecraft 服务端通用消息中间件" subprojects { From 74f1a4557dcaeb0644318a702abfdf0f83a45495 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Tue, 26 Mar 2024 19:00:55 +0800 Subject: [PATCH 5/5] =?UTF-8?q?perf:=20=E5=B0=86=20jedis=20=E8=AE=A2?= =?UTF-8?q?=E9=98=85=E9=A2=91=E9=81=93=E5=A4=84=E7=90=86=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E8=87=B3=E5=BC=82=E6=AD=A5=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mc/plugin/ball/common/api/BallAPI.java | 26 +++++++------ .../common/listener/BallRedisListener.java | 37 ++++++++++--------- 2 files changed, 34 insertions(+), 29 deletions(-) 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 8a51458..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,23 +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; - } - try { - eventBus.post(new MessageReceivedEvent(channel, ballMessage)); - } catch (Exception | Error e) { - e.printStackTrace(); - } + 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