Class KookSocketClient
表示一个基于网关的 KOOK 客户端。
public class KookSocketClient : BaseSocketClient, IKookClient, IDisposable
- Inheritance
-
KookSocketClient
- Implements
- Derived
- Inherited Members
Constructors
KookSocketClient()
初始化一个 KookSocketClient 类的新实例。
public KookSocketClient()
KookSocketClient(KookSocketConfig)
初始化一个 KookSocketClient 类的新实例。
public KookSocketClient(KookSocketConfig config)
Parameters
config
KookSocketConfig用于配置此客户端的配置对象。
Properties
ConnectionState
获取当前连接的状态。
public override ConnectionState ConnectionState { get; }
Property Value
DMChannels
获取在此会话中存在的所有私聊频道。
public IReadOnlyCollection<SocketDMChannel> DMChannels { get; }
Property Value
Remarks
warning
此属性不会包含在当前会话之外创建的私聊会话的私聊频道实体,如果此 Bot 刚刚启动,此属性可能会返回一个空集合。
Guilds
获取当前用户所在的所有服务器。
public override IReadOnlyCollection<SocketGuild> Guilds { get; }
Property Value
Latency
获取到网关服务器的往返延迟估计值(以毫秒为单位)。
public override int Latency { get; protected set; }
Property Value
Remarks
此往返估计值源于心跳包的延迟,不代表诸如发送消息等操作的真实延迟。
Rest
获取一个与此客户端共享状态的仅限于 REST 的客户端。
public override KookSocketRestClient Rest { get; }
Property Value
Methods
DownloadBoostSubscriptionsAsync(IEnumerable<IGuild>?, RequestOptions?)
下载全部或指定服务器的服务器助力信息到缓存中。
public override Task DownloadBoostSubscriptionsAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)
Parameters
guilds
IEnumerable<IGuild>要下载服务器助力信息的服务器。如果为
null
,则下载所有可用的服务器。options
RequestOptions发送请求时要使用的选项。
Returns
Remarks
对于要下载服务器助力信息的服务器,当前用户在该服务器中必须具有 ManageGuild 权限。
DownloadUsersAsync(IEnumerable<IGuild>?, RequestOptions?)
下载全部或指定服务器的用户到缓存中。
public override Task DownloadUsersAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)
Parameters
guilds
IEnumerable<IGuild>要下载用户的服务器。如果为
null
,则下载所有可用的服务器。options
RequestOptions发送请求时要使用的选项。
Returns
- Task
一个表示异步下载操作的任务。
DownloadVoiceStatesAsync(IEnumerable<IGuild>?, RequestOptions?)
下载全部或指定服务器的语音状态到缓存中。
public override Task DownloadVoiceStatesAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)
Parameters
guilds
IEnumerable<IGuild>要下载语音状态的服务器。如果为
null
,则下载所有可用的服务器。options
RequestOptions发送请求时要使用的选项。
Returns
- Task
一个表示异步下载操作的任务。
GetChannel(ulong)
获取一个服务器频道。
public override SocketChannel? GetChannel(ulong id)
Parameters
id
ulong要获取的频道的 ID。
Returns
- SocketChannel
与指定的
id
关联的频道;如果未找到,则返回null
。
GetChannelAsync(ulong, RequestOptions?)
获取一个频道。
public Task<IChannel> GetChannelAsync(ulong id, RequestOptions? options = null)
Parameters
id
ulong频道的 ID。
options
RequestOptions发送请求时要使用的选项。
Returns
GetDMChannel(Guid)
获取一个私聊频道。
public override SocketDMChannel? GetDMChannel(Guid chatCode)
Parameters
chatCode
Guid私聊频道的聊天代码。
Returns
- SocketDMChannel
具有指定聊天代码的私聊频道;如果未找到,则返回
null
。
GetDMChannel(ulong)
获取一个私聊频道。
public override SocketDMChannel? GetDMChannel(ulong userId)
Parameters
userId
ulong私聊频道中另一位用户的 ID。
Returns
- SocketDMChannel
另一位用户具有指定用户 ID 的私聊频道;如果未找到,则返回
null
。
GetDMChannelAsync(Guid, RequestOptions?)
获取一个私聊频道。
public Task<IDMChannel> GetDMChannelAsync(Guid chatCode, RequestOptions? options = null)
Parameters
chatCode
Guid私聊频道的聊天代码。
options
RequestOptions发送请求时要使用的选项。
Returns
- Task<IDMChannel>
一个表示异步获取操作的任务。任务的结果是具有指定聊天代码的私聊频道;若指定聊天代码的私聊频道不存在,则为
null
。
GetDMChannelsAsync(RequestOptions?)
获取当前会话中已创建的所有私聊频道。
public Task<IReadOnlyCollection<IDMChannel>> GetDMChannelsAsync(RequestOptions? options = null)
Parameters
options
RequestOptions发送请求时要使用的选项。
Returns
- Task<IReadOnlyCollection<IDMChannel>>
一个表示异步获取操作的任务。任务的结果是当前会话中已创建的所有私聊频道。
Remarks
warning
此方法不会返回当前会话之外已创建的私聊频道。如果客户端刚刚启动,这可能会返回一个空集合。
GetGuild(ulong)
获取一个服务器。
public override SocketGuild? GetGuild(ulong id)
Parameters
id
ulong要获取的服务器的 ID。
Returns
- SocketGuild
与指定的
id
关联的服务器;如果未找到,则返回null
。
GetUser(string, string)
获取用户。
public override SocketUser? GetUser(string username, string identifyNumber)
Parameters
Returns
- SocketUser
与指定的名称和识别号关联的用户;如果未找到,则返回
null
。
Remarks
此方法可能返回 null
,因为此方法仅会返回网关缓存中存在的用户,如果在当前 Bot
登录会话中,要获取的用户未引发过任何事件,那么该用户实体则不会存在于缓存中。
GetUser(ulong)
获取用户。
public override SocketUser? GetUser(ulong id)
Parameters
id
ulong要获取的用户的 ID。
Returns
- SocketUser
与指定的
id
关联的用户;如果未找到,则返回null
。
Remarks
此方法可能返回 null
,因为此方法仅会返回网关缓存中存在的用户,如果在当前 Bot
登录会话中,要获取的用户未引发过任何事件,那么该用户实体则不会存在于缓存中。
GetUserAsync(ulong, RequestOptions?)
获取一个用户。
public Task<IUser> GetUserAsync(ulong id, RequestOptions? options = null)
Parameters
id
ulong用户的 ID。
options
RequestOptions发送请求时要使用的选项。
Returns
StartAsync()
启动客户端与 KOOK 之间的连接。
public override Task StartAsync()
Returns
- Task
一个表示异步启动操作的任务。
Remarks
当前方法会初始化客户端与 KOOK 之间的连接。
important
此方法会在调用后立即返回,因为它会在另一个线程上初始化连接。
StopAsync()
停止客户端与 KOOK 之间的连接。
public override Task StopAsync()
Returns
- Task
一个表示异步停止操作的任务。
Events
Connected
当连接到 KOOK 网关时引发。
public event Func<Task> Connected
Event Type
Disconnected
当与 KOOK 网关断开连接时引发。
public event Func<Exception, Task> Disconnected
Event Type
LatencyUpdated
当网关延迟已更新时引发。
public event Func<int, int, Task> LatencyUpdated
Event Type
Remarks
Ready
当此 Bot 准备就绪以供用户代码访问时引发。
public event Func<Task> Ready
Event Type
Remarks
此事件引发的时机可由 StartupCacheFetchMode 配置指定。