Table of Contents

Class BaseSocketClient

Namespace
Kook.WebSocket
Assembly
Kook.Net.WebSocket.dll

表示一个基于网关的客户端的抽象基类。

public abstract class BaseSocketClient : BaseKookClient, IKookClient, IDisposable
Inheritance
BaseSocketClient
Implements
Derived
Inherited Members

Fields

BaseConfig

获取此客户端使用的配置。

protected readonly KookSocketConfig BaseConfig

Field Value

KookSocketConfig

Properties

CurrentUser

获取登录到此客户端的当前用户;如果未登录,则为 null

public virtual SocketSelfUser? CurrentUser { get; protected set; }

Property Value

SocketSelfUser

Guilds

获取当前用户所在的所有服务器。

public abstract IReadOnlyCollection<SocketGuild> Guilds { get; }

Property Value

IReadOnlyCollection<SocketGuild>

Latency

获取到网关服务器的往返延迟估计值(以毫秒为单位)。

public abstract int Latency { get; protected set; }

Property Value

int

Remarks

此往返估计值源于心跳包的延迟,不代表诸如发送消息等操作的真实延迟。

Rest

获取一个与此客户端共享状态的仅限于 REST 的客户端。

public abstract KookSocketRestClient Rest { get; }

Property Value

KookSocketRestClient

Methods

DownloadBoostSubscriptionsAsync(IEnumerable<IGuild>?, RequestOptions?)

下载全部或指定服务器的服务器助力信息到缓存中。

public abstract Task DownloadBoostSubscriptionsAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)

Parameters

guilds IEnumerable<IGuild>

要下载服务器助力信息的服务器。如果为 null,则下载所有可用的服务器。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

Remarks

对于要下载服务器助力信息的服务器,当前用户在该服务器中必须具有 ManageGuild 权限。

DownloadUsersAsync(IEnumerable<IGuild>?, RequestOptions?)

下载全部或指定服务器的用户到缓存中。

public abstract Task DownloadUsersAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)

Parameters

guilds IEnumerable<IGuild>

要下载用户的服务器。如果为 null,则下载所有可用的服务器。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步下载操作的任务。

DownloadVoiceStatesAsync(IEnumerable<IGuild>?, RequestOptions?)

下载全部或指定服务器的语音状态到缓存中。

public abstract Task DownloadVoiceStatesAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)

Parameters

guilds IEnumerable<IGuild>

要下载语音状态的服务器。如果为 null,则下载所有可用的服务器。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步下载操作的任务。

GetChannel(ulong)

获取一个服务器频道。

public abstract SocketChannel? GetChannel(ulong id)

Parameters

id ulong

要获取的频道的 ID。

Returns

SocketChannel

与指定的 id 关联的频道;如果未找到,则返回 null

GetDMChannel(Guid)

获取一个私聊频道。

public abstract SocketDMChannel? GetDMChannel(Guid chatCode)

Parameters

chatCode Guid

私聊频道的聊天代码。

Returns

SocketDMChannel

具有指定聊天代码的私聊频道;如果未找到,则返回 null

GetDMChannel(ulong)

获取一个私聊频道。

public abstract SocketDMChannel? GetDMChannel(ulong userId)

Parameters

userId ulong

私聊频道中另一位用户的 ID。

Returns

SocketDMChannel

另一位用户具有指定用户 ID 的私聊频道;如果未找到,则返回 null

GetGuild(ulong)

获取一个服务器。

public abstract SocketGuild? GetGuild(ulong id)

Parameters

id ulong

要获取的服务器的 ID。

Returns

SocketGuild

与指定的 id 关联的服务器;如果未找到,则返回 null

GetUser(string, string)

获取用户。

public abstract SocketUser? GetUser(string username, string identifyNumber)

Parameters

username string

用户的名称。

identifyNumber string

用户的识别号。

Returns

SocketUser

与指定的名称和识别号关联的用户;如果未找到,则返回 null

Remarks

此方法可能返回 null,因为此方法仅会返回网关缓存中存在的用户,如果在当前 Bot 登录会话中,要获取的用户未引发过任何事件,那么该用户实体则不会存在于缓存中。

