Table of Contents

Class RestVoiceChannel

Namespace
Kook.Rest
Assembly
Kook.Net.Rest.dll

表示服务器中一个基于 REST 的具有语音聊天能力的频道。

public class RestVoiceChannel : RestTextChannel, IUpdateable, IRestMessageChannel, IVoiceChannel, ITextChannel, INestedChannel, IGuildChannel, IDeletable, IMentionable, IMessageChannel, IRestAudioChannel, IAudioChannel, IChannel, IEntity<ulong>
Inheritance
RestVoiceChannel
Implements
Inherited Members
Extension Methods

Properties

HasPassword

获取此频道是否已被密码锁定。

public bool HasPassword { get; }

Property Value

bool

IsVoiceRegionOverwritten

获取此音频频道的语音区域设置是否覆写了服务器的语音区域设置。

public bool? IsVoiceRegionOverwritten { get; }

Property Value

bool?

ServerUrl

获取语音客户端连接到此语音频道的语音服务器 URL。

public string? ServerUrl { get; }

Property Value

string

UserLimit

获取允许同时连接到此频道的最大用户数。

public int UserLimit { get; }

Property Value

int

一个 int,表示允许同时连接到此频道的最大用户数;如果没有限制,则为 0

VoiceQuality

获取要求此频道中的客户端使用的语音质量。

public VoiceQuality? VoiceQuality { get; }

Property Value

VoiceQuality?

VoiceRegion

获取此音频频道所设置的语音服务器区域。

public string? VoiceRegion { get; }

Property Value

string

Remarks

warning

对于语音频道区域设置功能发布之前创建的语音频道,该属性可能为空。

See Also

Methods

GetConnectedUsersAsync(RequestOptions?)

获取连接到此频道的用户。

public Task<IReadOnlyCollection<IUser>> GetConnectedUsersAsync(RequestOptions? options)

Parameters

options RequestOptions

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

Returns

Task<IReadOnlyCollection<IUser>>

一个表示异步获取操作的任务。任务的结果包含连接到此频道的所有服务器用户。

GetMessagesAsync(IMessage, Direction, int, RequestOptions?)

获取此消息频道中的一些消息。

public override IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage referenceMessage, Direction dir, int limit = 50, RequestOptions? options = null)

Parameters

referenceMessage IMessage

要开始获取消息的参考位置的消息。

dir Direction

要以参考位置为基准,获取消息的方向。

limit int

要获取的消息数量。

options RequestOptions

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

Returns

IAsyncEnumerable<IReadOnlyCollection<RestMessage>>

分页的消息集合的异步可枚举对象。

Remarks

important

返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。


warning

请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。


此方法将尝试获取此频道最新的 limit 条消息。此方法会根据 MaxMessagesPerBatch 将请求拆分。换句话说,如果要获取 500 条消息,而 MaxMessagesPerBatch 的常量为 50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。

Exceptions

NotSupportedException

不支持在语音频道中获取消息。

GetMessagesAsync(Guid, Direction, int, RequestOptions?)

获取此消息频道中的一些消息。

public override IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(Guid referenceMessageId, Direction dir, int limit = 50, RequestOptions? options = null)

Parameters

referenceMessageId Guid

要开始获取消息的参考位置的消息的 ID。

dir Direction

要以参考位置为基准,获取消息的方向。

limit int

要获取的消息数量。

options RequestOptions

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

Returns

IAsyncEnumerable<IReadOnlyCollection<RestMessage>>

分页的消息集合的异步可枚举对象。

Remarks

important

返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。


warning

请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。


此方法将尝试获取此频道最新的 limit 条消息。此方法会根据 MaxMessagesPerBatch 将请求拆分。换句话说,如果要获取 500 条消息,而 MaxMessagesPerBatch 的常量为 50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。

Exceptions

NotSupportedException

不支持在语音频道中获取消息。

GetMessagesAsync(int, RequestOptions?)

获取此消息频道中的最新的一些消息。

public override IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = 50, RequestOptions? options = null)

Parameters

limit int

要获取的消息数量。

options RequestOptions

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

Returns

IAsyncEnumerable<IReadOnlyCollection<RestMessage>>

分页的消息集合的异步可枚举对象。

Remarks

important

返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。


warning

请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。


此方法将尝试获取此频道最新的 limit 条消息。此方法会根据 MaxMessagesPerBatch 将请求拆分。换句话说,如果要获取 500 条消息,而 MaxMessagesPerBatch 的常量为 50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。

Exceptions

NotSupportedException

不支持在语音频道中获取消息。

GetPinnedMessagesAsync(RequestOptions?)

获取此频道中的所有置顶消息。

public override Task<IReadOnlyCollection<RestMessage>> GetPinnedMessagesAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task<IReadOnlyCollection<RestMessage>>

一个表示异步获取操作的任务。任务的结果包含此频道中找到的所有置顶消息。

Exceptions

NotSupportedException

不支持在语音频道中获取消息。

ModifyAsync(Action<ModifyVoiceChannelProperties>, RequestOptions?)

修改此频道有关语音聊天能力的属性。

public Task ModifyAsync(Action<ModifyVoiceChannelProperties> func, RequestOptions? options = null)

Parameters

func Action<ModifyVoiceChannelProperties>

一个包含修改有关语音聊天能力的属性的委托。

options RequestOptions

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

Returns

Task

一个表示异步修改操作的任务。

See Also

UpdateAsync(RequestOptions?)

通过 REST API 获取此实体对象的最新状态,并替换当前对象的属性。

public override Task UpdateAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

一个表示异步更新操作的任务。

Remarks

warning

此方法将从 KOOK REST API 获取最新数据,并替换当前对象的属性,而非使用指定的属性修改 KOOK 服务端的数据。