Interface IRole
- Namespace
- Kook
- Assembly
- Kook.Net.Core.dll
表示一个通用的可授予服务器用户的角色。
public interface IRole : IEntity<uint>, IDeletable, IMentionable, IComparable<IRole>
- Inherited Members
Properties
Color
获取此角色的颜色。
Color Color { get; }
Property Value
Remarks
如果此用户所拥有的最高角色的颜色类型为渐变色,则此属性返回的颜色是渐变色权益失效后的回退颜色。
ColorType
获取此角色的颜色类型。
ColorType ColorType { get; }
Property Value
GradientColor
获取此角色的渐变色。
GradientColor? GradientColor { get; }
Property Value
Remarks
Guild
获取拥有此角色的服务器。
IGuild Guild { get; }
Property Value
IsHoisted
获取拥有此角色的用户是否在用户列表中与普通在线成员分开显示。
bool IsHoisted { get; }
Property Value
IsMentionable
获取是否允许任何人提及此角色。
bool IsMentionable { get; }
Property Value
Name
获取此角色的名称。
string Name { get; }
Property Value
Permissions
获取此角色拥有的权限。
GuildPermissions Permissions { get; }
Property Value
Position
获取此角色在服务器角色列表中的位置。
int Position { get; }
Property Value
Remarks
更小的数值表示更靠近列表顶部的位置。
Type
获取此角色的类型。
RoleType Type { get; }
Property Value
Methods
GetUsersAsync(CacheMode, RequestOptions?)
获取拥有此角色的用户的集合。
IAsyncEnumerable<IReadOnlyCollection<IGuildUser>> GetUsersAsync(CacheMode mode = CacheMode.AllowDownload, RequestOptions? options = null)
Parameters
mode
CacheMode指示当前方法是否应该仅从缓存中获取结果,还是可以通过 API 请求获取数据。
options
RequestOptions发送请求时要使用的选项。
Returns
- IAsyncEnumerable<IReadOnlyCollection<IGuildUser>>
分页的用户集合的异步可枚举对象。
Remarks
important
返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。
warning
请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。
此方法将尝试获取拥有此角色的所有服务器用户。此方法会根据 MaxUsersPerBatch 将请求拆分。换句话说,如果存在 500 个用户拥有此角色,而 MaxUsersPerBatch 的常量为
50
,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。
FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)
方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。
ModifyAsync(Action<RoleProperties>, RequestOptions?)
修改此角色。
Task ModifyAsync(Action<RoleProperties> func, RequestOptions? options = null)
Parameters
func
Action<RoleProperties>一个包含修改角色属性的委托。
options
RequestOptions发送请求时要使用的选项。
Returns
- Task
一个表示异步修改操作的任务。
Remarks
此方法使用指定的属性修改当前角色信息。要查看可用的属性,请参考 RoleProperties。