GetUser(ulong)

获取用户。

public abstract SocketUser? GetUser(ulong id)

Parameters

id ulong

要获取的用户的 ID。

Returns

SocketUser

与指定的 id 关联的用户;如果未找到,则返回 null

Remarks

此方法可能返回 null,因为此方法仅会返回网关缓存中存在的用户,如果在当前 Bot 登录会话中,要获取的用户未引发过任何事件,那么该用户实体则不会存在于缓存中。

StartAsync()

启动客户端与 KOOK 之间的连接。

public abstract Task StartAsync()

Returns

Task

一个表示异步启动操作的任务。

Remarks

当前方法会初始化客户端与 KOOK 之间的连接。

important

此方法会在调用后立即返回,因为它会在另一个线程上初始化连接。

StopAsync()

停止客户端与 KOOK 之间的连接。

public abstract Task StopAsync()

Returns

Task

一个表示异步停止操作的任务。

Events

ChannelCreated

当服务器频道被创建时引发。

public event Func<SocketChannel, Task> ChannelCreated

Event Type

Func<SocketChannel, Task>

Remarks

事件参数:

  1. SocketChannel 参数是新创建的服务器频道。

ChannelDestroyed

当服务器频道被删除时引发。

public event Func<SocketChannel, Task> ChannelDestroyed

Event Type

Func<SocketChannel, Task>

Remarks

事件参数:

  1. SocketChannel 参数是被删除的服务器频道。

ChannelUpdated

当服务器频道信息被更新时引发。

public event Func<SocketChannel, SocketChannel, Task> ChannelUpdated

Event Type

Func<SocketChannel, SocketChannel, Task>

Remarks

事件参数:

  1. SocketChannel 参数是更新前的服务器频道。
  2. SocketChannel 参数是更新后的服务器频道。

CurrentUserUpdated

当当前用户信息被更新时引发。

public event Func<SocketSelfUser, SocketSelfUser, Task> CurrentUserUpdated

Event Type

Func<SocketSelfUser, SocketSelfUser, Task>

Remarks

事件参数:

  1. SocketSelfUser 参数是当前用户被更新前的状态。
  2. SocketSelfUser 参数是当前用户被更新后的状态。

DirectMessageButtonClicked

当用户点击私聊频道内的卡片消息按钮时引发。

public event Func<string, Cacheable<SocketUser, ulong>, Cacheable<IMessage, Guid>, SocketDMChannel, Task> DirectMessageButtonClicked

Event Type

Func<string, Cacheable<SocketUser, ulong>, Cacheable<IMessage, Guid>, SocketDMChannel, Task>

Remarks

卡片消息中的按钮包含多种点击事件类型,当该类型为 ReturnValue 时,用户点击按钮后会引发此事件。
事件参数:

  1. string 参数是按钮的值。
  2. Cacheable<TEntity, TId> 参数是点击按钮的可缓存用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  3. Cacheable<TEntity, TId> 参数是点击按钮所在的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被更新后的状态;否则,包含 Guid 消息 ID,以供按需下载实体。
  4. SocketDMChannel 参数是点击按钮所在的私聊频道。

DirectMessageDeleted

当私聊频道内的消息被删除时引发。

public event Func<Cacheable<IMessage, Guid>, Cacheable<SocketUser, ulong>, Cacheable<SocketDMChannel, Guid>, Task> DirectMessageDeleted

Event Type

Func<Cacheable<IMessage, Guid>, Cacheable<SocketUser, ulong>, Cacheable<SocketDMChannel, Guid>, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是被删除的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 被删除的消息;否则,包含 Guid 消息 ID。
    important

    消息被删除后无法通过 DownloadAsync() 方法下载。

  2. Cacheable<TEntity, TId> 参数是该消息的作者的可缓存用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  3. SocketTextChannel 参数是消息被删除前所在的服务器频道。

DirectMessageReceived

当接收到新的私聊消息时引发。

public event Func<SocketMessage, SocketUser, SocketDMChannel, Task> DirectMessageReceived

Event Type

Func<SocketMessage, SocketUser, SocketDMChannel, Task>

