命令与权限
EmakiCodex 的主命令是 /codex,别名为 /ecodex。文档示例统一使用 /codex。
Paper 命令入口本身要求 emakicodex.use;管理类子命令还会继续检查对应的 reload、debug 或 admin 权限。
命令列表
| 命令 | 权限 | 说明 |
|---|---|---|
/codex | emakicodex.use | 显示帮助。 |
/codex help | emakicodex.use | 显示帮助。 |
/codex reload | emakicodex.reload 或 emakicodex.admin | 重载配置、语言、成就页,重新注册 Advancement,并尝试向在线玩家重推。 |
/codex grant <player> <advId> | emakicodex.admin | 授予在线玩家一个 Codex 节点。 |
/codex revoke <player> <advId> | emakicodex.admin | 撤销在线玩家一个 Codex 节点。 |
/codex debug ... | emakicodex.debug 或 emakicodex.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 offgrant 与 revoke 的目标玩家必须在线,因为当前实现使用在线玩家名精确匹配。advId 支持两种写法:
| 写法 | 示例 | 说明 |
|---|---|---|
page/node | example/first_step | 推荐给服主使用的短写。 |
| 完整 NamespacedKey | emakicodex:example/first_step | 与底层原版 Advancement key 一致。 |
reload 行为
/codex reload 会执行以下工作:
- 释放缺失的默认资源,受
config.yml > release_default_data控制。 - 重新读取
config.yml、lang/*.yml与advancements/*.yml。 - 移除并重新注册 EmakiCodex 命名空间下的动态 Advancement。
- 如果 PacketEvents 可用,向在线玩家重推成就树;否则在线玩家可能需要重新登录才能看到界面变化。
权限节点
| 权限 | 默认 | 覆盖范围 |
|---|---|---|
emakicodex.use | true | 使用 /codex 命令入口与帮助。 |
emakicodex.reload | op | 使用 /codex reload。可被 emakicodex.admin 代替。 |
emakicodex.debug | op | 使用 /codex debug ...。可被 emakicodex.admin 代替。 |
emakicodex.admin | op | 使用授予、撤销等管理命令,并可代替 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 found | grant / revoke 的目标玩家不在线,或玩家名不完全匹配。 |
Advancement ... 未注册或状态无变化 | 成就 ID 写错、页面未成功加载,或授予/撤销时玩家当前进度没有变化。 |
| 在线玩家看不到 reload 后的新成就树 | 未安装 PacketEvents 或重推失败时,在线玩家需要重新登录。 |
| 节点坐标不生效 | 需要安装 PacketEvents,并开启 advancement.packet-coordinates: true。 |