跳到主要内容

Listener

在快速开始章节,我们了解了如何基于Listener类来监听message事件并完成消息动作回应,本节我们继续介绍on方法以及它的辅助函数相关内容。

hooks

虽然我们使用new方式创建插件,但是ov0的插件面向函数式编程,这意味着需要一种俗成约定的规范来扩展动作响应函数的方法,hook则提供了良好的生态。如果你对vue或react的钩子函数有一定了解,那么你可以将事件回调函数当做一个组件来看。即便你不熟悉,我们也可以通过下面的例子来简单了解:

import { Listener, segment, useRes } from 'ov0'
import { Onebot11Adapter } from 'ov0-plugin-adapter-onebot11'
import { TanebijsAdapter } from 'ov0-plugin-adapter-tanebijs'

// 双尖括号里可以写入你需要适配器的联合类型
const app = new Listener<Onebot11Adapter | TanebijsAdapter>({
// 插件名称
name: '发送消息链',
// 支持的适配器
adapters: ['onebot11''tanebijs']
})

app.on('message',(e) => {
const res = useRes(e)
res.at(e.user_id).text('hello').image('https://xxx.com/1.png').send()
})

这里我们用useRes函数对事件e进行了包装,使得你可以链式构造一条包含多个消息元素的消息链并立即发送出去。当然它底层仍然是对e.reply和segment实例的封装,这意味如果事件未提供reply方法,你也无法使用该方法发送消息。