Table of Contents

Class SocketMessage

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

表示一个基于网关的消息。

public abstract class SocketMessage : SocketEntity<Guid>, IMessage, IEntity<Guid>, IDeletable, IUpdateable
Inheritance
SocketMessage
Implements
Derived
Inherited Members
Extension Methods

Properties

Attachments

获取此消息中包含的所有附件。

public virtual IReadOnlyCollection<Attachment> Attachments { get; }

Property Value

IReadOnlyCollection<Attachment>

Remarks

此属性也会包含从卡片中解析出来的附件信息。

Author

获取此消息的作者。

public SocketUser Author { get; }

Property Value

SocketUser

Cards

获取此消息中包含的所有卡片。

public virtual IReadOnlyCollection<ICard> Cards { get; }

Property Value

IReadOnlyCollection<ICard>

Channel

获取此消息的来源频道。

public ISocketMessageChannel Channel { get; }

Property Value

ISocketMessageChannel

CleanContent

获取此消息的纯净内容。

public string CleanContent { get; }

Property Value

string

此属性会对 Content 的内容进行两步操作:

  1. 使用 Resolve(TagHandling, TagHandling, TagHandling, TagHandling, TagHandling) 方法解析所有标签的完整名称;
  2. 使用 StripMarkdown(string) 清理所有 KMarkdown 格式字符。
See Also

Content

获取此消息的内容。

public string Content { get; }

Property Value

string

Remarks

如果消息不是文本消息,则此属性可能为空或包含原始代码。

EditedTimestamp

获取此消息最后一次编辑的时间。

public DateTimeOffset? EditedTimestamp { get; }

Property Value

DateTimeOffset?

Remarks

如果此消息从未被编辑过,则此属性的值为 null

Embeds

获取此消息中包含的所有嵌入式内容。

public virtual IReadOnlyCollection<IEmbed> Embeds { get; }

Property Value

IReadOnlyCollection<IEmbed>

IsPinned

获取此消息是否被置顶。

public virtual bool IsPinned { get; protected set; }

Property Value

bool

MentionedEveryone

获取此消息是否提及了全体成员。

public virtual bool MentionedEveryone { get; }

Property Value

bool

MentionedHere

获取此消息是否提及了在线成员。

public virtual bool MentionedHere { get; }

Property Value

bool

MentionedRoles

获取此消息中提及的所有角色。

public virtual IReadOnlyCollection<SocketRole> MentionedRoles { get; }

Property Value

IReadOnlyCollection<SocketRole>

MentionedUsers

获取此消息中提及的所有用户。

public IReadOnlyCollection<SocketUser> MentionedUsers { get; }

Property Value

IReadOnlyCollection<SocketUser>

Pokes

获取此消息中包含的所有 POKE。

public virtual IReadOnlyCollection<SocketPokeAction> Pokes { get; }

Property Value

IReadOnlyCollection<SocketPokeAction>

RawContent

获取消息的原始可读文本。

public string RawContent { get; }

Property Value

string

Remarks

此属性值仅在从网关接收的消息中可用。

Reactions

获取此消息中包含的所有回应。

public IReadOnlyDictionary<IEmote, ReactionMetadata> Reactions { get; }

Property Value

IReadOnlyDictionary<IEmote, ReactionMetadata>

Source

获取此消息的来源。

public MessageSource Source { get; }

Property Value

MessageSource

Tags

获取此消息中解析出的所有标签。

public virtual IReadOnlyCollection<ITag> Tags { get; }

Property Value

IReadOnlyCollection<ITag>

Timestamp

获取此消息的发送时间。

public DateTimeOffset Timestamp { get; }

Property Value

DateTimeOffset

Type

获取此消息的类型。

public MessageType Type { get; }

Property Value

MessageType

Methods

AddReactionAsync(IEmote, RequestOptions?)

向此消息添加一个回应。

public Task AddReactionAsync(IEmote emote, RequestOptions? options = null)

Parameters

emote IEmote

要用于向此消息添加回应的表情符号。

options RequestOptions

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

Returns

Task

一个表示添加添加异步操作的任务。

DeleteAsync(RequestOptions?)

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

public Task DeleteAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

GetReactionUsersAsync(IEmote, RequestOptions?)

获取所有对消息使用给定表情符号进行回应的用户。

public Task<IReadOnlyCollection<IUser>> GetReactionUsersAsync(IEmote emote, RequestOptions? options = null)

Parameters

emote IEmote

要获取其回应用户的表情符号。

options RequestOptions

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

Returns

Task<IReadOnlyCollection<IUser>>

一个表示异步获取操作的任务。任务的结果包含对消息使用给定表情符号进行回应的所有用户。

RemoveReactionAsync(IEmote, IUser, RequestOptions?)

从此消息中移除一个回应。

public Task RemoveReactionAsync(IEmote emote, IUser user, RequestOptions? options = null)

Parameters

emote IEmote

要从此消息移除的回应的表情符号。

user IUser

要移除其回应的用户。

options RequestOptions

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

Returns

Task

一个表示异步移除操作的任务。

RemoveReactionAsync(IEmote, ulong, RequestOptions?)

从此消息中移除一个回应。

public Task RemoveReactionAsync(IEmote emote, ulong userId, RequestOptions? options = null)

Parameters

emote IEmote

要从此消息移除的回应的表情符号。

userId ulong

要移除其回应的用户的 ID。

options RequestOptions

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

Returns

Task

一个表示异步移除操作的任务。

ToString()

获取此消息的内容。

public override string ToString()

Returns

string

Remarks

如果消息不是文本消息,则此属性可能为空或包含原始代码。

UpdateAsync(RequestOptions?)

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

public Task UpdateAsync(RequestOptions? options = null)

Parameters

options RequestOptions

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

Returns

Task

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

Remarks

warning

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