事件定义列表
公告
站点迁移啦~!
为什么迁移?
作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。
但是缺点也很明显: 太过分散。
组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。
KOOK组件中的事件类型包含两个层面:
API 模块 中,对 KOOK API 中官方定义的事件结构的基本封装与实现。
核心模块 中,基于 API 模块中的事件封装,对 simbot4 标准库中的
Event事件类型的实现。
API 模块事件封装
API 模块所有的事件封装类型都在包 love.forte.simbot.kook.event 中, 并且基本上命名与官网API中的事件类型名称有一定关联。
事件类型定义为 love.forte.simbot.kook.event.Event<out EX : EventExtra>, 而不同类型的事件之间的区别在于 EX 的差异。
所有事件的 extra 的封装类型均继承密封类 love.forte.simbot.kook.event.EventExtra。
- SelfJoinedGuildEventExtra
love.forte.simbot.kook.event.SelfJoinedGuildEventExtra事件类型名:
"self_joined_guild"- SelfExitedGuildEventExtra
love.forte.simbot.kook.event.SelfExitedGuildEventExtra事件类型名:
"self_exited_guild"- MessageBtnClickEventExtra
love.forte.simbot.kook.event.MessageBtnClickEventExtra事件类型名:
"message_btn_click"- AddedChannelEventExtra
love.forte.simbot.kook.event.AddedChannelEventExtra事件类型名:
"added_channel"- UpdatedChannelEventExtra
love.forte.simbot.kook.event.UpdatedChannelEventExtra事件类型名:
"updated_channel"- DeletedChannelEventExtra
love.forte.simbot.kook.event.DeletedChannelEventExtra事件类型名:
"deleted_channel"- AddedReactionEventExtra
love.forte.simbot.kook.event.AddedReactionEventExtra事件类型名:
"added_reaction"- DeletedReactionEventExtra
love.forte.simbot.kook.event.DeletedReactionEventExtra事件类型名:
"deleted_reaction"- UpdatedMessageEventExtra
love.forte.simbot.kook.event.UpdatedMessageEventExtra事件类型名:
"updated_message"- DeletedMessageEventExtra
love.forte.simbot.kook.event.DeletedMessageEventExtra事件类型名:
"deleted_message"- PinnedMessageEventExtra
love.forte.simbot.kook.event.PinnedMessageEventExtra事件类型名:
"pinned_message"- UnpinnedMessageEventExtra
love.forte.simbot.kook.event.UnpinnedMessageEventExtra事件类型名:
"unpinned_message"- EventExtra
love.forte.simbot.kook.event.EventExtra事件的消息
extra。**
UnknownExtra**UnknownExtra与其他子类型有所不同。UnknownExtra是由框架定义并实现的特殊类型, 它用来承载那些接收后无法被解析或尚未支持的事件类型。- TextExtra
love.forte.simbot.kook.event.TextExtra事件类型名:
"text"文字频道消息
extra- TextEventExtra
love.forte.simbot.kook.event.TextEventExtra- ImageEventExtra
love.forte.simbot.kook.event.ImageEventExtra- VideoEventExtra
love.forte.simbot.kook.event.VideoEventExtra- KMarkdownEventExtra
love.forte.simbot.kook.event.KMarkdownEventExtra- CardEventExtra
love.forte.simbot.kook.event.CardEventExtra- SystemExtra
love.forte.simbot.kook.event.SystemExtra事件类型名:
"sys"系统事件消息
extra- UnknownExtra
love.forte.simbot.kook.event.UnknownExtra事件类型名:
"$$UNKNOWN"当一个事件反序列化失败的时候,会被尝试使用
UnknownExtra作为extra的序列化目标。 如果是因为一个未知的事件导致的这次失败,则UnknownExtra便会反序列化成功并被推送。UnknownExtra不会提供任何可反序列化的属性, 取而代之的是提供了source来获取本次反序列化失败的的原始JSON字符串信息。 你可以通过source来做一些临时性处理,例如解析并获取其中的信息。FragileSimbotApi
UnknownExtra类型的事件会随着支持的事件类型的增多而减少。 对可能造成UnknownExtra出现概率降低的更新不会做专门的提示。 因此使用UnknownExtra时应当明确了解其可能出现的内容,同时不可过分依赖它。- UpdateGuildEventExtra
love.forte.simbot.kook.event.UpdateGuildEventExtra事件类型名:
"updated_guild"- DeleteGuildEventExtra
love.forte.simbot.kook.event.DeleteGuildEventExtra事件类型名:
"deleted_guild"- AddBlockListEventExtra
love.forte.simbot.kook.event.AddBlockListEventExtra事件类型名:
"added_block_list"- DeleteBlockListEventExtra
love.forte.simbot.kook.event.DeleteBlockListEventExtra事件类型名:
"deleted_block_list"- AddedEmojiEventExtra
love.forte.simbot.kook.event.AddedEmojiEventExtra事件类型名:
"added_emoji"- RemovedEmojiEventExtra
love.forte.simbot.kook.event.RemovedEmojiEventExtra事件类型名:
"removed_emoji"- UpdatedEmojiEventExtra
love.forte.simbot.kook.event.UpdatedEmojiEventExtra事件类型名:
"updated_emoji"- JoinedGuildEventExtra
love.forte.simbot.kook.event.JoinedGuildEventExtra事件类型名:
"joined_guild"- ExitedGuildEventExtra
love.forte.simbot.kook.event.ExitedGuildEventExtra事件类型名:
"exited_guild"- UpdatedGuildMemberEventExtra
love.forte.simbot.kook.event.UpdatedGuildMemberEventExtra事件类型名:
"updated_guild_member"- GuildMemberOnlineEventExtra
love.forte.simbot.kook.event.GuildMemberOnlineEventExtra事件类型名:
"guild_member_online"- GuildMemberOfflineEventExtra
love.forte.simbot.kook.event.GuildMemberOfflineEventExtra事件类型名:
"guild_member_offline"- UpdatedPrivateMessageEventExtra
love.forte.simbot.kook.event.UpdatedPrivateMessageEventExtra事件类型名:
"updated_private_message"- DeletedPrivateMessageEventExtra
love.forte.simbot.kook.event.DeletedPrivateMessageEventExtra事件类型名:
"deleted_private_message"- AddedRoleEventExtra
love.forte.simbot.kook.event.AddedRoleEventExtra事件类型名:
"added_role"- DeletedRoleEventExtra
love.forte.simbot.kook.event.DeletedRoleEventExtra事件类型名:
"deleted_role"- UpdatedRoleEventExtra
love.forte.simbot.kook.event.UpdatedRoleEventExtra事件类型名:
"updated_role"- JoinedChannelEventExtra
love.forte.simbot.kook.event.JoinedChannelEventExtra事件类型名:
"joined_channel"- ExitedChannelEventExtra
love.forte.simbot.kook.event.ExitedChannelEventExtra事件类型名:
"exited_channel"- UserUpdatedEventExtra
love.forte.simbot.kook.event.UserUpdatedEventExtra事件类型名:
"user_updated"用户信息更新 该事件与服务器无关, 遵循以下条件
仅当用户的 用户名 或 头像 变更时;
仅通知与该用户存在关联的用户或 Bot: a. 存在聊天会话 b. 双方好友关系
Simbot 标准库 Event 实现
使用核心库,可以在 simbot4 的 Application 或 Spring Boot 中使用这些事件类型实现。
核心模块所有的 simbot Event 实现类型定义都在包 love.forte.simbot.component.kook.event 中。
所有实现类型均继承 love.forte.simbot.component.kook.event.KookEvent。
- KookEvent
love.forte.simbot.component.kook.event.KookEventKook 组件的事件类型基类。
- KookBotEvent
love.forte.simbot.component.kook.event.KookBotEventKookEvent下实现BotEvent的基础类型。- KookSystemEvent
love.forte.simbot.component.kook.event.KookSystemEventKookBotEvent的 系统事件 相关的事件基类。- KookBotRegisteredEvent
love.forte.simbot.component.kook.event.KookBotRegisteredEvent当一个
KookBot在KookBotManager中被_注册_时。- KookBotStartedEvent
love.forte.simbot.component.kook.event.KookBotStartedEventKookBot执行startKookBot.start之后推送的事件。- KookChannelChangedEvent
love.forte.simbot.component.kook.event.KookChannelChangedEventKOOK 系统事件中与 频道变更 相关的事件的simbot事件基准类。 涉及的 KOOK 原始事件 (的
SystemExtra子类型) 有:AddedChannelEventExtraUpdatedChannelEventExtraDeletedChannelEventExtra
- KookAddedChannelEvent
love.forte.simbot.component.kook.event.KookAddedChannelEvent某频道服务器中新增了一个频道后的事件。
- KookUpdatedChannelEvent
love.forte.simbot.component.kook.event.KookUpdatedChannelEvent某频道发生了信息变更。
- KookDeletedChannelEvent
love.forte.simbot.component.kook.event.KookDeletedChannelEvent某频道被删除的事件。
- KookCategoryChangedEvent
love.forte.simbot.component.kook.event.KookCategoryChangedEventKOOK 系统事件中与 频道分组变更 相关的事件的simbot事件基准类。 涉及的 KOOK 原始事件 (的
SystemExtra子类型) 有:AddedChannelEventExtraUpdatedChannelEventExtraDeletedChannelEventExtra
- KookAddedCategoryEvent
love.forte.simbot.component.kook.event.KookAddedCategoryEvent某频道服务器中新增了一个频道分组后的事件。
- KookUpdatedCategoryEvent
love.forte.simbot.component.kook.event.KookUpdatedCategoryEvent某频道分组发生了信息变更。
- KookDeletedCategoryEvent
love.forte.simbot.component.kook.event.KookDeletedCategoryEvent某频道分组被删除的事件。
- KookDeletedMessageEvent
love.forte.simbot.component.kook.event.KookDeletedMessageEventKOOK 系统事件中与 消息删除 相关的事件的simbot事件基准类。 涉及的 KOOK 原始事件 (的
SystemExtra子类型) 有:DeletedMessageEventExtraDeletedPrivateMessageEventExtra
- KookDeletedChannelMessageEvent
love.forte.simbot.component.kook.event.KookDeletedChannelMessageEventKOOK中一个频道消息被删除的事件。
- KookDeletedPrivateMessageEvent
love.forte.simbot.component.kook.event.KookDeletedPrivateMessageEventKOOK中一个私聊消息被删除的事件。
- KookMemberChangedEvent
love.forte.simbot.component.kook.event.KookMemberChangedEventKOOK 的频道成员变更事件。 相关的 KOOK 原始事件类型有:
ExitedChannelEventExtraJoinedChannelEventExtraJoinedGuildEventExtraExitedGuildEventExtraUpdatedGuildMemberEventExtraSelfExitedGuildEventExtraSelfJoinedGuildEventExtra其中,SelfExitedGuildEventExtra和SelfJoinedGuildEventExtra代表为 BOT 自身作为成员的变动, 因此会额外提供相对应的 [bot成员变动]KookBotMemberChangedEvent事件类型来进行更精准的事件监听。
相关事件
成员的频道变更事件
KookMemberChannelChangedEvent事件及其子类型KookMemberExitedChannelEvent、KookMemberJoinedChannelEvent代表了一个频道服务器中的某个群成员加入、离开某一个频道(通常为语音频道)的事件。成员的服务器变更事件
KookMemberGuildChangedEvent事件及其子类型KookMemberJoinedGuildEvent、KookMemberExitedGuildEvent代表了一个频道服务器中有新群成员加入、旧成员离开此服务器的事件。成员的信息变更事件
KookMemberUpdatedEvent事件 代表了一个成员的信息发生了变更的事件。Bot频道服务器事件
KookBotMemberChangedEvent事件及其子类型KookBotSelfJoinedGuildEvent、KookBotSelfExitedGuildEvent代表了当前bot加入新频道服务器、离开旧频道服务器的事件。- KookMemberChannelChangedEvent
love.forte.simbot.component.kook.event.KookMemberChannelChangedEventKOOK [成员变更事件]
KookMemberChangedEvent中与语音频道的进出相关的变更事件。 这类事件代表某人进入、离开某个语音频道 (channel),而不代表成员进入、离开了当前的频道服务器(guild)。- KookMemberJoinedChannelEvent
love.forte.simbot.component.kook.event.KookMemberJoinedChannelEventKOOK 成员加入(语音频道)事件。
- KookMemberExitedChannelEvent
love.forte.simbot.component.kook.event.KookMemberExitedChannelEventKOOK 成员离开(语音频道)事件。
- KookMemberGuildChangedEvent
love.forte.simbot.component.kook.event.KookMemberGuildChangedEventKOOK [成员变更事件]
KookMemberChangedEvent中与频道服务器进出相关的变更事件。 这类事件代表某人加入、离开某个频道服务器。- KookMemberExitedGuildEvent
love.forte.simbot.component.kook.event.KookMemberExitedGuildEventKOOK 成员离开(频道)事件。
- KookMemberJoinedGuildEvent
love.forte.simbot.component.kook.event.KookMemberJoinedGuildEventKOOK 成员加入(频道)事件。
- KookMemberUpdatedEvent
love.forte.simbot.component.kook.event.KookMemberUpdatedEventKOOK 频道成员信息更新事件。
- KookBotMemberChangedEvent
love.forte.simbot.component.kook.event.KookBotMemberChangedEvent频道成员的变动事件中,变动本体为bot自身时的事件。 对应 KOOK 原始事件的
SelfExitedGuildEventExtra和SelfJoinedGuildEventExtra。- KookBotSelfExitedGuildEvent
love.forte.simbot.component.kook.event.KookBotSelfExitedGuildEventKOOK BOT自身离开(频道)事件。
- KookBotSelfJoinedGuildEvent
love.forte.simbot.component.kook.event.KookBotSelfJoinedGuildEventKOOK BOT自身加入(频道)事件。
- KookUserOnlineStatusChangedEvent
love.forte.simbot.component.kook.event.KookUserOnlineStatusChangedEventKOOK 用户在线状态变更相关事件的抽象父类。 涉及到的原始事件有:
GuildMemberOfflineEventExtraGuildMemberOnlineEventExtra
变化主体
此事件主体是事件中的 [用户ID]
GuildMemberOnlineStatusChangedEventBody.userId子类型
此事件是密封的,如果你只想监听某人的上线或下线中的其中一种事件,则考虑监听此事件类的具体子类型。
- KookMemberOnlineEvent
love.forte.simbot.component.kook.event.KookMemberOnlineEventKookUserOnlineStatusChangedEvent对于用户上线的事件子类型。- KookMemberOfflineEvent
love.forte.simbot.component.kook.event.KookMemberOfflineEventKookUserOnlineStatusChangedEvent对于用户离线的事件子类型。- KookMessageBtnClickEvent
love.forte.simbot.component.kook.event.KookMessageBtnClickEvent一个
Card中的按钮被按下的事件。- KookMessageEvent
love.forte.simbot.component.kook.event.KookMessageEventKOOK 中与消息相关的事件, 即当
KEvent.extra类型为TextExtra时所触发的事件。 大部分消息事件都可能由同一个格式衍生为两种类型:私聊与群聊(频道消息), 这由KEvent.channelType所决定。当KEvent.channelType值为KEvent.ChannelType.GROUP时则代表为 [频道消息事件]ChatChannelMessageEvent, 而如果为KEvent.ChannelType.PERSON则代表为 [联系人消息事件]ContactMessageEvent。来源
KOOK 的消息推送同样会推送bot自己所发送的消息。在stdlib模块下, 你可能需要自己手动处理对于消息来自bot自身的情况。 但是在当前组件下,
KookMessageEvent中:来自其他人的事件:
KookChannelMessageEvent,KookContactMessageEvent来自bot自己的事件:
KookBotSelfChannelMessageEvent,KookBotSelfMessageEvent
- KookChannelMessageEvent
love.forte.simbot.component.kook.event.KookChannelMessageEventKook 普通频道消息事件。即来自bot以外的人发送的消息的类型。 此事件只会由 bot 自身以外的人触发。
- KookContactMessageEvent
love.forte.simbot.component.kook.event.KookContactMessageEventKook 普通私聊消息事件。即来自bot以外的人发送的消息的类型。 此事件只会由 bot 以外的人触发。
- KookBotSelfChannelMessageEvent
love.forte.simbot.component.kook.event.KookBotSelfChannelMessageEventKook bot频道消息事件。即来自bot自身发送的消息的类型。 此事件只会由 bot 自身触发。
- KookBotSelfMessageEvent
love.forte.simbot.component.kook.event.KookBotSelfMessageEvent私聊消息事件。 此事件只会由 bot 自身触发,代表bot在私聊会话中发出的消息。
- KookMessagePinEvent
love.forte.simbot.component.kook.event.KookMessagePinEvent与频道消息置顶相关的事件。 涉及的原始事件有:
PinnedMessageEventExtraUnpinnedMessageEventExtra
- KookPinnedMessageEvent
love.forte.simbot.component.kook.event.KookPinnedMessageEvent新消息置顶事件。 代表一个新的消息被设置为了目标频道的置顶消息。
- KookUnpinnedMessageEvent
love.forte.simbot.component.kook.event.KookUnpinnedMessageEvent消息取消置顶事件。代表一个新的消息被设置为了目标频道的置顶消息。
- KookUpdatedMessageEvent
love.forte.simbot.component.kook.event.KookUpdatedMessageEventKOOK 系统事件中与 消息更新 相关的事件的simbot事件基准类。 涉及的 KOOK 原始事件 (的
SystemExtra子类型) 有:UpdatedMessageEventExtraUpdatedPrivateMessageEventExtra
- KookUpdatedChannelMessageEvent
love.forte.simbot.component.kook.event.KookUpdatedChannelMessageEventKOOK中一个频道消息被更新的事件。
- KookUpdatedPrivateMessageEvent
love.forte.simbot.component.kook.event.KookUpdatedPrivateMessageEventKOOK中一个私聊消息被更新的事件。
- KookUserUpdatedEvent
love.forte.simbot.component.kook.event.KookUserUpdatedEventKook 用户信息更新事件。 此事件属于一个
ChangeEvent,ChangeEvent.content为用户变更事件的内容本体, 即sourceBody。 此事件不一定是某个具体频道服务器中的用户, 只要有好友关系即会推送。- UnsupportedKookEvent
love.forte.simbot.component.kook.event.UnsupportedKookEvent所有未提供针对性实现的其他 KOOK 事件。
UnsupportedKookEvent不实现任何其他事件类型, 仅实现 KOOK 组件中的事件父类型KookBotEvent,是一个完全独立的事件类型。UnsupportedKookEvent会将所有 尚未支持 的事件通过此类型进行推送。 如果要监听UnsupportedKookEvent, 你需要谨慎处理其中的一切, 因为UnsupportedKookEvent能够提供的事件会随着当前组件支持的特定事件的增多而减少, 这种减少可能会伴随着版本更新而产生,且可能不会有任何说明或错误提示。 因此你应当首先查看KookBotEvent下是否有所需的已经实现的事件类型,并且不应当过分依赖UnsupportedKookEvent.**
UnknownExtra**[
sourceEvent.extra]Event.extra中(理所应当地)有可能会出现UnknownExtra。UnknownExtra的含义与其他EventExtra的含义略有区别。详细说明可参考UnknownExtra的文档描述。