Class SelectionMenu.Builder

  • Enclosing interface:
    SelectionMenu

    public static class SelectionMenu.Builder
    extends Object
    A preconfigured builder for the creation of selection menus.
    • Method Detail

      • setId

        @Nonnull
        public SelectionMenu.Builder setId​(@Nonnull
                                           String customId)
        Change the custom id used to identify the selection 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 SelectionMenu.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 SelectionMenu.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 SelectionMenu.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 SelectionMenu.Builder setRequiredRange​(int min,
                                                      int max)
        The minimum and maximum amount of values a user can select.
        Default: 1 for both

        The minimum or maximum must not exceed the amount of available options.

        Parameters:
        min - The min values
        max - 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 SelectionMenu.Builder setDisabled​(boolean disabled)
        Configure whether this selection menu should be disabled.
        Default: false
        Parameters:
        disabled - Whether this menu is disabled
        Returns:
        The same builder instance for chaining
      • addOption

        @Nonnull
        public SelectionMenu.Builder addOption​(@Nonnull
                                               String label,
                                               @Nonnull
                                               String value)
        Adds up to 25 possible options to this selection menu.
        Parameters:
        label - The label for the option, up to 25 characters
        value - The value for the option used to indicate which option was selected with SelectionMenuInteraction.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 SelectionMenu.Builder addOption​(@Nonnull
                                               String label,
                                               @Nonnull
                                               String value,
                                               @Nonnull
                                               String description)
        Adds up to 25 possible options to this selection menu.
        Parameters:
        label - The label for the option, up to 25 characters
        value - The value for the option used to indicate which option was selected with SelectionMenuInteraction.getValues(), up to 100 characters
        description - 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 SelectionMenu.Builder addOption​(@Nonnull
                                               String label,
                                               @Nonnull
                                               String value,
                                               @Nullable
                                               String description,
                                               @Nullable
                                               Emoji emoji)
        Adds up to 25 possible options to this selection menu.
        Parameters:
        label - The label for the option, up to 25 characters
        value - The value for the option used to indicate which option was selected with SelectionMenuInteraction.getValues(), up to 100 characters
        description - The description explaining the meaning of this option in more detail, up to 50 characters
        emoji - The Emoji 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.
      • getId

        @Nonnull
        public String getId()
        The custom id used to identify the selection 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