Skip to content

插件介绍

插件是拓展机器人功能的重要功能

插件可以在 创意工坊 搜索

配置

插件基本遵循 配置决策功能 的逻辑

点击插件的 操作 按钮, 弹出文件列表, 选择 config.ymlconfig.json 查看配置文件

介绍

插件的使用说明和介绍都在 创意工坊查看 按钮中查看

操作按钮

  • 保存 仅仅保存文件, 不会影响插件
  • 重启 相当于关闭再开启, 大多数插件会在启动时, 更改配置
  • 编译 插件的 index.js 将重新编译, 一般作为开发时使用

提示

一般来说, 更改配置后, 点击 重启 即可

点击 dev 即可显示 保存 编译

修改代码, 需要编译

开关

点击 开关 按钮会执行 onChange 函数

提示

即使为关闭状态, 插件内 定时器 等依然在保持工作

可以在定时器内部根据插件 开关 状态再执行业务代码

插件优先级

每个消息会按照顺序交给每个插件去处理, 有些插件需要高优先级, 否则可能会导致功能失效

比如: 如果 黑名单自动同意群申请 插件后面处理事件, 那么先同意了群申请, 黑名单 插件无法拒绝已经加入的了

提示

越在后面优先级越高(网页端是倒叙显示)

插件开发

插件的目录为 /plugins, 入口文件是 index.js

index.js 中暴露回调函数

回调函数
  • onGroupMessage(event) 收到群消息
  • onUserMessage(event) 收到私聊消息
  • onGroupMemberAliasUpdate(event) 群成员名片修改
  • onGroupMemberIncrease(event) 群成员增加
  • onGroupMemberDecrease(event) 群成员减少
  • onGroupRequest(event) 进群申请
  • onFriendRequest(event) 好友申请
  • onChange(enable) 开关状态变更, 一般开启时做配置加载
  • onCall(function, ...args) 为提供插件间互相调用的函数
  • onWebCall(request, response) web接口调用
  • console 属性, 是否提供控制台

函数返回值

责任链 模式, 返回 true, 事件继续向后传递, 否则 结束

配置决策功能

为了实现 配置决策功能, 建议在 onChange 回调函数中实现加载配置功能

插件间互相调用

使用 global-plugin-call-bus 就可以调用其他的插件的 onCall 函数

调用方

js
const callBus = require('global-plugin-call-bus')
callBus.call('积分商店', '充值', '123456', 200)
// callBus.call(插件名, 函数名[, 参数1, 参数2, 参数3...])

被调用方 (需要手动路由函数)

js
exports.onCall(functionName, param1, param2) {
    if (functionName == '充值') {
        // 充值
        recharge(param1, param2)
    } else if (functionName == '查询') {
        // 查询
        // return 123
    }
}

建议目录结构

config
.
├─ info                 信息 (必须存在)
│  ├─ description.txt   简介
│  ├─ detail.md         详情 (创意工坊会将 `md` 渲染成 `html`)
│  ├─ version.txt       版本
│  └─ logo.png          logo  
├─ index.js             插件入口脚本 (必须存在)
├─ config.json          配置文件 (建议持有)
└─ data.db              数据库 (选配)