Annotation Interface StringMenu


@Target(METHOD) @Retention(RUNTIME) public @interface StringMenu

Methods annotated with StringMenu will be registered as a StringSelectMenu at startup.

Therefore, the method must be declared inside a class that is annotated with Interaction. Furthermore, the method signature has to meet the following conditions:

You can reply with a string select menu by calling MessageReply.components(Component...).

Example:

@MenuOption(label= "Pizza", value = "pizza")
@MenuOption(label= "Hamburger", value = "hamburger")
@MenuOption(label= "Sushi", value = "Sushi")
@StringMenu("What's your favourite food?")
public void onMenu(ComponentEvent event, List<String> choices) { ... }
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    int
    The maximum amount of values a user can select.
    int
    The minimum amount of values a user has to select.
    boolean
    Configure whether the user must populate this select menu if inside a Modal.
    int
    The uniqueId of this component.
    Configure the placeholder which is displayed when no selections have been made yet.
  • Element Details

    • value

      String value
      Configure the placeholder which is displayed when no selections have been made yet.
      Returns:
      the placeholder which is displayed when no selections have been made yet
      Default:
      ""
    • minValue

      int minValue

      The minimum amount of values a user has to select.

      Default: 1

      The minimum must not exceed the amount of available options.

      Returns:
      the minimum amount of values a user has to select
      Default:
      1
    • maxValue

      int maxValue

      The maximum amount of values a user can select.

      Default: 1

      The maximum must not exceed the amount of available options.

      Returns:
      the maximum amount of values a user can select
      Default:
      1
    • uniqueId

      int uniqueId
      The uniqueId of this component. Must be greater than 0. Default value is -1 which will result in Discord auto assigning an id.
      Default:
      -1
    • required

      boolean required

      Configure whether the user must populate this select menu if inside a Modal.

      This defaults to true in Modals when unset.

      This attribute is completely separate from the value range, for example, you can have an optional select menu with the range set to [2 ; 5], meaning you accept either 0 options, or, at least 2 but at most 5.

      This only has an effect in Modals!

      Returns:
      Whether this menu is required
      Default:
      true