Class SelectMenu.Builder
- java.lang.Object
-
- net.dv8tion.jda.api.interactions.components.selections.SelectMenu.Builder
-
- Enclosing interface:
- SelectMenu
public static class SelectMenu.Builder extends Object
A preconfigured builder for the creation of select menus.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SelectMenu.Builder
addOption(String label, String value)
Adds up to 25 possible options to this select menu.SelectMenu.Builder
addOption(String label, String value, String description)
Adds up to 25 possible options to this select menu.SelectMenu.Builder
addOption(String label, String value, String description, Emoji emoji)
Adds up to 25 possible options to this select menu.SelectMenu.Builder
addOption(String label, String value, Emoji emoji)
Adds up to 25 possible options to this select menu.SelectMenu.Builder
addOptions(Collection<? extends SelectOption> options)
Adds up to 25 possible options to this select menu.SelectMenu.Builder
addOptions(SelectOption... options)
Adds up to 25 possible options to this select menu.SelectMenu
build()
Creates a newSelectMenu
instance if all requirements are satisfied.String
getId()
The custom id used to identify the select menu.int
getMaxValues()
The maximum amount of values a user can select at once.int
getMinValues()
The minimum amount of values a user has to select.List<SelectOption>
getOptions()
Modifiable list of options currently configured in this builder.String
getPlaceholder()
Placeholder which is displayed when no selections have been made yet.boolean
isDisabled()
Whether the menu is disabledSelectMenu.Builder
setDefaultOptions(Collection<? extends SelectOption> values)
Configures which of the currently appliedoptions
should be selected by default.SelectMenu.Builder
setDefaultValues(Collection<String> values)
Configures which of the currently appliedoptions
should be selected by default.SelectMenu.Builder
setDisabled(boolean disabled)
Configure whether this select menu should be disabled.SelectMenu.Builder
setId(String customId)
Change the custom id used to identify the select menu.SelectMenu.Builder
setMaxValues(int maxValues)
The maximum amount of values a user can select.SelectMenu.Builder
setMinValues(int minValues)
The minimum amount of values a user has to select.SelectMenu.Builder
setPlaceholder(String placeholder)
Configure the placeholder which is displayed when no selections have been made yet.SelectMenu.Builder
setRequiredRange(int min, int max)
The minimum and maximum amount of values a user can select.
-
-
-
Method Detail
-
setId
@Nonnull public SelectMenu.Builder setId(@Nonnull String customId)
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
@Nonnull public SelectMenu.Builder setPlaceholder(@Nullable String placeholder)
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
@Nonnull public SelectMenu.Builder setMinValues(int minValues)
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
@Nonnull public SelectMenu.Builder setMaxValues(int maxValues)
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
@Nonnull public SelectMenu.Builder setRequiredRange(int min, int max)
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
@Nonnull public SelectMenu.Builder setDisabled(boolean disabled)
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
@Nonnull public SelectMenu.Builder addOptions(@Nonnull SelectOption... options)
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:
SelectOption.of(String, String)
-
addOptions
@Nonnull public SelectMenu.Builder addOptions(@Nonnull Collection<? extends SelectOption> options)
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:
SelectOption.of(String, String)
-
addOption
@Nonnull public SelectMenu.Builder addOption(@Nonnull String label, @Nonnull String value)
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
@Nonnull public List<SelectOption> getOptions()
Modifiable list of options currently configured in this builder.- Returns:
- The list of
SelectOptions
-
setDefaultValues
@Nonnull public SelectMenu.Builder setDefaultValues(@Nonnull Collection<String> values)
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
@Nonnull public String getId()
The custom id used to identify the select menu.- Returns:
- The custom id
-
getPlaceholder
@Nullable public String 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
@Nonnull public SelectMenu 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
-
-