Repository navigation
v1.4.0 — 插件开发体验升级(OFbot 重写问题修复)
背景
依据 docs/OFBOT2_PLUGIN_ISSUES.md 的 13 项实测问题,对插件开发体验做系统性升级,分三阶段落地。
阶段一(P1):声明与配置体验
- 指令冲突检测与解决:
plugin conflicts全量扫描;加载期不再因冲突失败——后加载插件冲突命令自动注册为<插件名>.<命令>(如/order_ledger.分账),system插件命令保留,conflicts支持rename/skip显式覆盖;Web「插件」页冲突徽标 +GET /api/v1/plugins/conflicts - 权限角色映射
permission_roles:权限点只授予指定角色,默认行为向后兼容 - 配置驱动定时任务:任务参数支持
${a.b.c}模板,保存配置重载即生效;ctx.register_managed_task让运行时任务进入 Web「定时任务」页 config_schema强校验:保存前补默认值并按 JSON Schema 校验,失败返回字段级错误;配置表单支持递归渲染嵌套对象
阶段二(P2):数据与参数
- records
list()新增filters(gte / lte / contains / in)与sort_by ctx.register_models随init_db(extra_models=...)真正建表- 命令参数新增
type: "rest"贪婪字符串(剩余参数合并)
阶段三(P3):运行与测试工具
- 文本转图
ctx.text_image()(Pillow)+ OneBot 群文件上传upload_group_file - 命令/任务/监听 handler 声明
ctx参数即自动注入PluginContext - 定时任务
target支持按群列表门控(["group:a", "group:b"]) - 重载时模型/任务声明变化给出明确告警
- 新增
app.testing.FakeBotHarness插件端到端夹具与 CLIplugin e2e - 命令级
max_arg_length覆盖全局参数长度限制
插件
- 新增 order_ledger 插件(OFbot 重写:通用订单管理与记账/分账,适用于代打/代购/拼单等任意订单场景),内置并收录插件市场(
general分类);与市场 stats/commission 插件共存时命令自动命名空间化,不冲突不加载失败 - 全量 303 项测试通过、order_ledger 端到端 12 条指令通过、ruff 与 compileall 全绿