Remarks

事件参数:

  1. SocketMessage 参数是新接收到的私聊消息。
  2. SocketUser 参数是发送消息的用户。
  3. SocketDMChannel 参数是消息所在的私聊频道。

DirectMessageUpdated

当私聊频道内的消息被更新时引发。

public event Func<Cacheable<IMessage, Guid>, Cacheable<IMessage, Guid>, Cacheable<SocketUser, ulong>, Cacheable<SocketDMChannel, Guid>, Task> DirectMessageUpdated

Event Type

Func<Cacheable<IMessage, Guid>, Cacheable<IMessage, Guid>, Cacheable<SocketUser, ulong>, Cacheable<SocketDMChannel, Guid>, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是可缓存消息被更新前的状态。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被更新前的状态;否则,包含 Guid 消息 ID。
    important

    消息被更新前的状态无法通过 DownloadAsync() 方法下载。

  2. Cacheable<TEntity, TId> 参数是可缓存消息被更新后的状态。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被更新后的状态;否则,包含 Guid 消息 ID,以供按需下载实体。
  3. Cacheable<TEntity, TId> 参数是该消息的作者的可缓存用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  4. SocketDMChannel 参数是消息所在的私聊频道。

DirectReactionAdded

当私聊频道内的消息上被添加了新的回应时引发。

public event Func<Cacheable<IMessage, Guid>, Cacheable<SocketDMChannel, Guid>, Cacheable<SocketUser, ulong>, SocketReaction, Task> DirectReactionAdded

Event Type

Func<Cacheable<IMessage, Guid>, Cacheable<SocketDMChannel, Guid>, Cacheable<SocketUser, ulong>, SocketReaction, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是被添加了回应的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息;否则,包含 Guid 消息 ID,以供按需下载实体。
  2. Cacheable<TEntity, TId> 参数是消息所在的可缓存私聊频道。如果缓存中存在此私聊频道实体,那么该结构内包含该 SocketDMChannel 私聊频道;否则,包含 Guid 私聊频道聊天代码,以供按需下载实体。
  3. Cacheable<TEntity, TId> 参数是添加了此回应的可缓存用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  4. SocketReaction 参数是被添加的回应。

DirectReactionRemoved

当私聊频道内的消息上存在的回应被用户移除时引发。

public event Func<Cacheable<IMessage, Guid>, Cacheable<SocketDMChannel, Guid>, Cacheable<SocketUser, ulong>, SocketReaction, Task> DirectReactionRemoved

Event Type

Func<Cacheable<IMessage, Guid>, Cacheable<SocketDMChannel, Guid>, Cacheable<SocketUser, ulong>, SocketReaction, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是被移除了回应的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息;否则,包含 Guid 消息 ID,以供按需下载实体。
  2. Cacheable<TEntity, TId> 参数是消息所在的可缓存私聊频道。如果缓存中存在此私聊频道实体,那么该结构内包含该 SocketDMChannel 私聊频道;否则,包含 Guid 私聊频道聊天代码,以供按需下载实体。
  3. Cacheable<TEntity, TId> 参数是移除了此回应的可缓存用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  4. SocketReaction 参数是被移除的回应。

EmoteCreated

当服务器内的自定义表情被创建时引发。

public event Func<GuildEmote, SocketGuild, Task> EmoteCreated

Event Type

Func<GuildEmote, SocketGuild, Task>

Remarks

事件参数:

  1. GuildEmote 参数是被创建的自定义表情。
  2. SocketGuild 参数是自定义表情所在的服务器。

EmoteDeleted

当服务器内的自定义表情被删除时引发。

public event Func<GuildEmote, SocketGuild, Task> EmoteDeleted

Event Type

Func<GuildEmote, SocketGuild, Task>

Remarks

事件参数:

  1. GuildEmote 参数是被删除的自定义表情。
  2. SocketGuild 参数是自定义表情被删除前所在的服务器。

EmoteUpdated

当服务器内的自定义表情被更新时引发。

public event Func<GuildEmote?, GuildEmote, SocketGuild, Task> EmoteUpdated

Event Type

Func<GuildEmote, GuildEmote, SocketGuild, Task>

