Table of Contents

Class SocketGuildUser

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

表示一个基于网关的服务器用户。

public class SocketGuildUser : SocketUser, IGuildUser, IUser, IEntity<ulong>, IMentionable, IPresence, IVoiceState, IUpdateable
Inheritance
SocketGuildUser
Implements
Inherited Members
Extension Methods

Properties

ActiveAt

获取此用户在该服务器内的最近活跃时间。

public DateTimeOffset? ActiveAt { get; }

Property Value

DateTimeOffset?

Avatar

获取此用户的头像图像的 URL。

public override string Avatar { get; }

Property Value

string

Remarks

如果此用户为 BUFF 会员,且以 BUFF 会员权益设置了头像,则此属性返回的 URL 表示的是 BUFF 专属头像权益时效后的回退头像。

Banner

获取此用户的横幅图像的 URL。

public override string? Banner { get; }

Property Value

string

Remarks

如果此用户不是 BUFF 会员,或未以 BUFF 会员权限设置横幅,则此属性返回 null

BoostSubscriptions

获取此用户在该服务器内的所有服务器助力信息。

public IReadOnlyCollection<BoostSubscriptionMetadata> BoostSubscriptions { get; }

Property Value

IReadOnlyCollection<BoostSubscriptionMetadata>

Remarks

warning

AlwaysDownloadBoostSubscriptionstrue 时,Bot 启动时会自动下载所有服务器的所有助力信息。否则,此属性将为 null。调用 DownloadBoostSubscriptionsAsync(RequestOptions?) 也可以立即下载服务器的所有助力信息,下载完成后,此属性值将被设定。
网关不会发布有关此属性值变更的事件,此属性值可能并不准确。要获取准确的服务器订阅信息,请调用 GetBoostSubscriptionsAsync(RequestOptions?)

BuffAvatar

获取此用户以 BUFF 会员权益设置的头像图像的 URL。

public override string? BuffAvatar { get; }

Property Value

string

Remarks

如果此用户不是 BUFF 会员,或未以 BUFF 会员权限设置头像,则此属性返回 null

Color

获取此用户的显示名称的颜色。

public Color? Color { get; }

Property Value

Color?

Remarks

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

warning

一个角色的颜色可能是纯色或渐变色,参见 ColorType。但由于服务器用户列表 API 及服务器用户详情 API 所返回的用户信息均不包含角色的颜色类型和渐变色信息,因此,如果用户的最高角色的颜色是渐变色, 则此属性的值可能是不正确的。如需获取该用户的准确的显示名称及颜色,请获取此用户的最高角色实体对象,访问其颜色类型及渐变色属性。

if (guildUser.RoleIds.Select(x => guildUser.Guild.GetRole(x)).OfType<IRole>().MinBy(x => x.Position) is { } topRole)
          {
              ColorType colorType = topRole.ColorType;
              GradientColor? gradientColor = topRole.GradientColor;
          }

DisplayName

获取此用户的显示名称。

public string DisplayName { get; }

Property Value

string

Remarks

如果此用户在该服务器内设置了昵称,则此属性返回昵称;否则返回用户名。

Guild

获取此服务器用户所属的服务器。

public SocketGuild Guild { get; }

Property Value

SocketGuild

GuildPermissions

获取此用户在该服务器内的权限。

public GuildPermissions GuildPermissions { get; }

Property Value

GuildPermissions

HasAnnualBuff

获取此用户是否订阅了年度 BUFF 会员。

public override bool? HasAnnualBuff { get; }

Property Value

bool?

Remarks

如果未知此用户是否订阅了年度 BUFF 会员,则此属性返回 null

HasBuff

获取此用户是否订阅了 BUFF 会员。

public override bool? HasBuff { get; }

Property Value

bool?

Remarks

如果未知此用户是否订阅了 BUFF 会员,则此属性返回 null

IdentifyNumberValue

获取此用户识别号的数值形式。

public override ushort IdentifyNumberValue { get; }

Property Value

ushort

IsBanned

获取此用户是否被封禁。

public override bool? IsBanned { get; }

Property Value

bool?

Remarks

如果未知此用户是否被封禁,则此属性返回 null

IsBot

获取此用户是否为 Bot。

public override bool? IsBot { get; }

Property Value

bool?

Remarks

如果未知此用户是否为 Bot,则此属性返回 null

IsDeafened

获取此用户是否被服务器静音。

public bool? IsDeafened { get; }

