Table of Contents

Class SocketRole

Namespace
Kook.WebSocket
Assembly
Kook.Net.WebSocket.dll

表示一个基于网关的可授予服务器用户的角色。

public class SocketRole : SocketEntity<uint>, IRole, IEntity<uint>, IDeletable, IMentionable, IComparable<IRole>
Inheritance
SocketRole
Implements
Inherited Members

Properties

Color

获取此角色的颜色。

public Color Color { get; }

Property Value

Color

Remarks

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

ColorType

获取此角色的颜色类型。

public ColorType ColorType { get; }

Property Value

ColorType

GradientColor

获取此角色的渐变色。

public GradientColor? GradientColor { get; }

Property Value

GradientColor?

Remarks

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

Guild

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

public SocketGuild Guild { get; }

Property Value

SocketGuild

IsEveryone

获取此角色是否为 @全体成员 角色。

public bool IsEveryone { get; }

Property Value

bool

IsHoisted

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

public bool IsHoisted { get; }

Property Value

bool

IsMentionable

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

public bool IsMentionable { get; }

Property Value

bool

KMarkdownMention

返回一个用于在 KMarkdown 格式文本中提及此对象的格式化字符串。

public string KMarkdownMention { get; }

Property Value

string

Members

获取拥有此角色的所有用户。

public IEnumerable<SocketGuildUser> Members { get; }

Property Value

IEnumerable<SocketGuildUser>

Remarks

此属性将从缓存中获取拥有此角色的所有用户。如果缓存中不存在用户,则此属性将返回一个空集合。

See Also

Name

获取此角色的名称。

public string Name { get; }

Property Value

string

Permissions

获取此角色拥有的权限。

public GuildPermissions Permissions { get; }

Property Value

GuildPermissions

PlainTextMention

获取一个用于在纯文本格式文本中提及此对象的格式化字符串。

public string PlainTextMention { get; }

Property Value

string

Position

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

public int Position { get; }

Property Value

int

Remarks

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

Type

获取此角色的类型。

public RoleType Type { get; }

Property Value

RoleType

Methods

CompareTo(IRole?)

Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.

public int CompareTo(IRole? role)

Parameters

role IRole

Returns

int

A value that indicates the relative order of the objects being compared. The return value has these meanings:

Value Meaning
Less than zero This instance precedes other in the sort order.
Zero This instance occurs in the same position in the sort order as other.
Greater than zero This instance follows other in the sort order.

DeleteAsync(RequestOptions?)

删除此对实体象及其所有子实体对象。

public Task DeleteAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

GetUsersAsync(RequestOptions?)

获取拥有此角色的用户的集合。

public IAsyncEnumerable<IReadOnlyCollection<SocketGuildUser>> GetUsersAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

IAsyncEnumerable<IReadOnlyCollection<SocketGuildUser>>

分页的用户集合的异步可枚举对象。

Remarks

important

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


warning

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


此方法将尝试获取拥有此角色的所有服务器用户。此方法会根据 MaxUsersPerBatch 将请求拆分。换句话说,如果存在 500 个用户拥有此角色,而 MaxUsersPerBatch 的常量为 50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。
See Also

ModifyAsync(Action<RoleProperties>, RequestOptions?)

修改此角色。

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

Parameters

func Action<RoleProperties>

一个包含修改角色属性的委托。

options RequestOptions

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

Returns

Task

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

Remarks

此方法使用指定的属性修改当前角色信息。要查看可用的属性,请参考 RoleProperties

ToString()

获取此角色的名称。

public override string ToString()

Returns

string