HOOZi文档
Skip to content

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)