Show / Hide Table of Contents

# Interface IMessage

Represents a message object.

##### Inherited Members

ISnowflakeEntity.CreatedAt
IEntity<UInt64>.Id
IDeletable.DeleteAsync(RequestOptions)

###### Namespace: Discord

###### Assembly: Discord.Net.Core.dll

##### Syntax

    public interface IMessage : ISnowflakeEntity, IEntity<ulong>, IDeletable

### Properties

| Improve this Doc View Source

#### Activity

Gets the activity associated with a message.

##### Declaration

    MessageActivity Activity { get; }

##### Property Value

Type | Description
--- | ---
MessageActivity | A message's activity, if any is associated.

##### Remarks

Sent with Rich Presence-related chat embeds. This often refers to activity that requires end-user's interaction, such as a Spotify Invite activity.

| Improve this Doc View Source

#### Application

Gets the application associated with a message.

##### Declaration

    MessageApplication Application { get; }

##### Property Value

Type | Description
--- | ---
MessageApplication | A message's application, if any is associated.

##### Remarks

Sent with Rich-Presence-related chat embeds.

| Improve this Doc View Source

#### Attachments

Gets all attachments included in this message.

##### Declaration

    IReadOnlyCollection<IAttachment> Attachments { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<IAttachment> | A read-only collection of attachments.

##### Remarks

This property gets a read-only collection of attachments associated with this message. Depending on the user's end-client, a sent message may contain one or more attachments. For example, mobile users may attach more than one file in their message, while the desktop client only allows for one.

| Improve this Doc View Source

#### Author

Gets the author of this message.

##### Declaration

    IUser Author { get; }

##### Property Value

Type | Description
--- | ---
IUser |

| Improve this Doc View Source

#### Channel

Gets the source channel of the message.

##### Declaration

    IMessageChannel Channel { get; }

##### Property Value

Type | Description
--- | ---
IMessageChannel |

| Improve this Doc View Source

#### Content

Gets the content for this message.

##### Declaration

    string Content { get; }

##### Property Value

Type | Description
--- | ---
System.String | A string that contains the body of the message; note that this field may be empty if there is an embed.

| Improve this Doc View Source

#### EditedTimestamp

Gets the time of this message's last edit.

##### Declaration

    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.

| Improve this Doc View Source

#### Embeds

Gets all embeds included in this message.

##### Declaration

    IReadOnlyCollection<IEmbed> Embeds { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<IEmbed> | A read-only collection of embed objects.

| Improve this Doc View Source

#### IsPinned

Gets the value that indicates whether this message is pinned.

##### Declaration

    bool IsPinned { get; }

##### Property Value

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

| Improve this Doc View Source

#### IsSuppressed

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

##### Declaration

    bool IsSuppressed { get; }

##### Property Value

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

| Improve this Doc View Source

#### IsTTS

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

##### Declaration

    bool IsTTS { get; }

##### Property Value

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

| Improve this Doc View Source

#### MentionedChannelIds

Gets the IDs of channels mentioned in this message.

##### Declaration

    IReadOnlyCollection<ulong> MentionedChannelIds { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<System.UInt64> | A read-only collection of channel IDs.

| Improve this Doc View Source

#### MentionedRoleIds

Gets the IDs of roles mentioned in this message.

##### Declaration

    IReadOnlyCollection<ulong> MentionedRoleIds { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<System.UInt64> | A read-only collection of role IDs.

| Improve this Doc View Source

#### MentionedUserIds

Gets the IDs of users mentioned in this message.

##### Declaration

    IReadOnlyCollection<ulong> MentionedUserIds { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyCollection<System.UInt64> | A read-only collection of user IDs.

| Improve this Doc View Source

#### Reactions

Gets all reactions included in this message.

##### Declaration

    IReadOnlyDictionary<IEmote, ReactionMetadata> Reactions { get; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.IReadOnlyDictionary<IEmote, ReactionMetadata> |

| Improve this Doc View Source

#### Reference

Gets the reference to the original message if it was crossposted.

##### Declaration

    MessageReference Reference { get; }

##### Property Value

Type | Description
--- | ---
MessageReference | A message's reference, if any is associated.

##### Remarks

Sent with Cross-posted messages, meaning they were published from news channels and received by subscriber channels.

| Improve this Doc View Source

#### Source

Gets the source type of this message.

##### Declaration

    MessageSource Source { get; }

##### Property Value

Type | Description
--- | ---
MessageSource |

| Improve this Doc View Source

#### Tags

Gets all tags included in this message's content.

##### Declaration

    IReadOnlyCollection<ITag> Tags { get; }

##### Property Value

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

| Improve this Doc View Source

#### Timestamp

Gets the time this message was sent.

##### Declaration

    DateTimeOffset Timestamp { get; }

##### Property Value

Type | Description
--- | ---
System.DateTimeOffset | Time of when the message was sent.

| Improve this Doc View Source

#### Type

Gets the type of this system message.

##### Declaration

    MessageType Type { get; }

##### Property Value

Type | Description
--- | ---
MessageType |

### Methods

| Improve this Doc View Source

#### AddReactionAsync(IEmote, RequestOptions)

Adds a reaction to this message.

##### Declaration

    Task AddReactionAsync(IEmote emote, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
IEmote | emote | The emoji used to react to this message.
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 adding a reaction to this message.

##### Examples

The following example adds the reaction, `💕`, to the message.

    await msg.AddReactionAsync(new Emoji("\U0001f495"));

##### See Also

IEmote
| Improve this Doc View Source

#### GetReactionUsersAsync(IEmote, Int32, RequestOptions)

Gets all users that reacted to a message with a given emote.

##### Declaration

    IAsyncEnumerable<IReadOnlyCollection<IUser>> GetReactionUsersAsync(IEmote emoji, int limit, RequestOptions options = null)

##### Parameters

Type | Name | Description
--- | --- | ---
IEmote | emoji | The emoji that represents the reaction that you wish to get.
System.Int32 | limit | The number of users to request.
RequestOptions | options | The options to be used when sending the request.

##### Returns

Type | Description
--- | ---
System.Collections.Generic.IAsyncEnumerable<System.Collections.Generic.IReadOnlyCollection<IUser>> | A paged collection containing a read-only collection of users that has reacted to this message. Flattening the paginated response into a collection of users with FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) is required if you wish to access the users.

##### Examples

The following example gets the users that have reacted with the emoji `💕` to the message.

    var emoji = new Emoji("\U0001f495");
    var reactedUsers = await message.GetReactionUsersAsync(emoji, 100).FlattenAsync();

| Improve this Doc View Source

#### RemoveAllReactionsAsync(RequestOptions)

Removes all reactions from this message.

##### Declaration

    Task RemoveAllReactionsAsync(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 removal operation.

| Improve this Doc View Source

#### RemoveReactionAsync(IEmote, IUser, RequestOptions)

Removes a reaction from message.

##### Declaration

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

##### Parameters

Type | Name | Description
--- | --- | ---
IEmote | emote | The emoji used to react to this message.
IUser | user | The user that added the emoji.
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 removing a reaction to this message.

##### Examples

The following example removes the reaction, `💕`, added by the message author from the message.

    await msg.RemoveReactionAsync(new Emoji("\U0001f495"), msg.Author);

##### See Also

IEmote
| Improve this Doc View Source

#### RemoveReactionAsync(IEmote, UInt64, RequestOptions)

Removes a reaction from message.

##### Declaration

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

##### Parameters

Type | Name | Description
--- | --- | ---
IEmote | emote | The emoji used to react to this message.
System.UInt64 | userId | The ID of the user that added the emoji.
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 removing a reaction to this message.

##### Examples

The following example removes the reaction, `💕`, added by the user with ID 84291986575613952 from the message.

    await msg.RemoveReactionAsync(new Emoji("\U0001f495"), 84291986575613952);

##### See Also

IEmote

### Extension Methods

MessageExtensions.GetJumpUrl(IMessage)