From a4013d0ea82798138307296e0e28e0ef76191654 Mon Sep 17 00:00:00 2001 From: Xujiayao Date: Thu, 12 Mar 2026 11:48:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=98=93=E6=87=82=E7=9A=84server=5Fov?= =?UTF-8?q?errides=E9=85=8D=E7=BD=AE=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../server/discord/OpLevelResolver.java | 2 +- .../main/resources/config/config_standalone.yml | 16 +++------------- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 48760180..c4a74b41 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ DMCC 在 Client 端提供独立的 `whitelist` 代理命令(默认所需权限 当 DMCC 处于 `standalone + multi_server_client` 架构时,不同子服务器可使用不同 OP 映射策略。 在 `standalone` 配置的 `user_mappings` 与 `role_mappings` 中,每个条目包含一个顶层 `op_level`(给 Standalone 自身查询使用),以及一个 -`servers` 列表字典。若 `servers` 中没有某子服务器的对应条目,则该子服务器自动降级使用顶层 `op_level` 作为默认回退值。 +`server_overrides` 列表字典。若 `server_overrides` 中没有某子服务器的对应条目,则该子服务器自动降级使用顶层 `op_level` 作为默认回退值。 ## 7. 命令列表与权限参考 diff --git a/core/src/main/java/com/xujiayao/discord_mc_chat/server/discord/OpLevelResolver.java b/core/src/main/java/com/xujiayao/discord_mc_chat/server/discord/OpLevelResolver.java index 89a21a53..2a5737c1 100644 --- a/core/src/main/java/com/xujiayao/discord_mc_chat/server/discord/OpLevelResolver.java +++ b/core/src/main/java/com/xujiayao/discord_mc_chat/server/discord/OpLevelResolver.java @@ -102,7 +102,7 @@ public class OpLevelResolver { */ private static int resolveOpFromNode(JsonNode node, String serverName) { if (serverName != null) { - JsonNode serversArray = node.path("servers"); + JsonNode serversArray = node.path("server_overrides"); if (serversArray.isArray()) { for (JsonNode serverEntry : serversArray) { if (serverName.equals(serverEntry.path("server").asText())) { diff --git a/core/src/main/resources/config/config_standalone.yml b/core/src/main/resources/config/config_standalone.yml index f36050d3..f65a9bfa 100644 --- a/core/src/main/resources/config/config_standalone.yml +++ b/core/src/main/resources/config/config_standalone.yml @@ -138,27 +138,17 @@ account_linking: user_mappings: - user: "xujiayao" op_level: 4 - servers: - - server: "SMP" - op_level: 4 - - server: "CMP" - op_level: 4 + server_overrides: # 基于身份组的映射。若用户有多个身份组,取映射的最高 OP 等级。 role_mappings: # 示例 1:拥有 "Admins" 角色的用户将被视为 OP 3。 - role: "Admins" op_level: 3 - servers: - - server: "SMP" - op_level: 3 - - server: "CMP" - op_level: 3 + server_overrides: # 示例 2:可将基础认证角色映射为 OP 0,使其有权执行无需特殊权限的 DMCC 命令(如委托执行白名单)。 - role: "Players" op_level: 0 - servers: - - server: "SMP" - op_level: 0 + server_overrides: - server: "CMP" op_level: 2 use_role_colors_in_chat: true