Skip to content
大纲

开发指引

逐步完善中,可先参考 KiviPlugin API

开发准备

使用插件模板(推荐)

你可以使用 kivi create 脚手架命令,它会在 框架目录/plugins 下生成模板。

如果你对 TS 很熟悉,这里有一个开箱即用的 TS 插件开发模板,也许对你有帮助。

手动创建目录和文件

如果你不想使用模板,也可以手动创建。

框架目录/plugins 下新建一个插件目录(会被作为插件名, 建议英文), 然后在这个目录下新建一个 index.js, 然后你就可以自己开始开发啦。

编写第一个插件

按照惯例,我们先来写一个 Hello World 插件, 并以这个插件为例子展开。

js
// 从 @kivibot/core 中引入框架的插件类,和 oicq 的消息构造器
const { KiviPlugin, segment } = require('@kivibot/core')

// 通过插件名、版本号初始化插件(正式开发时推荐引用 package.json 的版本号)
const plugin = new KiviPlugin('demo', '0.1.0')

// 插件生命周期函数,插件被启用时,传入的函数被调用。
plugin.onMounted((bot, admins) => {
  // 添加消息监听处理函数
  plugin.onMessage(event => {
    const { raw_message, sender } = event

    // 消息处理逻辑
    if (raw_message === 'hello') {
      // 消息链,可用 segment 构造复杂消息,比如图片,QQ 表情,视频音频等
      const msgs = [segment.face(66), 'world']

      // Bot 回复消息,消息类型可以是字符串,或者合法的消息链数组
      event.reply(msgs)
    }
  })
})

// 将 plugin 采用 CommonJS 规范进行导出
module.exports = { plugin }

可以看到,你需要先初始化插件实例,然后调用相关的插件 API 进行处理。

这里的 plugin.onMounted(), plugin.onMessage() 等, 都是插件类提供的 API, 你可以前往 KiviPlugin API 查看所有支持的 API 和相关参数、类型说明。

需要注意的是, 只有在 plugin.onMounted() 中才能访问到 Bot 的相关属性和方法, 所以请把与 Bot 相关的业务逻辑都写在 plugin.onMounted() 传入的函数中。

逐步完善中,敬请期待...