Skip to content

Latest commit

 

History

History
42 lines (26 loc) · 2.05 KB

第三章 进阶插件编写1——事件响应与处理.md

File metadata and controls

42 lines (26 loc) · 2.05 KB

此章节没写完,先放在这

事件响应器

既然事件响应器是 “条件反射” 中的 “条件” ,那么自然我们可以使用多种方法去描述这个 “条件” 。

事件的类型

在nonebot中,事件分为四大类:meta_event, message, notice, request

元事件-metaevent

对应的事件响应器为 on_metaevent()

一类特殊的事件,与nonebot2的运行相关,例如心跳事件、ws连接等。 由于该类事件我们一般来说不会做响应,因此我不做过多解释

通知事件-notice

对应的事件响应器为 on_notice()

一些较为特殊的事件,且无需管理员的批准即可主动完成的操作,例如上传文件、被禁言、戳一戳这种消息会被归为通知事件。

在nonebot2的运行日志中,通知事件会按照 [notice.xxx.xxx]: {xxx} 的形式显现。

其中,{xxx}是一个json格式的数据,具体内容可以详见go-cqhttp的文档

请求事件-request

对应的事件响应器为 on_request()

一些较为特殊的事件,且需要管理员(或你)的批才能完成的操作,例如好友申请、加群申请等。 在nonebot2的运行日志中,请求事件会按照 [request.xxx]: {xxx} 的形式显现。

其中,{xxx}是一个json格式的数据,具体内容可以详见go-cqhttp的文档

消息事件-message

对应的事件响应器为 on_message()

是最基本的事件,仅通过聊天框和历史记录进行显示的的绝大多数都是消息类型,例如我们日常聊天的内容、发的图片等。 在nonebot2的运行日志中,消息事件会按照[message.xxx.xxx]: Message xxx from xxx "xxx"的形式显现。

而消息时间中,又可以根据格式不同划分为更多种类的细化的消息事件,在此不多做解释,在实例中和第三章的进阶教程中会有展示。

事件处理

在事件响应器捕捉到事件之后,会交由事件处理器进行处理。