Remarks

事件参数:

  1. GuildEmote 参数是自定义表情被更新前的状态,如果缓存中不存在此自定义表情实体,则为 null
  2. GuildEmote 参数是自定义表情被更新后的状态。
  3. SocketGuild 参数是自定义表情所在的服务器。

GuildAvailable

当服务器状态变更为可用时引发。

public event Func<SocketGuild, Task> GuildAvailable

Event Type

Func<SocketGuild, Task>

Remarks

服务器状态变更为可用,表示此服务器实体已完整缓存基础数据,并与网关同步。
缓存基础数据包括服务器基本信息、频道、角色、频道权限重写、当前用户在服务器内的昵称。
事件参数:

  1. SocketGuild 参数是服务器状态变更为可用的服务器。

GuildMemberOffline

当服务器用户的在线状态变更为离线时引发。

public event Func<IReadOnlyCollection<Cacheable<SocketGuildUser, ulong>>, DateTimeOffset, Task> GuildMemberOffline

Event Type

Func<IReadOnlyCollection<Cacheable<SocketGuildUser, ulong>>, DateTimeOffset, Task>

Remarks

事件参数:

  1. IReadOnlyCollection<T> 参数是所有此批次在线状态变更为离线的服务器用户。每个服务器用户都由一个 Cacheable<TEntity, TId> 表示。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  2. DateTimeOffset 参数是在线状态变更为离线的时间。

GuildMemberOnline

当服务器用户的在线状态变更为在线时引发。

public event Func<IReadOnlyCollection<Cacheable<SocketGuildUser, ulong>>, DateTimeOffset, Task> GuildMemberOnline

Event Type

Func<IReadOnlyCollection<Cacheable<SocketGuildUser, ulong>>, DateTimeOffset, Task>

Remarks

事件参数:

  1. IReadOnlyCollection<T> 参数是所有此批次在线状态变更为在线的服务器用户。每个服务器用户都由一个 Cacheable<TEntity, TId> 表示。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  2. DateTimeOffset 参数是在线状态变更为在线的时间。

GuildMemberUpdated

当服务器用户信息被更新时引发。

public event Func<Cacheable<SocketGuildUser, ulong>, Cacheable<SocketGuildUser, ulong>, Task> GuildMemberUpdated

Event Type

Func<Cacheable<SocketGuildUser, ulong>, Cacheable<SocketGuildUser, ulong>, Task>

Remarks

事件参数:

  1. SocketGuildUser 参数是可缓存服务器用户被更新前的状态。如果缓存中存在此用户实体,那么该结构内包含该 SocketGuildUser 服务器用户被更新前的状态;否则,包含 ulong 用户 ID。
    important

    服务器用户被更新前的状态无法通过 DownloadAsync() 方法下载。

  2. Cacheable<TEntity, TId> 参数是可缓存服务器用户被更新后的状态。如果缓存中存在此用户实体,那么该结构内包含该 SocketGuildUser 用户被更新后的状态;否则,包含 ulong 用户 ID,以供按需下载实体。

GuildUnavailable

当服务器状态变更为不可用时引发。

public event Func<SocketGuild, Task> GuildUnavailable

Event Type

Func<SocketGuild, Task>

Remarks

服务器状态变更为不可用,表示此服务器实体丢失与网关的同步,所缓存的数据不可靠,这通常发生在服务器被删除、当前用户离开服务器、网关连接断开等情况。
事件参数:

  1. SocketGuild 参数是服务器状态变更为不可用的服务器。

GuildUpdated

当服务器信息被更新时引发。

public event Func<SocketGuild, SocketGuild, Task> GuildUpdated

Event Type

Func<SocketGuild, SocketGuild, Task>

Remarks

事件参数:

  1. SocketGuild 参数是服务器信息被更新前的状态。
  2. SocketGuild 参数是服务器信息被更新后的状态。

JoinedGuild

当当前用户新加入服务器时引发。

public event Func<SocketGuild, Task> JoinedGuild

Event Type

Func<SocketGuild, Task>

Remarks

事件参数:

  1. SocketGuild 参数是当前用户新加入的服务器。

