Class SelectionMenu.Builder

  • Enclosing interface:
    SelectionMenu

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

      • setId

        @Nonnull
        public SelectionMenu.Builder setId​(@Nonnull
                                           java.lang.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:
        java.lang.IllegalArgumentException - If the provided id is null, empty, or longer than 100 characters
      • setPlaceholder

        @Nonnull
        public SelectionMenu.Builder setPlaceholder​(@Nullable
                                                    java.lang.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:
        java.lang.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:
        java.lang.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:
        java.lang.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:
        java.lang.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
      • addOptions

        @Nonnull
        public SelectionMenu.Builder addOptions​(@Nonnull
                                                SelectOption... options)
        Adds up to 25 possible options to this selection menu.
        Parameters:
        options - The SelectOptions to add
        Returns:
        The same builder instance for chaining
        Throws:
        java.lang.IllegalArgumentException - If the total amount of options is greater than 25 or null is provided
        See Also:
        SelectOption.of(String, String)
      • addOptions

        @Nonnull
        public SelectionMenu.Builder addOptions​(@Nonnull
                                                java.util.Collection<? extends SelectOption> options)
        Adds up to 25 possible options to this selection menu.
        Parameters:
        options - The SelectOptions to add
        Returns:
        The same builder instance for chaining
        Throws:
        java.lang.IllegalArgumentException - If the total amount of options is greater than 25 or null is provided
        See Also:
        SelectOption.of(String, String)
      • addOption

        @Nonnull
        public SelectionMenu.Builder addOption​(@Nonnull
                                               java.lang.String label,
                                               @Nonnull
                                               java.lang.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:
        java.lang.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
                                               java.lang.String label,
                                               @Nonnull
                                               java.lang.String value,
                                               @Nonnull
                                               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
        emoji - The Emoji shown next to this option, or null
        Returns:
        The same builder instance for chaining
        Throws:
        java.lang.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
                                               java.lang.String label,
                                               @Nonnull
                                               java.lang.String value,
                                               @Nonnull
                                               java.lang.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:
        java.lang.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
                                               java.lang.String label,
                                               @Nonnull
                                               java.lang.String value,
                                               @Nullable
                                               java.lang.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:
        java.lang.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 java.util.List<SelectOption> getOptions()
        Modifiable list of options currently configured in this builder.
        Returns:
        The list of SelectOptions
      • setDefaultValues

        @Nonnull
        public SelectionMenu.Builder setDefaultValues​(@Nonnull
                                                      java.util.Collection<java.lang.String> values)
        Configures which of the currently applied options should be selected by default.
        Parameters:
        values - The option values
        Returns:
        The same builder instance for chaining
        Throws:
        java.lang.IllegalArgumentException - If null is provided
      • setDefaultOptions

        @Nonnull
        public SelectionMenu.Builder setDefaultOptions​(@Nonnull
                                                       java.util.Collection<? extends SelectOption> values)
        Configures which of the currently applied options should be selected by default.
        Parameters:
        values - The SelectOptions
        Returns:
        The same builder instance for chaining
        Throws:
        java.lang.IllegalArgumentException - If null is provided
      • getId

        @Nonnull
        public java.lang.String getId()
        The custom id used to identify the selection menu.
        Returns:
        The custom id
      • getPlaceholder

        @Nullable
        public java.lang.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