Skip to content
大纲

开发指引

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

开发准备

使用插件模板(推荐)

你可以使用 npx keli create 脚手架命令,它会在 plugins 下生成模板。

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

手动创建目录和文件

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

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

编写第一个插件

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

js
// 从 keli 中引入框架的插件类,和 movo 的消息构造器
const { Plugin, segment } = require('keli')

// 通过插件名、版本号初始化插件(正式开发时推荐引用 package.json 的版本号)
const plugin = new Plugin('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, 你可以前往 Plugin API 查看所有支持的 API 和相关参数、类型说明。

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

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