使用 Bot 来处理事件

... 小于 1 分钟

# 使用 Bot 来处理事件

Bots 是 HyperaiShell 提供用于直接处理事件的功能类。编写自己的 Bot 可以将插件功能扩展到群成员管理,特定消息处理等。

# 在这之前你需要了解...

...

# 一个 Bot 类

Bot 类通常具有以下特性

  • 实现 BotBase 抽象类
  • 公开(public),非抽象(abstract)
  • 使用构造函数注入服务
  • 被 HyperaiShell 作为 Singleton 管理
  • Bot 之间相互独立,不依赖,不干扰

一个插件可以有任意个 Bot,一个 Bot 通常只处理与之任务相关的事件。Bot 实例全局唯一。

# 处理事件

BotBase 中提供了多个以“OnXXXXX”命名的虚方法,这些方法即 Bot 处理事件时被调用的方法,即所谓的事件处理函数。通过重写虚方法实现接管事件处理的目的。

事件处理函数提供固定个形参,对于需要的其他服务,请使用构造注入。例如 IApiClient 服务请在构造函数中索取。

事件处理函数不返回任何值,无法阻断其他 Bots 或消息在管线中继续传递。

上次编辑于: 2020年7月19日 06:30