Class SelectMenu.Builder
java.lang.Object
net.dv8tion.jda.api.interactions.components.selections.SelectMenu.Builder
- Enclosing interface:
- SelectMenu
A preconfigured builder for the creation of select menus.
-
Method Summary
Modifier and TypeMethodDescriptionAdds up to 25 possible options to this select menu.Adds up to 25 possible options to this select menu.Adds up to 25 possible options to this select menu.Adds up to 25 possible options to this select menu.addOptions
(Collection<? extends SelectOption> options) Adds up to 25 possible options to this select menu.addOptions
(SelectOption... options) Adds up to 25 possible options to this select menu.build()
Creates a newSelectMenu
instance if all requirements are satisfied.getId()
The custom id used to identify the select menu.int
The maximum amount of values a user can select at once.int
The minimum amount of values a user has to select.Modifiable list of options currently configured in this builder.Placeholder which is displayed when no selections have been made yet.boolean
Whether the menu is disabledsetDefaultOptions
(Collection<? extends SelectOption> values) Configures which of the currently appliedoptions
should be selected by default.setDefaultValues
(Collection<String> values) Configures which of the currently appliedoptions
should be selected by default.setDisabled
(boolean disabled) Configure whether this select menu should be disabled.Change the custom id used to identify the select menu.setMaxValues
(int maxValues) The maximum amount of values a user can select.setMinValues
(int minValues) The minimum amount of values a user has to select.setPlaceholder
(String placeholder) Configure the placeholder which is displayed when no selections have been made yet.setRequiredRange
(int min, int max) The minimum and maximum amount of values a user can select.
-
Method Details
-
setId
Change the custom id used to identify the select menu.- Parameters:
customId
- The new custom id to use- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the provided id is null, empty, or longer than 100 characters
-
setPlaceholder
Configure the placeholder which is displayed when no selections have been made yet.- Parameters:
placeholder
- The placeholder or null- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the provided placeholder is empty or longer than 100 characters
-
setMinValues
The minimum amount of values a user has to select.
Default:1
The minimum must not exceed the amount of available options.
- Parameters:
minValues
- The min values- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the provided amount is negative or greater than 25
-
setMaxValues
The maximum amount of values a user can select.
Default:1
The maximum must not exceed the amount of available options.
- Parameters:
maxValues
- The max values- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the provided amount is less than 1 or greater than 25
-
setRequiredRange
The minimum and maximum amount of values a user can select.
Default:1
for bothThe minimum or maximum must not exceed the amount of available options.
- Parameters:
min
- The min valuesmax
- The max values- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the provided amount is not a valid range (0 <= min <= max
)
-
setDisabled
Configure whether this select menu should be disabled.
Default:false
- Parameters:
disabled
- Whether this menu is disabled- Returns:
- The same builder instance for chaining
-
addOptions
Adds up to 25 possible options to this select menu.- Parameters:
options
- TheSelectOptions
to add- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the total amount of options is greater than 25 or null is provided- See Also:
-
addOptions
Adds up to 25 possible options to this select menu.- Parameters:
options
- TheSelectOptions
to add- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the total amount of options is greater than 25 or null is provided- See Also:
-
addOption
Adds up to 25 possible options to this select menu.- Parameters:
label
- The label for the option, up to 100 charactersvalue
- The value for the option used to indicate which option was selected withSelectMenuInteraction.getValues()
, up to 100 characters- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the total amount of options is greater than 25, invalid null is provided, or any of the individual parameter requirements are violated.
-
addOption
@Nonnull public SelectMenu.Builder addOption(@Nonnull String label, @Nonnull String value, @Nonnull Emoji emoji) Adds up to 25 possible options to this select menu.- Parameters:
label
- The label for the option, up to 100 charactersvalue
- The value for the option used to indicate which option was selected withSelectMenuInteraction.getValues()
, up to 100 charactersemoji
- TheEmoji
shown next to this option, or null- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the total amount of options is greater than 25, invalid null is provided, or any of the individual parameter requirements are violated.
-
addOption
@Nonnull public SelectMenu.Builder addOption(@Nonnull String label, @Nonnull String value, @Nonnull String description) Adds up to 25 possible options to this select menu.- Parameters:
label
- The label for the option, up to 100 charactersvalue
- The value for the option used to indicate which option was selected withSelectMenuInteraction.getValues()
, up to 100 charactersdescription
- The description explaining the meaning of this option in more detail, up to 50 characters- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the total amount of options is greater than 25, invalid null is provided, or any of the individual parameter requirements are violated.
-
addOption
@Nonnull public SelectMenu.Builder addOption(@Nonnull String label, @Nonnull String value, @Nullable String description, @Nullable Emoji emoji) Adds up to 25 possible options to this select menu.- Parameters:
label
- The label for the option, up to 100 charactersvalue
- The value for the option used to indicate which option was selected withSelectMenuInteraction.getValues()
, up to 100 charactersdescription
- The description explaining the meaning of this option in more detail, up to 50 charactersemoji
- TheEmoji
shown next to this option, or null- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If the total amount of options is greater than 25, invalid null is provided, or any of the individual parameter requirements are violated.
-
getOptions
Modifiable list of options currently configured in this builder.- Returns:
- The list of
SelectOptions
-
setDefaultValues
Configures which of the currently appliedoptions
should be selected by default.- Parameters:
values
- Theoption values
- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If null is provided
-
setDefaultOptions
@Nonnull public SelectMenu.Builder setDefaultOptions(@Nonnull Collection<? extends SelectOption> values) Configures which of the currently appliedoptions
should be selected by default.- Parameters:
values
- TheSelectOptions
- Returns:
- The same builder instance for chaining
- Throws:
IllegalArgumentException
- If null is provided
-
getId
The custom id used to identify the select menu.- Returns:
- The custom id
-
getPlaceholder
Placeholder which is displayed when no selections have been made yet.- Returns:
- The placeholder or null
-
getMinValues
public int getMinValues()The minimum amount of values a user has to select.- Returns:
- The min values
-
getMaxValues
public int getMaxValues()The maximum amount of values a user can select at once.- Returns:
- The max values
-
isDisabled
public boolean isDisabled()Whether the menu is disabled- Returns:
- True if this menu is disabled
-
build
Creates a newSelectMenu
instance if all requirements are satisfied.
A select menu may not have more than 25 options at once.The values for
setMinValues(int)
andsetMaxValues(int)
are bounded by the length ofgetOptions()
. This means they will automatically be adjusted to not be greater thangetOptions().size()
.- Returns:
- The new
SelectMenu
instance - Throws:
IllegalArgumentException
- Throws ifgetMinValues()
is greater thangetMaxValues()
or more than 25 options are provided
-