Class SelectOption

java.lang.Object
net.dv8tion.jda.api.components.selections.SelectOption
All Implemented Interfaces:
SerializableData

public class SelectOption extends Object implements SerializableData
One of the possible options provided in a SelectMenu.
  • Field Details

    • LABEL_MAX_LENGTH

      public static final int LABEL_MAX_LENGTH
      The maximum length a select option label can have
      See Also:
    • VALUE_MAX_LENGTH

      public static final int VALUE_MAX_LENGTH
      The maximum length a select option value can have
      See Also:
    • DESCRIPTION_MAX_LENGTH

      public static final int DESCRIPTION_MAX_LENGTH
      The maximum length a select option description can have
      See Also:
  • Method Details

    • of

      @Nonnull @CheckReturnValue public static SelectOption of(@Nonnull String label, @Nonnull String value)
      Creates a new SelectOption instance.
      You can further configure this with the various setters that return new instances.
      Parameters:
      label - The label for the option, up to 100 characters, as defined by LABEL_MAX_LENGTH
      value - The value for the option used to indicate which option was selected with SelectMenuInteraction.getValues(), up to 100 characters, as defined by VALUE_MAX_LENGTH
      Returns:
      The new select option instance
      Throws:
      IllegalArgumentException - If null is provided, or any of the individual parameter requirements are violated.
    • withLabel

      @Nonnull @CheckReturnValue public SelectOption withLabel(@Nonnull String label)
      Returns a copy of this select option with the changed label.
      Parameters:
      label - The label for the option, up to 100 characters, as defined by LABEL_MAX_LENGTH
      Returns:
      The new select option instance
      Throws:
      IllegalArgumentException - If the label is null, empty, or longer than 100 characters
    • withValue

      @Nonnull @CheckReturnValue public SelectOption withValue(@Nonnull String value)
      Returns a copy of this select option with the changed value.
      Parameters:
      value - The value for the option used to indicate which option was selected with SelectMenuInteraction.getValues(), up to 100 characters, as defined by VALUE_MAX_LENGTH
      Returns:
      The new select option instance
      Throws:
      IllegalArgumentException - If the label is null, empty, or longer than 100 characters
    • withDescription

      @Nonnull @CheckReturnValue public SelectOption withDescription(@Nullable String description)
      Returns a copy of this select option with the changed description of this option.
      Default: null
      Parameters:
      description - The new description or null to have no description, up to 100 characters, as defined by DESCRIPTION_MAX_LENGTH
      Returns:
      The new select option instance
      Throws:
      IllegalArgumentException - If the provided description is longer than 100 characters
    • withDefault

      @Nonnull @CheckReturnValue public SelectOption withDefault(boolean isDefault)
      Returns a copy of this select option with the changed default.
      Default: false
      Parameters:
      isDefault - Whether this option is selected by default
      Returns:
      The new select option instance
    • withEmoji

      @Nonnull @CheckReturnValue public SelectOption withEmoji(@Nullable Emoji emoji)
      Returns a copy of this select option with the changed emoji.
      Default: null
      Parameters:
      emoji - The Emoji shown next to this option, or null
      Returns:
      The new select option instance
    • getLabel

      @Nonnull public String getLabel()
      The current option label which would be shown to the user in the client.
      Returns:
      The label
    • getValue

      @Nonnull public String getValue()
      The current option value which is used to identify the selected options in SelectMenuInteraction.getValues().
      Returns:
      The option value
    • getDescription

      @Nullable public String getDescription()
      The current description for this option.
      Returns:
      The description
    • isDefault

      public boolean isDefault()
      Whether this option is selected by default
      Returns:
      True, if this option is selected by default
    • getEmoji

      @Nullable public EmojiUnion getEmoji()
      The emoji attached to this option which is shown next to the option in the select menu
      Returns:
      The attached emoji
    • toData

      @Nonnull public DataObject toData()
      Description copied from interface: SerializableData
      Serialized DataObject for this object.
      Specified by:
      toData in interface SerializableData
      Returns:
      DataObject
    • fromData

      @Nonnull @CheckReturnValue public static SelectOption fromData(@Nonnull DataObject data)
      Inverse function for toData() which parses the serialized option data
      Parameters:
      data - The serialized option data
      Returns:
      The parsed SelectOption instance
      Throws:
      ParsingException - If the data representation is invalid
      IllegalArgumentException - If some part of the data has an invalid length or null is provided
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object