Show / Hide Table of Contents

# Class SocketUserMessage

Represents a WebSocket-based message sent by a user.

##### Inheritance

System.Object
SocketEntity<System.UInt64>
SocketMessage
SocketUserMessage

##### Implements

IUserMessage
IMessage
ISnowflakeEntity
IEntity<System.UInt64>
IDeletable

##### Inherited Members

SocketMessage.Author
SocketMessage.Channel
SocketMessage.Source
SocketMessage.Content
SocketMessage.CreatedAt
SocketMessage.Activity
SocketMessage.Application
SocketMessage.Reference
SocketMessage.Reactions
SocketMessage.Timestamp
SocketMessage.DeleteAsync(RequestOptions)
SocketMessage.ToString()
SocketMessage.IMessage.Author
SocketMessage.IMessage.Channel
SocketMessage.IMessage.Type
SocketMessage.IMessage.Attachments
SocketMessage.IMessage.Embeds
SocketMessage.IMessage.MentionedChannelIds
SocketMessage.IMessage.MentionedRoleIds
SocketMessage.IMessage.MentionedUserIds
SocketMessage.AddReactionAsync(IEmote, RequestOptions)
SocketMessage.RemoveReactionAsync(IEmote, IUser, RequestOptions)
SocketMessage.RemoveReactionAsync(IEmote, UInt64, RequestOptions)
SocketMessage.RemoveAllReactionsAsync(RequestOptions)
SocketMessage.GetReactionUsersAsync(IEmote, Int32, RequestOptions)
SocketEntity<UInt64>.Id
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()

###### Namespace: Discord.WebSocket

###### Assembly: Discord.Net.WebSocket.dll

##### Syntax

    public class SocketUserMessage : SocketMessage, IUserMessage, IMessage, ISnowflakeEntity, IEntity<ulong>, IDeletable

### Properties

| Improve this Doc View Source

#### Attachments

Returns all attachments included in this message.