LeftGuild

当当前用户离开服务器时引发。

public event Func<SocketGuild, Task> LeftGuild

Event Type

Func<SocketGuild, Task>

Remarks

事件参数:

  1. SocketGuild 参数是当前用户离开的服务器。

MessageButtonClicked

当用户点击服务器频道内的卡片消息按钮时引发。

public event Func<string, Cacheable<SocketGuildUser, ulong>, Cacheable<IMessage, Guid>, SocketTextChannel, Task> MessageButtonClicked

Event Type

Func<string, Cacheable<SocketGuildUser, ulong>, Cacheable<IMessage, Guid>, SocketTextChannel, Task>

Remarks

卡片消息中的按钮包含多种点击事件类型,当该类型为 ReturnValue 时,用户点击按钮后会引发此事件。
事件参数:

  1. string 参数是按钮的值。
  2. Cacheable<TEntity, TId> 参数是点击按钮的可缓存服务器用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  3. Cacheable<TEntity, TId> 参数是点击按钮所在的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被更新后的状态;否则,包含 Guid 消息 ID,以供按需下载实体。
  4. SocketTextChannel 参数是点击按钮所在的服务器频道。

MessageDeleted

当服务器内的消息被删除时引发。

public event Func<Cacheable<IMessage, Guid>, SocketTextChannel, Task> MessageDeleted

Event Type

Func<Cacheable<IMessage, Guid>, SocketTextChannel, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是被删除的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 被删除的消息;否则,包含 Guid 消息 ID。
    important

    消息被删除后无法通过 DownloadAsync() 方法下载。

  2. SocketTextChannel 参数是消息被删除前所在的服务器频道。

MessagePinned

当服务器内的消息被置顶时引发。

public event Func<Cacheable<IMessage, Guid>, Cacheable<IMessage, Guid>, SocketTextChannel, Cacheable<SocketGuildUser, ulong>, Task> MessagePinned

Event Type

Func<Cacheable<IMessage, Guid>, Cacheable<IMessage, Guid>, SocketTextChannel, Cacheable<SocketGuildUser, ulong>, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是可缓存消息被置顶前的状态。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被置顶前的状态;否则,包含 Guid 消息 ID。
    important

    消息被置顶前的状态无法通过 DownloadAsync() 方法下载。

  2. Cacheable<TEntity, TId> 参数是可缓存消息被置顶后的状态。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被置顶后的状态;否则,包含 Guid 消息 ID,以供按需下载实体。
  3. SocketTextChannel 参数是消息所在的服务器频道。
  4. Cacheable<TEntity, TId> 参数是置顶了该消息的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。

MessageReceived

当接收到新的服务器消息时引发。

public event Func<SocketMessage, SocketGuildUser, SocketTextChannel, Task> MessageReceived

Event Type

Func<SocketMessage, SocketGuildUser, SocketTextChannel, Task>

Remarks

事件参数:

  1. SocketMessage 参数是新接收到的服务器消息。
  2. SocketGuildUser 参数是发送消息的服务器用户。
  3. SocketTextChannel 参数是消息所在的服务器频道。

MessageUnpinned

当服务器内的消息被取消置顶时引发。

public event Func<Cacheable<IMessage, Guid>, Cacheable<IMessage, Guid>, SocketTextChannel, Cacheable<SocketGuildUser, ulong>, Task> MessageUnpinned

Event Type

Func<Cacheable<IMessage, Guid>, Cacheable<IMessage, Guid>, SocketTextChannel, Cacheable<SocketGuildUser, ulong>, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是可缓存消息被取消置顶前的状态。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被取消置顶前的状态;否则,包含 Guid 消息 ID。
    important

    消息被取消置顶前的状态无法通过 DownloadAsync() 方法下载。

  2. Cacheable<TEntity, TId> 参数是可缓存消息被取消置顶后的状态。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被取消置顶后的状态;否则,包含 Guid 消息 ID,以供按需下载实体。
  3. SocketTextChannel 参数是消息所在的服务器频道。
  4. Cacheable<TEntity, TId> 参数是取消置顶了该消息的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。

MessageUpdated

