Interface StringSelectMenuHandler


public interface StringSelectMenuHandler
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    handleStringSelectMenu(net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent event, List<String> values)
    Method that must be overridden for all classes that handle StringSelectInteraction.
  • Method Details

    • handleStringSelectMenu

      void handleStringSelectMenu(@Nonnull net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent event, @Nonnull List<String> values)
      Method that must be overridden for all classes that handle StringSelectInteraction. All select menus that match the identifier will execute this class's implementation of the handleStringSelectMenu(StringSelectInteractionEvent, List) method.
      
       public class TestCommand extends SlashCommand implements StringSelectMenuHandler {
      
           public TestCommand() {
               setSlashCommandData(Commands.slash("test", "test description"));
           }
      
          @Override
          public void execute(SlashCommandInteractionEvent event) {
       		List<Role> roles = [...]
       		SelectMenu.Builder menu = SelectMenu.create("test-select-menu");
       		for (Role role : roles) {
       			menu.addOption(role.getName(), role.getId());
              }
       		event.reply("Choose your rank!").addActionRow(menu.build()).queue();
          }
      
          @Override
          public void handleStringSelectMenu(StringSelectInteractionEvent event, List<String> values) {
       		for (String roleId : values) {
       			event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(roleId)).queue();
              }
       		event.reply("Successfully added " + String.join(", ", event.getValues())).queue();
          }
       }
      Since:
      v1.4
      See Also: