Merge branch 'dev'

This commit is contained in:
2024-03-27 10:36:18 +08:00

View File

@@ -105,6 +105,7 @@ public abstract class BallAPI {
} }
protected void enable() throws SQLException, InterruptedException { protected void enable() throws SQLException, InterruptedException {
CoreAPI.getInstance().getExecutorService().submit(() -> redisSub.subscribe(BallRedisListener.INSTANCE, BALL_CHANNEL));
try (Jedis jedis = CoreAPI.getInstance().getJedisPool().getResource()) { try (Jedis jedis = CoreAPI.getInstance().getJedisPool().getResource()) {
String key = "HamsterBall:ServerInfo:" + localServerInfo.getId(); String key = "HamsterBall:ServerInfo:" + localServerInfo.getId();
if (jedis.exists(key)) { if (jedis.exists(key)) {
@@ -179,7 +180,6 @@ public abstract class BallAPI {
} }
getLogger().info("从数据库中加载了 " + allServerInfo.size() + " 条服务器信息"); getLogger().info("从数据库中加载了 " + allServerInfo.size() + " 条服务器信息");
getLogger().info("从数据库中加载了 " + allPlayerInfo.size() + " 条玩家信息"); getLogger().info("从数据库中加载了 " + allPlayerInfo.size() + " 条玩家信息");
subscribeRaw(BALL_CHANNEL);
} }
protected void disable() throws SQLException, InterruptedException { protected void disable() throws SQLException, InterruptedException {
@@ -521,13 +521,14 @@ public abstract class BallAPI {
* @param channels 频道名称 * @param channels 频道名称
*/ */
public void subscribeRaw(@NotNull String... channels) { public void subscribeRaw(@NotNull String... channels) {
CoreAPI.getInstance().getExecutorService().submit(() -> { BallRedisListener.INSTANCE.subscribe(channels);
try { // CoreAPI.getInstance().getExecutorService().submit(() -> {
redisSub.subscribe(BallRedisListener.INSTANCE, channels); // try {
} catch (Exception | Error e) { // redisSub.subscribe(BallRedisListener.INSTANCE, channels);
e.printStackTrace(); // } catch (Exception | Error e) {
} // e.printStackTrace();
}); // }
// });
} }
/** /**
@@ -536,9 +537,10 @@ public abstract class BallAPI {
* @param patterns 频道名称正则表达式 * @param patterns 频道名称正则表达式
*/ */
public void subscribePatterns(@NotNull String patterns) { public void subscribePatterns(@NotNull String patterns) {
CoreAPI.getInstance().getExecutorService().submit( BallRedisListener.INSTANCE.psubscribe(patterns);
() -> redisSub.psubscribe(BallRedisListener.INSTANCE, patterns) // CoreAPI.getInstance().getExecutorService().submit(
); // () -> redisSub.psubscribe(BallRedisListener.INSTANCE, patterns)
// );
} }
/** /**
@@ -546,22 +548,22 @@ public abstract class BallAPI {
* <p> * <p>
* 会自动加上 config 中设置的频道前缀 * 会自动加上 config 中设置的频道前缀
* *
* @param channel 频道名称 * @param channels 频道名称
*/ */
public void unsubscribe(@NotNull String... channel) { public void unsubscribe(@NotNull String... channels) {
for (int i = 0; i < channel.length; i++) { for (int i = 0; i < channels.length; i++) {
channel[i] = ballConfig.getChannelPrefix() + channel[i]; channels[i] = ballConfig.getChannelPrefix() + channels[i];
} }
BallRedisListener.INSTANCE.unsubscribe(channel); unsubscribeRaw(channels);
} }
/** /**
* 忽略频道前缀配置,取消订阅 redis 消息频道 * 忽略频道前缀配置,取消订阅 redis 消息频道
* *
* @param channel 频道名称 * @param channels 频道名称
*/ */
public void unsubscribeIgnorePrefix(@NotNull String... channel) { public void unsubscribeRaw(@NotNull String... channels) {
BallRedisListener.INSTANCE.unsubscribe(channel); BallRedisListener.INSTANCE.unsubscribe(channels);
} }
/** /**