Property Value

bool?

Remarks

被服务器静音表示无法在语音频道内接收来自其他用户的语音。

IsDenoiseEnabled

获取此用户是否启用了降噪功能。

public override bool? IsDenoiseEnabled { get; }

Property Value

bool?

Remarks

如果未知此用户是否启用了降噪功能,则此属性返回 null

IsMobileVerified

获取此用户的手机号码是否已验证。

public bool? IsMobileVerified { get; }

Property Value

bool?

IsMuted

获取此用户是否被服务器闭麦。

public bool? IsMuted { get; }

Property Value

bool?

Remarks

被服务器闭麦表示无法在语音频道内发言。

IsOwner

获取此用户是否为当前服务器的所有者。

public bool? IsOwner { get; }

Property Value

bool?

JoinedAt

获取此用户加入服务器的时间。

public DateTimeOffset? JoinedAt { get; }

Property Value

DateTimeOffset?

LiveStreamStatus

获取用户的直播状态。

public LiveStreamStatus? LiveStreamStatus { get; }

Property Value

LiveStreamStatus?

Nameplates

获取此用户设置展示的所有铭牌。

public override IReadOnlyCollection<Nameplate> Nameplates { get; }

Property Value

IReadOnlyCollection<Nameplate>

Remarks

用户设置的首个铭牌会展示在该用户聊天消息的用户名的右侧,用户设置的所有铭牌会展示在个人信息面板内的用户名下方。

Nickname

获取此用户在该服务器内的昵称。

public string? Nickname { get; }

Property Value

string

Remarks

如果此用户在该服务器内没有设置昵称,则此属性返回 null

PlainTextMention

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

public string PlainTextMention { get; }

Property Value

string

Roles

获取此用户在该服务器内拥有的所有角色。

public IReadOnlyCollection<SocketRole> Roles { get; }

Property Value

IReadOnlyCollection<SocketRole>

Remarks

warning

由于网关不会发布有关服务器用户角色变更的事件,此属性值可能并不准确。要获取准确的角色信息,请在使用此属性前调用 UpdateAsync(RequestOptions?)

UserTag

获取此用户的标签信息。

public override UserTag? UserTag { get; }

Property Value

UserTag

Remarks

用户的标签会显示在服务器用户列表、私信列表、私信消息页、好友列表、个人信息面板、聊天消息的用户名的右侧。
如果此用户没有标签,或未知此用户的标签信息,则此属性返回 null

Username

获取此用户的用户名。

public override string Username { get; }

Property Value

string

VoiceChannel

获取用户当前所在的语音频道;如果不在任何频道中则为 null

public SocketVoiceChannel? VoiceChannel { get; }

Property Value

SocketVoiceChannel

VoiceState

获取此用户的语音状态。

public SocketVoiceState? VoiceState { get; }

Property Value

SocketVoiceState?

Methods

AddRoleAsync(IRole, RequestOptions?)

在该服务器内授予此用户指定的角色。

public Task AddRoleAsync(IRole role, RequestOptions? options = null)

Parameters

role IRole

要在该服务器内为此用户授予的角色。

options RequestOptions

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

Returns

Task

一个表示异步授予操作的任务。

AddRoleAsync(uint, RequestOptions?)

在该服务器内授予此用户指定的角色。

public Task AddRoleAsync(uint roleId, RequestOptions? options = null)

Parameters

roleId uint

要在该服务器内为此用户授予的角色的 ID。

options RequestOptions

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

Returns

Task

一个表示异步授予操作的任务。

AddRolesAsync(IEnumerable<IRole>, RequestOptions?)

在该服务器内授予此用户指定的一些角色。

public Task AddRolesAsync(IEnumerable<IRole> roles, RequestOptions? options = null)

Parameters

roles IEnumerable<IRole>

要在该服务器内为此用户授予的所有角色。

options RequestOptions

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

Returns

Task

一个表示异步授予操作的任务。

AddRolesAsync(IEnumerable<uint>, RequestOptions?)

在该服务器内授予此用户指定的一些角色。

public Task AddRolesAsync(IEnumerable<uint> roleIds, RequestOptions? options = null)

Parameters

roleIds IEnumerable<uint>

要在该服务器内为此用户授予的所有角色的 ID。

options RequestOptions

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

Returns

Task

一个表示异步授予操作的任务。

DeafenAsync(RequestOptions?)

在该服务器内限制此用户的语音接收。

