Class OptionMapping
- java.lang.Object
-
- net.dv8tion.jda.api.interactions.commands.OptionMapping
-
public class OptionMapping extends Object
Name/Value pair for aCommandInteraction
option.Since values for command options are a union-type you can use this class to coerce the values to the desired target type.
You can usegetType()
to do dynamic handling as well. Each getter documents the conditions and coercion rules for the specific types.
-
-
Constructor Summary
Constructors Constructor Description OptionMapping(DataObject data, gnu.trove.map.TLongObjectMap<Object> resolved)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
Message.Attachment
getAsAttachment()
The file uploaded for this option.AudioChannel
getAsAudioChannel()
The resolvedAudioChannel
for this option value.boolean
getAsBoolean()
The boolean value.double
getAsDouble()
The double value for this option.GuildChannel
getAsGuildChannel()
The resolvedGuildChannel
for this option value.long
getAsLong()
The long value for this option.Member
getAsMember()
The resolvedMember
for this option value.IMentionable
getAsMentionable()
The resolvedIMentionable
instance for this option value.GuildMessageChannel
getAsMessageChannel()
The resolvedGuildMessageChannel
for this option value.NewsChannel
getAsNewsChannel()
The resolvedNewsChannel
for this option value.Role
getAsRole()
The resolvedRole
for this option value.StageChannel
getAsStageChannel()
The resolvedStageChannel
for this option value.String
getAsString()
The String representation of this option value.TextChannel
getAsTextChannel()
The resolvedTextChannel
for this option value.ThreadChannel
getAsThreadChannel()
The resolvedThreadChannel
for this option value.User
getAsUser()
The resolvedUser
for this option value.VoiceChannel
getAsVoiceChannel()
The resolvedVoiceChannel
for this option value.ChannelType
getChannelType()
TheChannelType
for the resolved channel.List<GuildChannel>
getMentionedChannels()
ResolvedGuildChannel
mentions for aSTRING
option.List<Member>
getMentionedMembers()
List<Role>
getMentionedRoles()
List<User>
getMentionedUsers()
List<IMentionable>
getMentions()
String
getName()
The name of this option.OptionType
getType()
TheOptionType
of this option.int
hashCode()
String
toString()
-
-
-
Constructor Detail
-
OptionMapping
public OptionMapping(DataObject data, gnu.trove.map.TLongObjectMap<Object> resolved)
-
-
Method Detail
-
getMentionedMembers
@Nonnull public List<Member> getMentionedMembers()
ResolvedMember
mentions for aSTRING
option.
If this option is not of typeSTRING
, this always returns an empty list. Mentions are sorted by occurrence.This only contains members of the guild. If the user mentions users from other guilds, they will only be provided by
getMentionedUsers()
.This is not supported for
CommandAutoCompleteInteraction
.
-
getMentionedUsers
@Nonnull public List<User> getMentionedUsers()
ResolvedUser
mentions for aSTRING
option.
If this option is not of typeSTRING
, this always returns an empty list. Mentions are sorted by occurrence.This may also contain users which are not members in the guild!
This is not supported for
CommandAutoCompleteInteraction
.
-
getMentionedRoles
@Nonnull public List<Role> getMentionedRoles()
ResolvedRole
mentions for aSTRING
option.
If this option is not of typeSTRING
, this always returns an empty list. Mentions are sorted by occurrence.This is not supported for
CommandAutoCompleteInteraction
.
-
getMentionedChannels
@Nonnull public List<GuildChannel> getMentionedChannels()
ResolvedGuildChannel
mentions for aSTRING
option.
If this option is not of typeSTRING
, this always returns an empty list. Mentions are sorted by occurrence.This is not supported for
CommandAutoCompleteInteraction
.- Returns:
List
ofGuildChannel
the resolved guild channel mentions in a string option
-
getMentions
@Nonnull public List<IMentionable> getMentions()
All resolvedmentions
for aSTRING
option.
If this option is not of typeSTRING
, this always returns an empty list. Mentions are sorted by occurrence.This is not supported for
CommandAutoCompleteInteraction
. This mergesgetMentionedUsers()
,getMentionedMembers()
,getMentionedRoles()
, andgetMentionedChannels()
.- Returns:
List
ofIMentionable
the resolved mentions in a string option
-
getType
@Nonnull public OptionType getType()
TheOptionType
of this option.- Returns:
- The
OptionType
-
getAsAttachment
@Nonnull public Message.Attachment getAsAttachment()
The file uploaded for this option.
This is represented as anephemeral
attachment which will only be hosted for up to 2 weeks. If you want a permanent reference, you must download it.- Returns:
Attachment
- Throws:
IllegalStateException
- If this optiontype
is notOptionType.ATTACHMENT
-
getAsString
@Nonnull public String getAsString()
The String representation of this option value.
This will automatically convert the value to a string if the type is notOptionType.STRING
.
This will be the ID of any resolved entity such asRole
orMember
.- Returns:
- The String representation of this option value
-
getAsBoolean
public boolean getAsBoolean()
The boolean value.- Returns:
- The boolean value
- Throws:
IllegalStateException
- If this option is not of typeBOOLEAN
-
getAsLong
public long getAsLong()
- Returns:
- The long value
- Throws:
IllegalStateException
- If this optiontype
cannot be converted to a longNumberFormatException
- If this option is of typeSTRING
and could not be parsed to a valid long value
-
getAsDouble
public double getAsDouble()
The double value for this option.- Returns:
- The double value
- Throws:
IllegalStateException
- If this optiontype
cannot be converted to a doubleNumberFormatException
- If this option is of typeSTRING
and could not be parsed to a valid double value
-
getAsMentionable
@Nonnull public IMentionable getAsMentionable()
The resolvedIMentionable
instance for this option value.- Returns:
- The resolved
IMentionable
- Throws:
IllegalStateException
- If the mentioned entity is not resolvable
-
getAsMember
@Nullable public Member getAsMember()
The resolvedMember
for this option value.
Note thatOptionType.USER
can also accept users that are not members of a guild, in which case this will be null!- Returns:
- The resolved
Member
, or null - Throws:
IllegalStateException
- If this option is not of typeUSER
orMENTIONABLE
-
getAsUser
@Nonnull public User getAsUser()
The resolvedUser
for this option value.- Returns:
- The resolved
User
- Throws:
IllegalStateException
- If this option is not of typeUSER
orMENTIONABLE
without a resolved user
-
getAsRole
@Nonnull public Role getAsRole()
The resolvedRole
for this option value.- Returns:
- The resolved
Role
- Throws:
IllegalStateException
- If this option is not of typeROLE
orMENTIONABLE
without a resolved role
-
getChannelType
@Nonnull public ChannelType getChannelType()
TheChannelType
for the resolved channel.- Returns:
- The
ChannelType
- Throws:
IllegalStateException
- If this option is not of typeCHANNEL
-
getAsGuildChannel
@Nonnull public GuildChannel getAsGuildChannel()
The resolvedGuildChannel
for this option value.
Note thatOptionType.CHANNEL
can accept channels of any type!- Returns:
- The resolved
GuildChannel
- Throws:
IllegalStateException
- If this option is not of typeCHANNEL
or could not be resolved for unexpected reasons
-
getAsMessageChannel
@Nullable public GuildMessageChannel getAsMessageChannel()
The resolvedGuildMessageChannel
for this option value.
Note thatOptionType.CHANNEL
can accept channels of any type!- Returns:
- The resolved
GuildMessageChannel
, or null if this was not a message channel - Throws:
IllegalStateException
- If this option is not of typeCHANNEL
-
getAsTextChannel
@Nullable public TextChannel getAsTextChannel()
The resolvedTextChannel
for this option value.
Note thatOptionType.CHANNEL
can accept channels of any type!- Returns:
- The resolved
TextChannel
, or null if this was not a text channel - Throws:
IllegalStateException
- If this option is not of typeCHANNEL
-
getAsNewsChannel
@Nullable public NewsChannel getAsNewsChannel()
The resolvedNewsChannel
for this option value.
Note thatOptionType.CHANNEL
can accept channels of any type!- Returns:
- The resolved
NewsChannel
, or null if this was not a news channel - Throws:
IllegalStateException
- If this option is not of typeCHANNEL
-
getAsThreadChannel
@Nullable public ThreadChannel getAsThreadChannel()
The resolvedThreadChannel
for this option value.
Note thatOptionType.CHANNEL
can accept channels of any type!- Returns:
- The resolved
ThreadChannel
, or null if this was not a thread channel - Throws:
IllegalStateException
- If this option is not of typeCHANNEL
-
getAsAudioChannel
@Nullable public AudioChannel getAsAudioChannel()
The resolvedAudioChannel
for this option value.
Note thatOptionType.CHANNEL
can accept channels of any type!- Returns:
- The resolved
AudioChannel
, or null if this was not an audio channel - Throws:
IllegalStateException
- If this option is not of typeCHANNEL
-
getAsVoiceChannel
@Nullable public VoiceChannel getAsVoiceChannel()
The resolvedVoiceChannel
for this option value.
Note thatOptionType.CHANNEL
can accept channels of any type!- Returns:
- The resolved
VoiceChannel
, or null if this was not a voice channel - Throws:
IllegalStateException
- If this option is not of typeCHANNEL
-
getAsStageChannel
@Nullable public StageChannel getAsStageChannel()
The resolvedStageChannel
for this option value.
Note thatOptionType.CHANNEL
can accept channels of any type!- Returns:
- The resolved
StageChannel
, or null if this was not a stage channel - Throws:
IllegalStateException
- If this option is not of typeCHANNEL
-
-