事件定义列表
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.KookEvent
Kook 组件的事件类型基类。
- KookBotEvent
love.forte.simbot.component.kook.event.KookBotEvent
KookEvent
下实现BotEvent
的基础类型。- KookSystemEvent
love.forte.simbot.component.kook.event.KookSystemEvent
KookBotEvent
的 系统事件 相关的事件基类。- KookBotRegisteredEvent
love.forte.simbot.component.kook.event.KookBotRegisteredEvent
当一个
KookBot
在KookBotManager
中被_注册_时。- KookBotStartedEvent
love.forte.simbot.component.kook.event.KookBotStartedEvent
KookBot
执行start
KookBot.start
之后推送的事件。- KookChannelChangedEvent
love.forte.simbot.component.kook.event.KookChannelChangedEvent
KOOK 系统事件中与 频道变更 相关的事件的simbot事件基准类。 涉及的 KOOK 原始事件 (的
SystemExtra
子类型) 有:AddedChannelEventExtra
UpdatedChannelEventExtra
DeletedChannelEventExtra
- 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.KookCategoryChangedEvent
KOOK 系统事件中与 频道分组变更 相关的事件的simbot事件基准类。 涉及的 KOOK 原始事件 (的
SystemExtra
子类型) 有:AddedChannelEventExtra
UpdatedChannelEventExtra
DeletedChannelEventExtra
- 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.KookDeletedMessageEvent
KOOK 系统事件中与 消息删除 相关的事件的simbot事件基准类。 涉及的 KOOK 原始事件 (的
SystemExtra
子类型) 有:DeletedMessageEventExtra
DeletedPrivateMessageEventExtra
- KookDeletedChannelMessageEvent
love.forte.simbot.component.kook.event.KookDeletedChannelMessageEvent
KOOK中一个频道消息被删除的事件。
- KookDeletedPrivateMessageEvent
love.forte.simbot.component.kook.event.KookDeletedPrivateMessageEvent
KOOK中一个私聊消息被删除的事件。
- KookMemberChangedEvent
love.forte.simbot.component.kook.event.KookMemberChangedEvent
KOOK 的频道成员变更事件。 相关的 KOOK 原始事件类型有:
ExitedChannelEventExtra
JoinedChannelEventExtra
JoinedGuildEventExtra
ExitedGuildEventExtra
UpdatedGuildMemberEventExtra
SelfExitedGuildEventExtra
SelfJoinedGuildEventExtra
其中,SelfExitedGuildEventExtra
和SelfJoinedGuildEventExtra
代表为 BOT 自身作为成员的变动, 因此会额外提供相对应的 [bot成员变动]KookBotMemberChangedEvent
事件类型来进行更精准的事件监听。
相关事件
成员的频道变更事件
KookMemberChannelChangedEvent
事件及其子类型KookMemberExitedChannelEvent
、KookMemberJoinedChannelEvent
代表了一个频道服务器中的某个群成员加入、离开某一个频道(通常为语音频道)的事件。成员的服务器变更事件
KookMemberGuildChangedEvent
事件及其子类型KookMemberJoinedGuildEvent
、KookMemberExitedGuildEvent
代表了一个频道服务器中有新群成员加入、旧成员离开此服务器的事件。成员的信息变更事件
KookMemberUpdatedEvent
事件 代表了一个成员的信息发生了变更的事件。Bot频道服务器事件
KookBotMemberChangedEvent
事件及其子类型KookBotSelfJoinedGuildEvent
、KookBotSelfExitedGuildEvent
代表了当前bot加入新频道服务器、离开旧频道服务器的事件。- KookMemberChannelChangedEvent
love.forte.simbot.component.kook.event.KookMemberChannelChangedEvent
KOOK [成员变更事件]
KookMemberChangedEvent
中与语音频道的进出相关的变更事件。 这类事件代表某人进入、离开某个语音频道 (channel
),而不代表成员进入、离开了当前的频道服务器(guild
)。- KookMemberJoinedChannelEvent
love.forte.simbot.component.kook.event.KookMemberJoinedChannelEvent
KOOK 成员加入(语音频道)事件。
- KookMemberExitedChannelEvent
love.forte.simbot.component.kook.event.KookMemberExitedChannelEvent
KOOK 成员离开(语音频道)事件。
- KookMemberGuildChangedEvent
love.forte.simbot.component.kook.event.KookMemberGuildChangedEvent
KOOK [成员变更事件]
KookMemberChangedEvent
中与频道服务器进出相关的变更事件。 这类事件代表某人加入、离开某个频道服务器。- KookMemberExitedGuildEvent
love.forte.simbot.component.kook.event.KookMemberExitedGuildEvent
KOOK 成员离开(频道)事件。
- KookMemberJoinedGuildEvent
love.forte.simbot.component.kook.event.KookMemberJoinedGuildEvent
KOOK 成员加入(频道)事件。
- KookMemberUpdatedEvent
love.forte.simbot.component.kook.event.KookMemberUpdatedEvent
KOOK 频道成员信息更新事件。
- KookBotMemberChangedEvent
love.forte.simbot.component.kook.event.KookBotMemberChangedEvent
频道成员的变动事件中,变动本体为bot自身时的事件。 对应 KOOK 原始事件的
SelfExitedGuildEventExtra
和SelfJoinedGuildEventExtra
。- KookBotSelfExitedGuildEvent
love.forte.simbot.component.kook.event.KookBotSelfExitedGuildEvent
KOOK BOT自身离开(频道)事件。
- KookBotSelfJoinedGuildEvent
love.forte.simbot.component.kook.event.KookBotSelfJoinedGuildEvent
KOOK BOT自身加入(频道)事件。
- KookUserOnlineStatusChangedEvent
love.forte.simbot.component.kook.event.KookUserOnlineStatusChangedEvent
KOOK 用户在线状态变更相关事件的抽象父类。 涉及到的原始事件有:
GuildMemberOfflineEventExtra
GuildMemberOnlineEventExtra
变化主体
此事件主体是事件中的 [用户ID]
GuildMemberOnlineStatusChangedEventBody.userId
子类型
此事件是密封的,如果你只想监听某人的上线或下线中的其中一种事件,则考虑监听此事件类的具体子类型。
- KookMemberOnlineEvent
love.forte.simbot.component.kook.event.KookMemberOnlineEvent
KookUserOnlineStatusChangedEvent
对于用户上线的事件子类型。- KookMemberOfflineEvent
love.forte.simbot.component.kook.event.KookMemberOfflineEvent
KookUserOnlineStatusChangedEvent
对于用户离线的事件子类型。- KookMessageBtnClickEvent
love.forte.simbot.component.kook.event.KookMessageBtnClickEvent
一个
Card
中的按钮被按下的事件。- KookMessageEvent
love.forte.simbot.component.kook.event.KookMessageEvent
KOOK 中与消息相关的事件, 即当
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.KookChannelMessageEvent
Kook 普通频道消息事件。即来自bot以外的人发送的消息的类型。 此事件只会由 bot 自身以外的人触发。
- KookContactMessageEvent
love.forte.simbot.component.kook.event.KookContactMessageEvent
Kook 普通私聊消息事件。即来自bot以外的人发送的消息的类型。 此事件只会由 bot 以外的人触发。
- KookBotSelfChannelMessageEvent
love.forte.simbot.component.kook.event.KookBotSelfChannelMessageEvent
Kook bot频道消息事件。即来自bot自身发送的消息的类型。 此事件只会由 bot 自身触发。
- KookBotSelfMessageEvent
love.forte.simbot.component.kook.event.KookBotSelfMessageEvent
私聊消息事件。 此事件只会由 bot 自身触发,代表bot在私聊会话中发出的消息。
- KookMessagePinEvent
love.forte.simbot.component.kook.event.KookMessagePinEvent
与频道消息置顶相关的事件。 涉及的原始事件有:
PinnedMessageEventExtra
UnpinnedMessageEventExtra
- KookPinnedMessageEvent
love.forte.simbot.component.kook.event.KookPinnedMessageEvent
新消息置顶事件。 代表一个新的消息被设置为了目标频道的置顶消息。
- KookUnpinnedMessageEvent
love.forte.simbot.component.kook.event.KookUnpinnedMessageEvent
消息取消置顶事件。代表一个新的消息被设置为了目标频道的置顶消息。
- KookUpdatedMessageEvent
love.forte.simbot.component.kook.event.KookUpdatedMessageEvent
KOOK 系统事件中与 消息更新 相关的事件的simbot事件基准类。 涉及的 KOOK 原始事件 (的
SystemExtra
子类型) 有:UpdatedMessageEventExtra
UpdatedPrivateMessageEventExtra
- KookUpdatedChannelMessageEvent
love.forte.simbot.component.kook.event.KookUpdatedChannelMessageEvent
KOOK中一个频道消息被更新的事件。
- KookUpdatedPrivateMessageEvent
love.forte.simbot.component.kook.event.KookUpdatedPrivateMessageEvent
KOOK中一个私聊消息被更新的事件。
- KookUserUpdatedEvent
love.forte.simbot.component.kook.event.KookUserUpdatedEvent
Kook 用户信息更新事件。 此事件属于一个
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
的文档描述。