使用 Bot 来处理事件
... 小于 1 分钟
# 使用 Bot 来处理事件
Bots 是 HyperaiShell 提供用于直接处理事件的功能类。编写自己的 Bot 可以将插件功能扩展到群成员管理,特定消息处理等。
# 在这之前你需要了解...
...
# 一个 Bot 类
Bot 类通常具有以下特性
- 实现
BotBase
抽象类 - 公开(public),非抽象(abstract)
- 使用构造函数注入服务
- 被 HyperaiShell 作为 Singleton 管理
- Bot 之间相互独立,不依赖,不干扰
一个插件可以有任意个 Bot,一个 Bot 通常只处理与之任务相关的事件。Bot 实例全局唯一。
# 处理事件
BotBase
中提供了多个以“OnXXXXX”命名的虚方法,这些方法即 Bot 处理事件时被调用的方法,即所谓的事件处理函数。通过重写虚方法实现接管事件处理的目的。
事件处理函数提供固定个形参,对于需要的其他服务,请使用构造注入。例如 IApiClient
服务请在构造函数中索取。
事件处理函数不返回任何值,无法阻断其他 Bots 或消息在管线中继续传递。