Skip to content

命令与权限 ​

CoreLib 的全部命令和权限节点如下, 再挑几个常用操作, 一步步说明怎么用

EmakiCoreLib 的主命令是 /emakicorelib, 别名为 /corelib, /emakicore. 这些命令主要给你这样的服务器管理员用: 重载 CoreLib, 做配置预检 (提前把配置检查一遍), 查看或执行已注册的 Action (动作, 即动作系统里注册的一段效果), 以及排查循环 Action 任务

命令列表 ​

命令说明权限
/corelib reload重新加载 CoreLib 的配置和 Action 系统; 如果预检没通过, 这次重载会取消, 继续用原来的配置emakicorelib.reload 或 emakicorelib.admin
/corelib check [module|report|--fix]做一次配置预检, 可以只检查指定模块, 也可以看最近一次的检查报告; 当前版本里的 --fix 只给提示, 不会真的自动修复emakicorelib.admin
/corelib action list列出当前注册表里各段的 id, kind (段的类型, 取 source/gate/action) 和 owneremakicorelib.admin
/corelib action run <actionId> key=value ...直接执行一条已经注册的 Action; 也可以省掉 run, 写成 /corelib action <actionId> key=value ...emakicorelib.admin
/corelib pdc-convert <players|containers|entities|all> [--dry-run]把历史的带点 PDC 键 (用 . 分段的老键) 换成扁平键 (用 _ 分段的新键); 加 --dry-run 只统计不写入emakicorelib.admin
/corelib debug all [on|off|status]在运行时切换全局 Debug 开关; 不带参数就等同于 status. 重载后恢复成 debug.global_all 的配置值emakicorelib.admin
/corelib debug loops [list|player|key|cancel|cancel-player]查看正在跑的循环 Action 任务, 并按 key 或按玩家取消循环任务emakicorelib.admin
/corelib help显示各子命令的帮助; 不带参数, 或者输入了不认识的子命令时也会显示无

记法很简单: action 子命令也可以写作 actions, 两者等价

权限节点 ​

权限默认说明
emakicorelib.reloadop允许重载 CoreLib
emakicorelib.adminopCoreLib 的管理员总权限, 包含 emakicorelib.reload

常用操作 ​

重载 CoreLib ​

text
/corelib reload

改完 CoreLib 主配置, 语言文件或 Action 之后, 你运行它即可. 它会先跑一遍配置预检; 预检没过, 就不会替换当前正在生效的配置

执行配置预检 ​

text
/corelib check
/corelib check report
/corelib check corelib

check 会检查配置引用, Action 模板, 物品源和 CoreLib 相关配置. 想看最近一次预检的结果, 用 report; 只想检查某个模块, 就传入它的模块 ID

查看和执行已注册 Action ​

text
/corelib action list
/corelib action run send_message text="hello"

action list 帮你确认当前注册表里有哪些段, 每行输出 id, kind 和 owner 三项. action run 会把整行交给管道编译器按普通管道行解析, 所以参数, 引号, if <条件> [ ... ] 分支和 gate 写法都和你在配置文件里写的管道行一样. 注意在控制台执行时没有玩家上下文, 依赖玩家的段会按原有的校验失败

转换历史 PDC 键 ​

text
/corelib pdc-convert players
/corelib pdc-convert containers
/corelib pdc-convert entities
/corelib pdc-convert all --dry-run

先选 scope (扫描范围), 取值为 players, containers, entities, all. 转换在异步线程上扫描, 结束后按 scope 输出 scanned / migrated / skipped / failed 计数和总迁移数. 建议先加 --dry-run 只统计不写入, 先估一下影响面

排查循环 Action ​

text
/corelib debug loops list
/corelib debug loops player Steve
/corelib debug loops key some-loop-key
/corelib debug loops cancel some-loop-key
/corelib debug loops cancel-player Steve

这些命令只用来排查或清理循环 Action. 注意: 生产服上不建议长期保留大量循环任务的调试输出

切换全局 Debug ​

text
/corelib debug all status
/corelib debug all on
/corelib debug all off

它的作用等同于临时改写 config.yml 里的 debug.global_all, 会影响所有使用 CoreLib DebugLogger 的 Emaki 模块. 注意这个切换不会写回配置文件, 你执行 /corelib reload 后会重新采用配置值