public Task DeafenAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

一个表示异步静音操作的任务。

Remarks

此操作会使此用户无法在该服务器内的语音频道中接收来自其他用户的语音。

GetBoostSubscriptionsAsync(RequestOptions?)

获取此用户在该服务器内的所有服务器助力包订阅信息。

public Task<IReadOnlyCollection<BoostSubscriptionMetadata>> GetBoostSubscriptionsAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task<IReadOnlyCollection<BoostSubscriptionMetadata>>

一个表示异步获取操作的任务。任务的结果包含此用户在该服务器内的所有服务器助力包订阅信息。

GetConnectedVoiceChannelsAsync(RequestOptions?)

获取此用户当前所连接到的所有语音频道。

public Task<IReadOnlyCollection<SocketVoiceChannel>> GetConnectedVoiceChannelsAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task<IReadOnlyCollection<SocketVoiceChannel>>

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

GetPermissions(IGuildChannel)

获取此用户在指定频道内所拥有的权限。

public ChannelPermissions GetPermissions(IGuildChannel channel)

Parameters

channel IGuildChannel

要获取权限的频道。

Returns

ChannelPermissions

一个表示此用户在指定频道内所拥有的频道权限的权限集。

KickAsync(RequestOptions?)

将此用户从此服务器中踢出。

public Task KickAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

一个表示异步踢出操作的任务。

ModifyNicknameAsync(string?, RequestOptions?)

修改此用户在该服务器内的昵称。

public Task ModifyNicknameAsync(string? name, RequestOptions? options = null)

Parameters

name string

要设置到此用户在该服务器内的新昵称。

options RequestOptions

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

Returns

Task

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

Remarks

此方法使用指定的属性修改当前用户在该服务器内的昵称。
如要清除此用户在该服务器内的昵称,请将 name 设置为 null

warning

如果将昵称设置为与用户名相同,KOOK 也会将该用户在此服务器内的昵称清除,显示名称将跟随用户名,而不是固定为指定的昵称。

MuteAsync(RequestOptions?)

在该服务器内关闭此用户的语音输入。

public Task MuteAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

一个表示异步关闭操作的任务。

Remarks

此操作会使此用户无法在该服务器内的语音频道中发言。

RemoveRoleAsync(IRole, RequestOptions?)

在该服务器内撤销此用户指定的角色。

public Task RemoveRoleAsync(IRole role, RequestOptions? options = null)

Parameters

role IRole

要在该服务器内为此用户撤销的角色。

options RequestOptions

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

Returns

Task

一个表示异步撤销操作的任务。

RemoveRoleAsync(uint, RequestOptions?)

在该服务器内撤销此用户指定的角色。

public Task RemoveRoleAsync(uint roleId, RequestOptions? options = null)

Parameters

roleId uint

要在该服务器内为此用户撤销的角色的 ID。

options RequestOptions

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

Returns

Task

一个表示异步撤销操作的任务。

RemoveRolesAsync(IEnumerable<IRole>, RequestOptions?)

在该服务器内撤销此用户指定的一些角色。

public Task RemoveRolesAsync(IEnumerable<IRole> roles, RequestOptions? options = null)

Parameters

roles IEnumerable<IRole>

要在该服务器内为此用户撤销的所有角色。

options RequestOptions

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

Returns

Task

一个表示异步撤销操作的任务。

RemoveRolesAsync(IEnumerable<uint>, RequestOptions?)

在该服务器内撤销此用户指定的一些角色。

public Task RemoveRolesAsync(IEnumerable<uint> roleIds, RequestOptions? options = null)

Parameters

roleIds IEnumerable<uint>

要在该服务器内为此用户撤销的所有角色的 ID。

options RequestOptions

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

Returns

Task

一个表示异步撤销操作的任务。

UndeafenAsync(RequestOptions?)

在该服务器内恢复此用户的语音接收。

public Task UndeafenAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

一个表示异步恢复操作的任务。

Remarks

此操作会撤销由于服务器静音而导致的无法在语音频道中接收来自其他用户的语音的状态。

UnmuteAsync(RequestOptions?)

在该服务器内恢复此用户的语音输入。

public Task UnmuteAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

一个表示异步恢复操作的任务。

Remarks

此操作会撤销由于服务器闭麦而导致的在语音频道中无法发言状态。

UpdateAsync(RequestOptions?)

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

public Task UpdateAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

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

Remarks

warning

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