事件定义列表
公告
站点迁移啦~!
为什么迁移?
作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。
但是缺点也很明显: 太过分散。
组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。
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
的文档描述。