diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index 593a908bd..29affb2d6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -333,9 +333,11 @@ public class RedisKey { public static final String SERVER_LEVEL_RANK = "SERVER_LEVEL_RANK"; - public static final String SERVER_SPLIT_INFO = "SERVER_SPLIT_INFO"; + public static final String SERVER_SPLIT_INFO = "SERVER_SPLIT_INFO";// 游戏服跨服分组id缓存 - public static final String CROSS_SERVER_GROUP = "CROSS_SERVER_GROUP"; + public static final String SERVER_STATE = "SERVER_STATE";// 服务器状态缓存 + + public static final String CROSS_SERVER_GROUP = "CROSS_SERVER_GROUP";// gm跨服分组id缓存 public static final String SERVER_SPLIT_MAIL_INFO = "SERVER_SPLIT_MAIL_INFO"; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java index 3dd948f33..ddbf9cdb8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java @@ -336,10 +336,17 @@ public class GlobleSystemLogic implements IEventHandler { */ public List getCrossServersByGroup(){ int group = getCrossGroup(); + // 跨服分组id Map values = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_SPLIT_INFO, "", String.class, Integer.class); + // 服务器状态 + Map serverStates = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_STATE, "", String.class, String.class); + ArrayList list = new ArrayList<>(); for (Map.Entry entry : values.entrySet()) { - if (entry.getValue() == group){ + // 获取服务器状态 + String serverStatesOrDefault = serverStates.getOrDefault(entry.getValue(), "-2"); + // "-2"表示未运营,此类服务器不参与分组 + if (entry.getValue() == group && !"-2".equals(serverStatesOrDefault)){ list.add(entry.getKey()); } }