Class SocketInteraction
Represents an Interaction received over the gateway.
public abstract class SocketInteraction : SocketEntity<ulong>, IDiscordInteraction, ISnowflakeEntity, IEntity<ulong>
- Inheritance
-
SocketInteraction
- Implements
- Derived
- Inherited Members
- Extension Methods
Properties
ApplicationId
Gets the ID of the application this interaction is for.
public ulong ApplicationId { get; }
Property Value
Channel
Gets the ISocketMessageChannel this interaction was used in.
public ISocketMessageChannel Channel { get; }
Property Value
Remarks
If the channel isn't cached, the bot scope isn't used, or the bot doesn't have access to it then this property will be null.
ChannelId
Gets the ID of the channel this interaction was executed in.
public ulong? ChannelId { get; }
Property Value
Remarks
This property returns null if the interaction is a REST ping interaction.
ContextType
Gets the context this interaction was created in. null if context type is unknown.
public InteractionContextType? ContextType { get; }
Property Value
CreatedAt
Gets when the snowflake was created.
public DateTimeOffset CreatedAt { get; }
Property Value
- DateTimeOffset
A DateTimeOffset representing when the entity was first created.
Data
Gets the data sent within this interaction.
public IDiscordInteractionData Data { get; }
Property Value
Entitlements
Gets entitlements for the invoking user.
public IReadOnlyCollection<RestEntitlement> Entitlements { get; }
Property Value
GuildId
Gets the ID of the guild this interaction was executed in.
public ulong? GuildId { get; }
Property Value
Remarks
This property returns null if the interaction was not executed in a guild.
GuildLocale
Gets the preferred locale of the guild this interaction was executed in. null if not executed in a guild.
public string GuildLocale { get; }
Property Value
Remarks
Non-community guilds (With no locale setting available) will have en-US as the default value sent by Discord.
HasResponded
Gets whether or not this interaction has been responded to.
public abstract bool HasResponded { get; }
Property Value
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.
IntegrationOwners
Gets which integrations authorized the interaction.
public IReadOnlyDictionary<ApplicationIntegrationType, ulong> IntegrationOwners { get; }
Property Value
InteractionChannel
Gets the channel this interaction was used in.
public IMessageChannel InteractionChannel { get; }
Property Value
Remarks
This property can contain a partial channel object. null if no channel was passed with the interaction.
IsDMInteraction
Gets whether or not this interaction was executed in a dm channel.
public bool IsDMInteraction { get; }
Property Value
IsValidToken
Gets whether or not the token used to respond to this interaction is valid.
public bool IsValidToken { get; }
Property Value
Permissions
Gets the permissions the app or bot has within the channel the interaction was sent from.
public GuildPermissions Permissions { get; }
Property Value
Token
Gets the continuation token for responding to the interaction.
public string Token { get; }
Property Value
Type
Gets the type of this IDiscordInteraction.
public InteractionType Type { get; }
Property Value
User
Gets the SocketUser who triggered this interaction.
public SocketUser User { get; }
Property Value
UserLocale
Gets the preferred locale of the invoking User.
public string UserLocale { get; }
Property Value
Remarks
This property returns null if the interaction is a REST ping interaction.
Version
Gets the version of the interaction, always 1.
public int Version { get; }
Property Value
Methods
DeferAsync(bool, RequestOptions)
Acknowledges this interaction.
public abstract Task DeferAsync(bool ephemeral = false, RequestOptions options = null)
Parameters
ephemeral
booloptions
RequestOptionsThe request options for this async request.
Returns
- Task
A task that represents the asynchronous operation of acknowledging the interaction.
DeleteOriginalResponseAsync(RequestOptions)
Deletes the original response to this interaction.
public Task DeleteOriginalResponseAsync(RequestOptions options = null)
Parameters
options
RequestOptionsThe request options for this async request.
Returns
- Task
A task that represents an asynchronous deletion operation.
FollowupAsync(string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Sends a followup message for this interaction.
public abstract 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
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA poll to send with the message.
Returns
- Task<RestFollowupMessage>
The sent message.
FollowupWithFileAsync(FileAttachment, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Sends a followup message for this interaction.
public Task<RestFollowupMessage> FollowupWithFileAsync(FileAttachment attachment, 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
attachment
FileAttachmentThe attachment containing the file and description.
text
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA 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.
FollowupWithFileAsync(Stream, string, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Sends a followup message for this interaction.
public Task<RestFollowupMessage> FollowupWithFileAsync(Stream fileStream, string fileName, 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
fileStream
StreamThe file to upload.
fileName
stringThe file name of the attachment.
text
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA poll to send with the message.
Returns
- Task<RestFollowupMessage>
The sent message.
FollowupWithFileAsync(string, string, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Sends a followup message for this interaction.
public Task<RestFollowupMessage> FollowupWithFileAsync(string filePath, string fileName = null, 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
filePath
stringThe file to upload.
fileName
stringThe file name of the attachment.
text
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA 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 abstract 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
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA 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.
GetChannelAsync(RequestOptions)
Attempts to get the channel this interaction was executed in.
public ValueTask<IMessageChannel> GetChannelAsync(RequestOptions options = null)
Parameters
options
RequestOptionsThe request options for this async request.
Returns
- ValueTask<IMessageChannel>
A task that represents the asynchronous operation of fetching the channel.
GetOriginalResponseAsync(RequestOptions)
Gets the original response for this interaction.
public Task<RestInteractionMessage> GetOriginalResponseAsync(RequestOptions options = null)
Parameters
options
RequestOptionsThe request options for this async request.
Returns
- Task<RestInteractionMessage>
A RestInteractionMessage that represents the initial response.
ModifyOriginalResponseAsync(Action<MessageProperties>, RequestOptions)
Edits original response for this interaction.
public Task<RestInteractionMessage> ModifyOriginalResponseAsync(Action<MessageProperties> func, RequestOptions options = null)
Parameters
func
Action<MessageProperties>A delegate containing the properties to modify the message with.
options
RequestOptionsThe request options for this async request.
Returns
- Task<RestInteractionMessage>
A RestInteractionMessage that represents the initial response.
RespondAsync(string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Responds to an Interaction with type ChannelMessageWithSource.
public abstract 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
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA poll to send with the message.
Returns
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.
RespondWithFileAsync(FileAttachment, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Responds to this interaction with a file attachment.
public Task RespondWithFileAsync(FileAttachment attachment, 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
attachment
FileAttachmentThe attachment containing the file and description.
text
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA 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.
RespondWithFileAsync(Stream, string, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Responds to this interaction with a file attachment.
public Task RespondWithFileAsync(Stream fileStream, string fileName, 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
fileStream
StreamThe file to upload.
fileName
stringThe file name of the attachment.
text
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA 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.
RespondWithFileAsync(string, string, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Responds to this interaction with a file attachment.
public Task RespondWithFileAsync(string filePath, string fileName = null, 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
filePath
stringThe file to upload.
fileName
stringThe file name of the attachment.
text
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA 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.
RespondWithFilesAsync(IEnumerable<FileAttachment>, string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions, PollProperties)
Responds to this interaction with a collection of file attachments.
public abstract 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
stringThe text of the message to be sent.
embeds
Embed[]A array of embeds to send with this response. Max 10.
isTTS
booltrue if the message should be read out by a text-to-speech reader, otherwise false.
ephemeral
booltrue if the response should be hidden to everyone besides the invoker of the command, otherwise false.
allowedMentions
AllowedMentionsThe allowed mentions for this response.
components
MessageComponentA MessageComponent to be sent with this response.
embed
EmbedA single embed to send with this response. If this is passed alongside an array of embeds, the single embed will be ignored.
options
RequestOptionsThe request options for this response.
poll
PollPropertiesA 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 abstract Task RespondWithModalAsync(Modal modal, RequestOptions options = null)
Parameters
modal
ModalThe Modal to respond with.
options
RequestOptionsThe request options for this async request.
Returns
- Task
A task that represents the asynchronous operation of responding to the interaction.
RespondWithPremiumRequiredAsync(RequestOptions)
Responds to the interaction with an ephemeral message the invoking user, instructing them that whatever they tried to do requires the premium benefits of your app.
public Task RespondWithPremiumRequiredAsync(RequestOptions options = null)
Parameters
options
RequestOptions
Returns
- Task
A task that represents the asynchronous operation of responding to the interaction.