Skip to content

命令与权限

EmakiCodex 的主命令是 /codex,别名为 /ecodex。文档示例统一使用 /codex

Paper 命令入口本身要求 emakicodex.use;管理类子命令还会继续检查对应的 reload、debug 或 admin 权限。

命令列表

命令权限说明
/codexemakicodex.use显示帮助。
/codex helpemakicodex.use显示帮助。
/codex reloademakicodex.reloademakicodex.admin重载配置、语言、成就页,重新注册 Advancement,并尝试向在线玩家重推。
/codex grant <player> <advId>emakicodex.admin授予在线玩家一个 Codex 节点。
/codex revoke <player> <advId>emakicodex.admin撤销在线玩家一个 Codex 节点。
/codex debug ...emakicodex.debugemakicodex.admin管理 advancement debug 模块。具体子命令由 CoreLib DebugCommand 提供。

示例

text
/codex
/codex help
/codex reload
/codex grant Steve example/first_step
/codex grant Steve emakicodex:example/challenge
/codex revoke Steve example/first_step
/codex debug advancement on
/codex debug advancement off

grantrevoke 的目标玩家必须在线,因为当前实现使用在线玩家名精确匹配。advId 支持两种写法:

写法示例说明
page/nodeexample/first_step推荐给服主使用的短写。
完整 NamespacedKeyemakicodex:example/first_step与底层原版 Advancement key 一致。

reload 行为

/codex reload 会执行以下工作:

  1. 释放缺失的默认资源,受 config.yml > release_default_data 控制。
  2. 重新读取 config.ymllang/*.ymladvancements/*.yml
  3. 移除并重新注册 EmakiCodex 命名空间下的动态 Advancement。
  4. 如果 PacketEvents 可用,向在线玩家重推成就树;否则在线玩家可能需要重新登录才能看到界面变化。

权限节点

权限默认覆盖范围
emakicodex.usetrue使用 /codex 命令入口与帮助。
emakicodex.reloadop使用 /codex reload。可被 emakicodex.admin 代替。
emakicodex.debugop使用 /codex debug ...。可被 emakicodex.admin 代替。
emakicodex.adminop使用授予、撤销等管理命令,并可代替 reload/debug 专用权限。

常见 LuckPerms 示例:

text
/lp group default permission set emakicodex.use true
/lp group admin permission set emakicodex.admin true
/lp group admin permission set emakicodex.reload true
/lp group admin permission set emakicodex.debug true

常见失败原因

场景说明
Player not foundgrant / revoke 的目标玩家不在线,或玩家名不完全匹配。
Advancement ... 未注册或状态无变化成就 ID 写错、页面未成功加载,或授予/撤销时玩家当前进度没有变化。
在线玩家看不到 reload 后的新成就树未安装 PacketEvents 或重推失败时,在线玩家需要重新登录。
节点坐标不生效需要安装 PacketEvents,并开启 advancement.packet-coordinates: true