Table of Contents

Class SocketModal

Namespace
Discord.WebSocket
Assembly
Discord.Net.WebSocket.dll

Represents a user submitted Modal received via GateWay.

public class SocketModal : SocketInteraction, IModalInteraction, IDiscordInteraction, ISnowflakeEntity, IEntity<ulong>
Inheritance
SocketModal
Implements
Inherited Members
Extension Methods

Properties

Data

Gets the data for this Modal interaction.

public SocketModalData Data { get; set; }

Property Value

SocketModalData

HasResponded

Gets whether or not this interaction has been responded to.

public override bool HasResponded { get; }

Property Value

bool

Remarks

This property is locally set -- if you're running multiple bots off the same token then this property won't be in sync with them.

Message

Gets the message the modal originates from.

public SocketUserMessage Message { get; }

Property Value

SocketUserMessage

Remarks

This property is only populated if the modal was created from a message component.

Methods

DeferAsync(bool, RequestOptions)

Acknowledges this interaction.

public override Task DeferAsync(bool ephemeral = false, RequestOptions options = null)

Parameters

ephemeral bool

true to send this message ephemerally, otherwise false.

options RequestOptions

The request options for this async request.

Returns

Task

A task that represents the asynchronous operation of acknowledging the interaction.

Remarks

Acknowledges this interaction with the DeferredUpdateMessage if the modal was created in a response to a message component interaction, DeferredChannelMessageWithSource otherwise.

DeferLoadingAsync(bool, RequestOptions)

Defers an interaction with the response type 5 (DeferredChannelMessageWithSource).

public Task DeferLoadingAsync(bool ephemeral = false, RequestOptions options = null)

Parameters

ephemeral bool

true to defer ephemerally, otherwise false.

options RequestOptions

The options to be used when sending the request.

Returns

Task

A task that represents the asynchronous operation of acknowledging the interaction.

FollowupAsync(string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)

Sends a followup message for this interaction.

public override Task<RestFollowupMessage> FollowupAsync(string text = null, Embed[] embeds = null, bool isTTS = false, bool ephemeral = false, AllowedMentions allowedMentions = null, MessageComponent components = null, Embed embed = null, RequestOptions options = null, PollProperties poll = null)

Parameters

text string

The text of the message to be sent.

embeds Embed[]

A array of embeds to send with this response. Max 10.

isTTS bool

true if the message should be read out by a text-to-speech reader, otherwise false.

ephemeral bool

true if the response should be hidden to everyone besides the invoker of the command, otherwise false.

allowedMentions AllowedMentions

The allowed mentions for this response.

components MessageComponent

A MessageComponent to be sent with this response.

embed Embed

A single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.

options RequestOptions

The request options for this response.

poll PollProperties

A poll to send with the message.

Returns

Task<RestFollowupMessage>

The sent message.

FollowupWithFilesAsync(IEnumerable<FileAttachment>, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)

Sends a followup message for this interaction.

public override Task<RestFollowupMessage> FollowupWithFilesAsync(IEnumerable<FileAttachment> attachments, string text = null, Embed[] embeds = null, bool isTTS = false, bool ephemeral = false, AllowedMentions allowedMentions = null, MessageComponent components = null, Embed embed = null, RequestOptions options = null, PollProperties poll = null)

Parameters

attachments IEnumerable<FileAttachment>

A collection of attachments to upload.

text string

The text of the message to be sent.

embeds Embed[]

A array of embeds to send with this response. Max 10.

isTTS bool

true if the message should be read out by a text-to-speech reader, otherwise false.

ephemeral bool

true if the response should be hidden to everyone besides the invoker of the command, otherwise false.

allowedMentions AllowedMentions

The allowed mentions for this response.

components MessageComponent

A MessageComponent to be sent with this response.

embed Embed

A single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.

options RequestOptions

The request options for this response.

poll PollProperties

A poll to send with the message.

Returns

Task<RestFollowupMessage>

A task that represents an asynchronous send operation for delivering the message. The task result contains the sent message.

RespondAsync(string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)

Responds to an Interaction with type ChannelMessageWithSource.

public override Task RespondAsync(string text = null, Embed[] embeds = null, bool isTTS = false, bool ephemeral = false, AllowedMentions allowedMentions = null, MessageComponent components = null, Embed embed = null, RequestOptions options = null, PollProperties poll = null)

Parameters

text string

The text of the message to be sent.

embeds Embed[]

A array of embeds to send with this response. Max 10.

isTTS bool

true if the message should be read out by a text-to-speech reader, otherwise false.

ephemeral bool

true if the response should be hidden to everyone besides the invoker of the command, otherwise false.

allowedMentions AllowedMentions

The allowed mentions for this response.

components MessageComponent

A MessageComponent to be sent with this response.

embed Embed

A single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.

options RequestOptions

The request options for this response.

poll PollProperties

A poll to send with the message.

Returns

Task

Exceptions

ArgumentOutOfRangeException

Message content is too long, length must be less or equal to MaxMessageSize.

InvalidOperationException

The parameters provided were invalid or the token was invalid.

RespondWithFilesAsync(IEnumerable<FileAttachment>, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)

Responds to this interaction with a collection of file attachments.

public override Task RespondWithFilesAsync(IEnumerable<FileAttachment> attachments, string text = null, Embed[] embeds = null, bool isTTS = false, bool ephemeral = false, AllowedMentions allowedMentions = null, MessageComponent components = null, Embed embed = null, RequestOptions options = null, PollProperties poll = null)

Parameters

attachments IEnumerable<FileAttachment>

A collection of attachments to upload.

text string

The text of the message to be sent.

embeds Embed[]

A array of embeds to send with this response. Max 10.

isTTS bool

true if the message should be read out by a text-to-speech reader, otherwise false.

ephemeral bool

true if the response should be hidden to everyone besides the invoker of the command, otherwise false.

allowedMentions AllowedMentions

The allowed mentions for this response.

components MessageComponent

A MessageComponent to be sent with this response.

embed Embed

A single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.

options RequestOptions

The request options for this response.

poll PollProperties

A poll to send with the message.

Returns

Task

A task that represents an asynchronous send operation for delivering the message. The task result contains the sent message.

RespondWithModalAsync(Modal, RequestOptions)

Responds to this interaction with a Modal.

public override Task RespondWithModalAsync(Modal modal, RequestOptions options = null)

Parameters

modal Modal

The Modal to respond with.

options RequestOptions

The request options for this async request.

Returns

Task

A task that represents the asynchronous operation of responding to the interaction.

UpdateAsync(Action<MessageProperties>, RequestOptions)

Updates the message which this modal originates from with the type UpdateMessage

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

Parameters

func Action<MessageProperties>

A delegate containing the properties to modify the message with.

options RequestOptions

The options to be used when sending the request.

Returns

Task

A task that represents the asynchronous operation of updating the message.

Remarks

This method can be used only if the modal was created from a message component.