当服务器内的消息被更新时引发。

public event Func<Cacheable<IMessage, Guid>, Cacheable<IMessage, Guid>, SocketTextChannel, Task> MessageUpdated

Event Type

Func<Cacheable<IMessage, Guid>, Cacheable<IMessage, Guid>, SocketTextChannel, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是可缓存消息被更新前的状态。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被更新前的状态;否则,包含 Guid 消息 ID。
    important

    消息被更新前的状态无法通过 DownloadAsync() 方法下载。

  2. Cacheable<TEntity, TId> 参数是可缓存消息被更新后的状态。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息被更新后的状态;否则,包含 Guid 消息 ID,以供按需下载实体。
  3. SocketTextChannel 参数是消息所在的服务器频道。

ReactionAdded

当服务器内的消息上被添加了新的回应时引发。

public event Func<Cacheable<IMessage, Guid>, SocketTextChannel, Cacheable<SocketGuildUser, ulong>, SocketReaction, Task> ReactionAdded

Event Type

Func<Cacheable<IMessage, Guid>, SocketTextChannel, Cacheable<SocketGuildUser, ulong>, SocketReaction, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是被添加了回应的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息;否则,包含 Guid 消息 ID,以供按需下载实体。
  2. SocketChannel 参数是消息所在的频道。
  3. Cacheable<TEntity, TId> 参数是添加了此回应的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  4. SocketReaction 参数是被添加的回应。

ReactionRemoved

当服务器内的消息上存在的回应被用户移除时引发。

public event Func<Cacheable<IMessage, Guid>, SocketTextChannel, Cacheable<SocketGuildUser, ulong>, SocketReaction, Task> ReactionRemoved

Event Type

Func<Cacheable<IMessage, Guid>, SocketTextChannel, Cacheable<SocketGuildUser, ulong>, SocketReaction, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是被移除了回应的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IMessage 消息;否则,包含 Guid 消息 ID,以供按需下载实体。
  2. SocketChannel 参数是消息所在的频道。
  3. Cacheable<TEntity, TId> 参数是移除了此回应的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  4. SocketReaction 参数是被移除的回应。

RoleCreated

当服务器内的角色被创建时引发。

public event Func<SocketRole, Task> RoleCreated

Event Type

Func<SocketRole, Task>

Remarks

事件参数:

  1. SocketRole 参数是被创建的角色。

RoleDeleted

当服务器内的角色被删除时引发。

public event Func<SocketRole, Task> RoleDeleted

Event Type

Func<SocketRole, Task>

Remarks

事件参数:

  1. SocketRole 参数是被删除的角色。

RoleUpdated

当服务器内的角色被更新时引发。

public event Func<SocketRole, SocketRole, Task> RoleUpdated

Event Type

Func<SocketRole, SocketRole, Task>

Remarks

事件参数:

  1. SocketRole 参数是角色被更新前的状态。
  2. SocketRole 参数是角色被更新后的状态。

UserBanned

当用户被服务器封禁时引发。

public event Func<IReadOnlyCollection<Cacheable<SocketUser, ulong>>, Cacheable<SocketGuildUser, ulong>, SocketGuild, string?, Task> UserBanned

Event Type

Func<IReadOnlyCollection<Cacheable<SocketUser, ulong>>, Cacheable<SocketGuildUser, ulong>, SocketGuild, string, Task>

Remarks

事件参数:

  1. IReadOnlyCollection<T> 参数是所有此批次被封禁的用户。每个用户都由一个 Cacheable<TEntity, TId> 表示。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  2. Cacheable<TEntity, TId> 参数是操作此批次封禁的可缓存服务器用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  3. SocketGuild 参数是封禁操作所在的服务器。
  4. string 参数是封禁的原因。

UserConnected

当服务器用户连接到语音频道时引发。

public event Func<Cacheable<SocketGuildUser, ulong>, SocketVoiceChannel, DateTimeOffset, Task> UserConnected

Event Type

Func<Cacheable<SocketGuildUser, ulong>, SocketVoiceChannel, DateTimeOffset, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是连接到语音频道的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  2. SocketVoiceChannel 参数是用户连接到的语音频道。
  3. DateTimeOffset 参数是用户连接到语音频道的时间。

