Table of Contents

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

Color

Remarks

如果此用户所拥有的最高角色的颜色类型为渐变色,则此属性返回的颜色是渐变色权益失效后的回退颜色。

ColorType

获取此角色的颜色类型。

ColorType ColorType { get; }

Property Value

ColorType

GradientColor

获取此角色的渐变色。

GradientColor? GradientColor { get; }

Property Value

GradientColor?

Remarks

如果此角色的颜色类型 ColorType 不为 Gradient,则此属性会返回 null

Guild

获取拥有此角色的服务器。

IGuild Guild { get; }

Property Value

IGuild

IsHoisted

获取拥有此角色的用户是否在用户列表中与普通在线成员分开显示。

bool IsHoisted { get; }

Property Value

bool

IsMentionable

获取是否允许任何人提及此角色。

bool IsMentionable { get; }

Property Value

bool

Name

获取此角色的名称。

string Name { get; }

Property Value

string

Permissions

获取此角色拥有的权限。

GuildPermissions Permissions { get; }

Property Value

GuildPermissions

Position

获取此角色在服务器角色列表中的位置。

int Position { get; }

Property Value

int

Remarks

更小的数值表示更靠近列表顶部的位置。

Type

获取此角色的类型。

RoleType Type { get; }

Property Value

RoleType

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