基本概念
在开始编写属于自己的插件之前,让我们先了解一些基本的概念。
机器人 (Bot)
即然你会看到这里,相信你一定是来编写一个机器人的吧。不过,为了以防万一,AliceBot 所说的机器人指的是聊天机器人,就是微信公众号中的自动回复、电商软件中的 AI 客服、智能音响中的语音助手、TRPG 跑团群中的骰娘、游戏群聊中的信息推送机器人这类的,而不是地上跑的小机器人或者工业机械臂之类的东西。
而在 AliceBot 中,Bot 有着额外的含义,Bot 是 AliceBot 中最顶层的概念。Bot 类负责了加载配置文件、加载插件和适配器、进行事件分发等。总之,一个聊天机器人就对应着 AliceBot 中的一个 Bot 对象。
事件 (Event)
事件是 AliceBot 中最基础的概念。一个事件的产生表示有什么和机器人相关的事情发生了,比如,机器人收到了一条私聊或群聊消息、一个好友请求等等。这意味着机器人要开始工作了,它需要对事件做出响应。
适配器 (Adapter)
事件是怎么产生的呢?
事件本质上是由协议后端产生的,AliceBot 支持多种协议,比如 OneBot、Mirai、钉钉等,这些聊天协议的后端会产生一个事件,而协议适配器就是用于和后段进行沟通的媒介。协议适配器从协议后段获取到事件后封装为一个 AliceBot 的事件对象并交给 AliceBot 处理。
所以 AliceBot 无法独立运行,它需要一个协议后段和对应的协议适配器。
插件 (Plugin)
那么机器人要如何对事件进行处理呢?
插件是 AliceBot 中处理事件最基础的单位,也是你将会接触最多的概念。当协议适配器产生一个事件并交给机器人后,AliceBot 会将事件分发给各个插件,由插件考虑是否要对这个事件进行处理,应该如何进行处理。
下面我们就将从零开始编写一个插件。