Class RestVoiceChannel
表示服务器中一个基于 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
IsVoiceRegionOverwritten
获取此音频频道的语音区域设置是否覆写了服务器的语音区域设置。
public bool? IsVoiceRegionOverwritten { get; }
Property Value
- bool?
ServerUrl
获取语音客户端连接到此语音频道的语音服务器 URL。
public string? ServerUrl { get; }
Property Value
UserLimit
获取允许同时连接到此频道的最大用户数。
public int UserLimit { get; }
Property Value
- int
一个
int
,表示允许同时连接到此频道的最大用户数;如果没有限制,则为0
。
VoiceQuality
获取要求此频道中的客户端使用的语音质量。
public VoiceQuality? VoiceQuality { get; }
Property Value
VoiceRegion
获取此音频频道所设置的语音服务器区域。
public string? VoiceRegion { get; }
Property Value
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 服务端的数据。