##### Declaration

    public override IReadOnlyCollection<Attachment> Attachments { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<Attachment> | Collection of attachments.

##### Overrides

SocketMessage.Attachments
| Improve this Doc View Source

#### EditedTimestamp

Gets the time of this message's last edit.

##### Declaration

    public override DateTimeOffset? EditedTimestamp { get; }

##### Property Value

Type | Description
--- | ---
System.Nullable<System.DateTimeOffset> | Time of when the message was last edited; `null` if the message is never edited.

##### Overrides

SocketMessage.EditedTimestamp
| Improve this Doc View Source

#### Embeds

Returns all embeds included in this message.

##### Declaration

    public override IReadOnlyCollection<Embed> Embeds { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<Embed> | Collection of embed objects.

##### Overrides

SocketMessage.Embeds
| Improve this Doc View Source

#### IsPinned

Gets the value that indicates whether this message is pinned.

##### Declaration

    public override bool IsPinned { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if this message was added to its channel's pinned messages; otherwise `false`.

##### Overrides

SocketMessage.IsPinned
| Improve this Doc View Source

#### IsSuppressed

Gets the value that indicates whether or not this message's embeds are suppressed.

##### Declaration

    public override bool IsSuppressed { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if the embeds in this message have been suppressed (made invisible); otherwise `false`.

##### Overrides

SocketMessage.IsSuppressed
| Improve this Doc View Source

#### IsTTS

Gets the value that indicates whether this message was meant to be read-aloud by Discord.

##### Declaration

    public override bool IsTTS { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if this message was sent as a text-to-speech message; otherwise `false`.

##### Overrides

SocketMessage.IsTTS
| Improve this Doc View Source

#### MentionedChannels

Returns the channels mentioned in this message.

##### Declaration

    public override IReadOnlyCollection<SocketGuildChannel> MentionedChannels { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<SocketGuildChannel> | Collection of WebSocket-based guild channels.

##### Overrides

SocketMessage.MentionedChannels
| Improve this Doc View Source

#### MentionedRoles

Returns the roles mentioned in this message.

##### Declaration

    public override IReadOnlyCollection<SocketRole> MentionedRoles { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<SocketRole> | Collection of WebSocket-based roles.

##### Overrides

SocketMessage.MentionedRoles
| Improve this Doc View Source

#### MentionedUsers

Returns the users mentioned in this message.

##### Declaration

    public override IReadOnlyCollection<SocketUser> MentionedUsers { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<SocketUser> | Collection of WebSocket-based users.

##### Overrides

SocketMessage.MentionedUsers
| Improve this Doc View Source

#### Tags

Gets all tags included in this message's content.

##### Declaration

    public override IReadOnlyCollection<ITag> Tags { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<ITag> |

##### Overrides

SocketMessage.Tags

### Methods

| Improve this Doc View Source

#### ModifyAsync(Action<MessageProperties>, RequestOptions)

Modifies this message.

##### Declaration

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

##### Parameters

Type | Name | Description
--- | --- | ---
System.Action<MessageProperties> | func | A delegate containing the properties to modify the message with.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task that represents the asynchronous modification operation.

##### Remarks

This method modifies this message with the specified properties. To see an example of this method and what properties are available, please refer to MessageProperties.

##### Exceptions

Type | Condition
--- | ---
System.InvalidOperationException | Only the author of a message may modify the message.
System.ArgumentOutOfRangeException | Message content is too long, length must be less or equal to MaxMessageSize.

| Improve this Doc View Source

#### ModifySuppressionAsync(Boolean, RequestOptions)

Modifies the suppression of this message.

##### Declaration

    public Task ModifySuppressionAsync(bool suppressEmbeds, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Boolean | suppressEmbeds | Whether or not embeds in this message should be suppressed.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task that represents the asynchronous modification operation.

##### Remarks

This method modifies whether or not embeds in this message are suppressed (hidden).

| Improve this Doc View Source

#### PinAsync(RequestOptions)

Adds this message to its channel's pinned messages.

##### Declaration

    public Task PinAsync(RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task that represents the asynchronous operation for pinning this message.

| Improve this Doc View Source

#### Resolve(TagHandling, TagHandling, TagHandling, TagHandling, TagHandling)

Transforms this message's text into a human-readable form by resolving its tags.

##### Declaration

    public string Resolve(TagHandling userHandling = TagHandling.Name, TagHandling channelHandling = TagHandling.Name, TagHandling roleHandling = TagHandling.Name, TagHandling everyoneHandling = TagHandling.Ignore, TagHandling emojiHandling = TagHandling.Name)

##### Parameters

Type | Name | Description
--- | --- | ---
TagHandling | userHandling | Determines how the user tag should be handled.
TagHandling | channelHandling | Determines how the channel tag should be handled.
TagHandling | roleHandling | Determines how the role tag should be handled.
TagHandling | everyoneHandling | Determines how the @everyone tag should be handled.
TagHandling | emojiHandling | Determines how the emoji tag should be handled.

##### Returns

Type | Description
--- | ---
System.String |

| Improve this Doc View Source

#### Resolve(Int32, TagHandling, TagHandling, TagHandling, TagHandling, TagHandling)

##### Declaration

    public string Resolve(int startIndex, TagHandling userHandling = TagHandling.Name, TagHandling channelHandling = TagHandling.Name, TagHandling roleHandling = TagHandling.Name, TagHandling everyoneHandling = TagHandling.Ignore, TagHandling emojiHandling = TagHandling.Name)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Int32 | startIndex |
TagHandling | userHandling |
TagHandling | channelHandling |
TagHandling | roleHandling |
TagHandling | everyoneHandling |
TagHandling | emojiHandling |

##### Returns

Type | Description
--- | ---
System.String |

| Improve this Doc View Source

#### UnpinAsync(RequestOptions)

Removes this message from its channel's pinned messages.

##### Declaration

    public Task UnpinAsync(RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | A task that represents the asynchronous operation for unpinning this message.

### Implements

IUserMessage
IMessage
ISnowflakeEntity
IEntity<TId>
IDeletable