Interface EntitySelectMenu
- All Superinterfaces:
ActionComponent,ActionRowChildComponent,Component,ICustomId,IDisableable,LabelChildComponent,SelectMenu
SelectMenu for selecting Discord entities.
Unlike StringSelectMenu, these entity select menus do not support custom choices.
A user will get suggested inputs based on what they write into the select menu.
This is an interactive component and usually located within an ActionRow.
One select menu fills up an entire action row by itself. You cannot have an action row with other components if a select menu is present in the same row.
The selections a user makes are only visible within their current client session. Other users cannot see the choices selected, and they will disappear when the client restarts or the message is reloaded.
Examples
public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {
if (!event.getName().equals("class")) return;
EntitySelectMenu menu = EntitySelectMenu.create("menu:class", SelectTarget.ROLE)
.setPlaceholder("Choose your class") // shows the placeholder indicating what this menu is for
.setRequiredRange(1, 1) // must select exactly one
.build();
event.reply("Please pick your class below")
.setEphemeral(true)
.addComponents(ActionRow.of(menu))
.queue();
}
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classA preconfigured builder for the creation of entity select menus.static classRepresents the default values used ingetDefaultValues().static enumSupported entity types for a EntitySelectMenu.Nested classes/interfaces inherited from interface net.dv8tion.jda.api.components.Component
Component.Type -
Field Summary
Fields inherited from interface net.dv8tion.jda.api.components.selections.SelectMenu
ID_MAX_LENGTH, OPTIONS_MAX_AMOUNT, PLACEHOLDER_MAX_LENGTH -
Method Summary
Modifier and TypeMethodDescriptiondefault EntitySelectMenuReturns a copy of this component withActionComponent.isDisabled()set to true.default EntitySelectMenuReturns a copy of this component withActionComponent.isDisabled()set to false.static EntitySelectMenu.Buildercreate(String customId, Collection<EntitySelectMenu.SelectTarget> types) Creates a newEntitySelectMenu.Builderfor a select menu with the provided custom id.static EntitySelectMenu.Buildercreate(String customId, EntitySelectMenu.SelectTarget type, EntitySelectMenu.SelectTarget... types) Creates a newEntitySelectMenu.Builderfor a select menu with the provided custom id.default EntitySelectMenu.BuilderCreates a new preconfiguredEntitySelectMenu.Builderwith the same settings used for this select menu.The allowedChannelTypesfor this menu.@Unmodifiable List<EntitySelectMenu.DefaultValue> Default selected values.TheSelectTargetssupported by this menu.default EntitySelectMenuwithDisabled(boolean disabled) Returns a copy of this component withActionComponent.isDisabled()set to the provided value.withUniqueId(int uniqueId) Creates a new component with the provided numeric ID.Methods inherited from interface net.dv8tion.jda.api.components.ActionComponent
isDisabledMethods inherited from interface net.dv8tion.jda.api.components.Component
getType, getUniqueId, isMessageCompatible, isModalCompatibleMethods inherited from interface net.dv8tion.jda.api.components.attribute.IDisableable
isEnabledMethods inherited from interface net.dv8tion.jda.api.components.selections.SelectMenu
getCustomId, getMaxValues, getMinValues, getPlaceholder, isRequired
-
Method Details
-
asDisabled
Description copied from interface:ActionComponentReturns a copy of this component withActionComponent.isDisabled()set to true.Note: Components in modals cannot be disabled.
- Specified by:
asDisabledin interfaceActionComponent- Specified by:
asDisabledin interfaceIDisableable- Specified by:
asDisabledin interfaceSelectMenu- Returns:
- New disabled component instance
- See Also:
-
asEnabled
Description copied from interface:ActionComponentReturns a copy of this component withActionComponent.isDisabled()set to false.- Specified by:
asEnabledin interfaceActionComponent- Specified by:
asEnabledin interfaceIDisableable- Specified by:
asEnabledin interfaceSelectMenu- Returns:
- New enabled component instance
- See Also:
-
withDisabled
Description copied from interface:ActionComponentReturns a copy of this component withActionComponent.isDisabled()set to the provided value.Note: Components in modals cannot be disabled.
- Specified by:
withDisabledin interfaceActionComponent- Specified by:
withDisabledin interfaceIDisableable- Specified by:
withDisabledin interfaceSelectMenu- Parameters:
disabled- True, if this component should be disabled- Returns:
- New enabled/disabled component instance
- See Also:
-
withUniqueId
Description copied from interface:ComponentCreates a new component with the provided numeric ID.
If no ID is set, Discord will generate IDs incrementally starting from 1 and will not use existing IDs from the same message/modal.- Specified by:
withUniqueIdin interfaceActionComponent- Specified by:
withUniqueIdin interfaceActionRowChildComponent- Specified by:
withUniqueIdin interfaceComponent- Specified by:
withUniqueIdin interfaceICustomId- Specified by:
withUniqueIdin interfaceIDisableable- Specified by:
withUniqueIdin interfaceLabelChildComponent- Specified by:
withUniqueIdin interfaceSelectMenu- Parameters:
uniqueId- The new ID; must be higher or equal to 1- Returns:
- The new component
-
getEntityTypes
TheSelectTargetssupported by this menu.
If the targets includeEntitySelectMenu.SelectTarget.CHANNEL, then they are also filtered bygetChannelTypes().Modifying the returned
EnumSetwill not affect this menu.- Returns:
EnumSetofEntitySelectMenu.SelectTarget
-
getChannelTypes
The allowedChannelTypesfor this menu.
This is only relevant if theSelectTargetsincludeEntitySelectMenu.SelectTarget.CHANNEL. The returned set is empty if all types are supported, orgetEntityTypes()does not includeEntitySelectMenu.SelectTarget.CHANNEL.Modifying the returned
EnumSetwill not affect this menu.- Returns:
EnumSetofChannelType
-
getDefaultValues
Default selected values.
These are shown until the user customizes the selected values, which then fires aEntitySelectInteractionEvent.- Returns:
- Immutable list of
default values
-
createCopy
Creates a new preconfiguredEntitySelectMenu.Builderwith the same settings used for this select menu.
This can be useful to create an updated version of this menu without needing to rebuild it from scratch.- Specified by:
createCopyin interfaceSelectMenu- Returns:
- The
EntitySelectMenu.Builderused to create the select menu
-
create
@Nonnull @CheckReturnValue static EntitySelectMenu.Builder create(@Nonnull String customId, @Nonnull Collection<EntitySelectMenu.SelectTarget> types) Creates a newEntitySelectMenu.Builderfor a select menu with the provided custom id.- Parameters:
customId- The id used to identify this menu withICustomId.getCustomId()for component interactionstypes- The supportedSelectTargets- Returns:
- The
EntitySelectMenu.Builderused to create the select menu - Throws:
IllegalArgumentException-- If the provided id is null, empty, or longer than 100 characters.
- If the provided types are null, empty, or invalid.
-
create
@Nonnull @CheckReturnValue static EntitySelectMenu.Builder create(@Nonnull String customId, @Nonnull EntitySelectMenu.SelectTarget type, @Nonnull EntitySelectMenu.SelectTarget... types) Creates a newEntitySelectMenu.Builderfor a select menu with the provided custom id.- Parameters:
customId- The id used to identify this menu withICustomId.getCustomId()for component interactionstype- The first supportedEntitySelectMenu.SelectTargettypes- Other supportedSelectTargets- Returns:
- The
EntitySelectMenu.Builderused to create the select menu - Throws:
IllegalArgumentException-- If the provided id is null, empty, or longer than 100 characters.
- If the provided types are null or invalid.
-