UserDisconnected

当服务器用户从语音频道断开连接时引发。

public event Func<Cacheable<SocketGuildUser, ulong>, SocketVoiceChannel, DateTimeOffset, Task> UserDisconnected

Event Type

Func<Cacheable<SocketGuildUser, ulong>, SocketVoiceChannel, DateTimeOffset, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是从语音频道断开连接的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  2. SocketVoiceChannel 参数是用户断开连接的语音频道。
  3. DateTimeOffset 参数是用户断开连接的时间。

UserJoined

当用户加入服务器时引发。

public event Func<Cacheable<SocketGuildUser, ulong>, DateTimeOffset, Task> UserJoined

Event Type

Func<Cacheable<SocketGuildUser, ulong>, DateTimeOffset, Task>

Remarks

warning

有消息称,那么此事件不会在其成员数量超过 2000 人的服务器内被触发。


事件参数:
  1. Cacheable<TEntity, TId> 参数是加入服务器的可缓存服务器用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  2. DateTimeOffset 参数是用户加入服务器的时间。

UserLeft

当用户离开服务器时引发。

public event Func<SocketGuild, Cacheable<SocketUser, ulong>, DateTimeOffset, Task> UserLeft

Event Type

Func<SocketGuild, Cacheable<SocketUser, ulong>, DateTimeOffset, Task>

Remarks

warning

有消息称,那么此事件不会在其成员数量超过 2000 人的服务器内被触发。


事件参数:
  1. SocketGuild 参数是用户离开的服务器。
  2. Cacheable<TEntity, TId> 参数是离开服务器的可缓存用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  3. DateTimeOffset 参数是用户加入服务器的时间。

UserUnbanned

当用户在服务器内的封禁被解除时引发。

public event Func<IReadOnlyCollection<Cacheable<SocketUser, ulong>>, Cacheable<SocketGuildUser, ulong>, SocketGuild, Task> UserUnbanned

Event Type

Func<IReadOnlyCollection<Cacheable<SocketUser, ulong>>, Cacheable<SocketGuildUser, ulong>, SocketGuild, Task>

Remarks

事件参数:

  1. IReadOnlyCollection<T> 参数是所有此批次被解除封禁的用户。每个用户都由一个 Cacheable<TEntity, TId> 表示。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  2. Cacheable<TEntity, TId> 参数是操作此批次解除封禁的可缓存服务器用户。如果缓存中存在此用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  3. SocketGuild 参数是解除封禁操作所在的服务器。

UserUpdated

当用户信息被更新时引发。

public event Func<Cacheable<SocketUser, ulong>, Cacheable<SocketUser, ulong>, Task> UserUpdated

Event Type

Func<Cacheable<SocketUser, ulong>, Cacheable<SocketUser, ulong>, Task>

Remarks

当用户的用户名或头像变更,且该用户与当前用户存在聊天会话或互为好友时,此事件会被引发。
事件参数:

  1. Cacheable<TEntity, TId> 参数是可缓存用户被更新前的状态。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户被更新前的状态;否则,包含 ulong 用户 ID。
    important

    用户被更新前的状态无法通过 DownloadAsync() 方法下载。

  2. Cacheable<TEntity, TId> 参数是可缓存用户被更新后的状态。如果缓存中存在此用户实体,那么该结构内包含该 SocketUser 用户被更新后的状态;否则,包含 ulong 用户 ID,以供按需下载实体。

UserVoiceStateUpdated

当服务器用户的语音状态发生变化时引发。

public event Func<Cacheable<SocketGuildUser, ulong>, SocketVoiceState, SocketVoiceState, Task> UserVoiceStateUpdated

Event Type

Func<Cacheable<SocketGuildUser, ulong>, SocketVoiceState, SocketVoiceState, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是其语音状态发生变化的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketGuildUser 服务器用户;否则,包含 ulong 用户 ID,以供按需下载实体。
  2. SocketVoiceState 参数是用户语音状态变更前的状态。
  3. SocketVoiceState 参数是用户语音状态变更后的状态。