Interface Interaction
- All Superinterfaces:
ISnowflake
- All Known Subinterfaces:
ButtonInteraction
,CommandAutoCompleteInteraction
,CommandInteraction
,CommandInteractionPayload
,ComponentInteraction
,ContextInteraction<T>
,EntitySelectInteraction
,IAutoCompleteCallback
,IDeferrableCallback
,IMessageEditCallback
,IModalCallback
,IPremiumRequiredReplyCallback
,IReplyCallback
,MessageContextInteraction
,ModalInteraction
,SelectMenuInteraction<T,
,S> SlashCommandInteraction
,StringSelectInteraction
,UserContextInteraction
- All Known Implementing Classes:
ButtonInteractionEvent
,CommandAutoCompleteInteractionEvent
,EntitySelectInteractionEvent
,GenericAutoCompleteInteractionEvent
,GenericCommandInteractionEvent
,GenericComponentInteractionCreateEvent
,GenericContextInteractionEvent
,GenericInteractionCreateEvent
,GenericSelectMenuInteractionEvent
,MessageContextInteractionEvent
,ModalInteractionEvent
,SlashCommandInteractionEvent
,StringSelectInteractionEvent
,UserContextInteractionEvent
This includes things such as
Slash-Commands
,
Buttons
or Modals
.
To properly handle an interaction you must acknowledge it.
Each interaction has different callbacks which acknowledge the interaction. These are added by the individual I...Callback
interfaces:
IReplyCallback
Which supports direct message replies and deferred message replies viaIReplyCallback.reply(String)
andIReplyCallback.deferReply()
IMessageEditCallback
Which supports direct message edits and deferred message edits (or no-operation) viaIMessageEditCallback.editMessage(String)
andIMessageEditCallback.deferEdit()
IAutoCompleteCallback
Which supports choice suggestions for auto-complete interactions viaIAutoCompleteCallback.replyChoices(Command.Choice...)
IModalCallback
Which supports replying using aModal
viaIModalCallback.replyModal(Modal)
IPremiumRequiredReplyCallback
Which will reply stating that anEntitlement
is required
Once the interaction is acknowledged, you can not reply with these methods again. If the interaction is a deferrable
,
you can use IDeferrableCallback.getHook()
to send additional messages or update the original reply.
When using IReplyCallback.deferReply()
the first message sent to the InteractionHook
will be identical to using InteractionHook.editOriginal(String)
.
You must decide whether your reply will be ephemeral or not before calling IReplyCallback.deferReply()
. So design your code flow with that in mind!
You can only acknowledge an interaction once! Any additional calls to reply/deferReply will result in exceptions.
You can use isAcknowledged()
to check whether the interaction has been acknowledged already.
-
Method Summary
Modifier and TypeMethodDescriptionThe channel this interaction happened in.default String
The ID of the channel this interaction happened in.long
The ID of the channel this interaction happened in.default ChannelType
TheChannelType
for the channel this interaction came from.Returns the list ofentitlements
for the current guild and user.getGuild()
TheGuild
this interaction happened in.default GuildChannel
TheGuildChannel
this interaction happened in.default DiscordLocale
Returns the preferred language of the Guild.getJDA()
Returns theJDA
instance of this interactionTheMember
who caused this interaction.default MessageChannel
TheMessageChannel
this interaction happened in.getToken()
The interaction token used for responding to an interaction.default InteractionType
getType()
TheInteractionType
for this interaction.int
The raw interaction type.getUser()
TheUser
who caused this interaction.Returns the selected language of the invoking user.boolean
Whether this interaction has already been acknowledged.default boolean
Whether this interaction came from aGuild
.Methods inherited from interface net.dv8tion.jda.api.entities.ISnowflake
getId, getIdLong, getTimeCreated
-
Method Details
-
getTypeRaw
int getTypeRaw()The raw interaction type.
It is recommended to usegetType()
instead.- Returns:
- The raw interaction type
-
getType
TheInteractionType
for this interaction.- Returns:
- The
InteractionType
orInteractionType.UNKNOWN
-
getToken
The interaction token used for responding to an interaction.- Returns:
- The interaction token
-
getGuild
TheGuild
this interaction happened in.
This is null in direct messages.- Returns:
- The
Guild
or null
-
isFromGuild
default boolean isFromGuild()- Returns:
- True, if this interaction happened in a guild
-
getChannelType
TheChannelType
for the channel this interaction came from.
IfgetChannel()
is null, this returnsChannelType.UNKNOWN
.- Returns:
- The
ChannelType
-
getUser
TheUser
who caused this interaction.- Returns:
- The
User
-
getMember
TheMember
who caused this interaction.
This is null if the interaction is not from a guild.- Returns:
- The
Member
-
isAcknowledged
boolean isAcknowledged()Whether this interaction has already been acknowledged.
Each interaction can only be acknowledged once.- Returns:
- True, if this interaction has already been acknowledged
-
getChannel
The channel this interaction happened in.- Returns:
- The channel or null if the channel is not provided
-
getChannelIdLong
long getChannelIdLong()The ID of the channel this interaction happened in.
This might be 0 if no channel context is provided in future interaction types.- Returns:
- The channel ID, or 0 if no channel context is provided
-
getChannelId
The ID of the channel this interaction happened in.
This might be null if no channel context is provided in future interaction types.- Returns:
- The channel ID, or null if no channel context is provided
-
getGuildChannel
TheGuildChannel
this interaction happened in.
IfgetChannelType()
is not a guild type, this throwsIllegalStateException
!- Returns:
- The
GuildChannel
- Throws:
IllegalStateException
- IfgetChannel()
is not a guild channel
-
getMessageChannel
TheMessageChannel
this interaction happened in.
IfgetChannelType()
is not a message channel type, this throwsIllegalStateException
!- Returns:
- The
MessageChannel
- Throws:
IllegalStateException
- IfgetChannel()
is not a message channel
-
getUserLocale
Returns the selected language of the invoking user.- Returns:
- The language of the invoking user
-
getGuildLocale
Returns the preferred language of the Guild.
This is identical togetGuild().getLocale()
.- Returns:
- The preferred language of the Guild
- Throws:
IllegalStateException
- If this interaction is not from a guild. (SeeisFromGuild()
)
-
getEntitlements
Returns the list ofentitlements
for the current guild and user.
If this interaction is not from a guild, it will only contain entitlements of the user.- Returns:
- The
List
ofEntitlement
-
getJDA
Returns theJDA
instance of this interaction- Returns:
- the corresponding JDA instance
-