Simple Robot | KOOK v4.0.0-beta4 Help

事件定义列表

公告

站点迁移啦~!

为什么迁移?

作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。

但是缺点也很明显: 太过分散。

组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。

      KOOK组件中的事件类型包含两个层面:

      1. API 模块 中,对 KOOK API 中官方定义的事件结构的基本封装与实现。

      2. 核心模块 中,基于 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"

      Card 消息中的 Button 点击事件

      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"

      频道内用户添加 reaction

      DeletedReactionEventExtra

      love.forte.simbot.kook.event.DeletedReactionEventExtra

      事件类型名: "deleted_reaction"

      频道内用户取消 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

      文字消息事件 extra

      ImageEventExtra

      love.forte.simbot.kook.event.ImageEventExtra

      图片消息事件 extra

      VideoEventExtra

      love.forte.simbot.kook.event.VideoEventExtra

      视频消息事件 extra

      KMarkdownEventExtra

      love.forte.simbot.kook.event.KMarkdownEventExtra

      KMarkdown 消息事件 extra

      CardEventExtra

      love.forte.simbot.kook.event.CardEventExtra

      Card 消息事件 extra

      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

      当一个 KookBotKookBotManager 中被_注册_时。

      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 其中, SelfExitedGuildEventExtraSelfJoinedGuildEventExtra 代表为 BOT 自身作为成员的变动, 因此会额外提供相对应的 [bot成员变动] KookBotMemberChangedEvent 事件类型来进行更精准的事件监听。

      相关事件

      成员的频道变更事件

      KookMemberChannelChangedEvent 事件及其子类型 KookMemberExitedChannelEventKookMemberJoinedChannelEvent 代表了一个频道服务器中的某个群成员加入、离开某一个频道(通常为语音频道)的事件。

      成员的服务器变更事件

      KookMemberGuildChangedEvent 事件及其子类型 KookMemberJoinedGuildEventKookMemberExitedGuildEvent 代表了一个频道服务器中有新群成员加入、旧成员离开此服务器的事件。

      成员的信息变更事件

      KookMemberUpdatedEvent 事件 代表了一个成员的信息发生了变更的事件。

      Bot频道服务器事件

      KookBotMemberChangedEvent 事件及其子类型 KookBotSelfJoinedGuildEventKookBotSelfExitedGuildEvent 代表了当前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 原始事件的 SelfExitedGuildEventExtraSelfJoinedGuildEventExtra

      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 中(理所应当地)有可能会出现 UnknownExtraUnknownExtra 的含义与其他 EventExtra 的含义略有区别。详细说明可参考 UnknownExtra 的文档描述。

      Last modified: 07 August 2024