config
plan 级文件管理。菜单值仍走 gui.set / gui.get —— config.* 只管 plan 切换 / 列举 / 保存为新 plan。
| 方法 | 说明 |
|---|---|
config.save() | 保存当前 plan。异步落盘,返回时文件不一定已写完 |
config.save_as(plan_name) | 用新 plan 名另存,当前 plan 不变 |
config.switch(plan_name) | 切到指定 plan |
config.list() → table<string> | 列出所有可用 plan 名 |
config.current() → string | 当前 plan 名 |
没有
config.load—— 与config.switch重复。
行为说明
这几个方法都没有返回值,失败只写日志,别拿返回值判断成没成。
- 名字里的扩展名会被剥掉,
"cqc.preset"等于"cqc"。 config.switch的目标 plan 不存在时不报错,而是用默认值新建一个同名 plan 再切过去。拼错名字会凭空多出一个 plan,当前配置被换成默认值 —— 先用config.list()核对。config.switch切完会按新 plan 的脚本清单同步:不在清单里的脚本被卸载(包括调用它的脚本自己),清单里的未加载脚本被加载。之后派发config_changed。switch 之后的代码别再假设自己的控件还在。config.save_as的名字为空或叫default会被拒绝,同样不报错。
示例
lua
log.info("当前 plan: " .. config.current())
log.info("可用 plans: " .. table.concat(config.list(), ", "))
-- 切到 cqc,plan 名不带扩展名。switch 没有返回值,切完读 current() 确认
config.switch("cqc")
gui.notify:success("已切到 " .. config.current(), 2.0)