最佳实践
1. 线程安全
- WS 线程 / 事件回调中调用游戏 API,必须用
lumen.run_on_main包裹 lumen.mc.runcmd/lumen.mc.broadcast已内置主线程调度,可直接用storage读写是线程安全的,可直接在任意线程调用
2. 事件命名
- 自定义事件建议用
<插件名>.<动作>格式,避免冲突:lumen.emit("economy.transfer", ...) - 监听 OneBot 事件前判断
group_id in lumen.plugin.config_manager.main_groups,避免响应无关群
3. 资源清理
- 事件监听器由 LumenContext 自动管理,
on_unload无需手动 off - 自定义的定时任务、文件句柄、网络连接需在
on_unload中手动清理
4. 配置持久化
createConfig只负责表单渲染与事件通知,不会自动保存配置- 需在
config.update.<name>事件中调用lumen.storage.write自行持久化 - 加载时用
lumen.storage.read("config.json", default)读取
5. 错误处理
- 事件回调中抛出的异常会被事件总线捕获并记入日志,不会崩溃服务器
- 但建议在关键逻辑中 try/except,避免静默失败
6. 多群适配
- 用
lumen.plugin.config_manager.main_groups(list[int])获取全部主群 - 需要广播到所有主群时遍历该列表
- 不要硬编码群号,让用户在配置里填
