Skip to content

插件介绍 ​

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

插件可以在 创意工坊 搜索

配置 ​

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

点击插件的 操作 按钮, 弹出文件列表, 选择 config.yml 或 config.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')
const result = 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.yml           配置文件 (建议持有)
└─ data.db              数据库 (选配)