Skip to content

Commit 10726c1

Browse files
committed
feat: added select menus
1 parent 0a18fb1 commit 10726c1

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

src/main/java/com/seailz/jdaframework/DiscordBot.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
import com.seailz.jdaframework.contextmenu.listeners.UserContextMenuListener;
99
import com.seailz.jdaframework.contextmenu.registry.ContextMenuRegistry;
1010
import com.seailz.jdaframework.modals.listeners.ModalListener;
11+
import com.seailz.jdaframework.select.SelectMenuListener;
1112
import lombok.Getter;
1213
import lombok.Setter;
1314
import net.dv8tion.jda.api.JDA;
1415
import net.dv8tion.jda.api.JDABuilder;
1516
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
17+
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
1618
import net.dv8tion.jda.api.hooks.EventListener;
1719
import net.dv8tion.jda.api.hooks.ListenerAdapter;
1820

@@ -32,6 +34,10 @@ public class DiscordBot {
3234
private static DiscordBot instance;
3335
@Getter
3436
private static HashMap<String, Consumer<ButtonInteractionEvent>> buttonRegistry;
37+
38+
@Getter
39+
private static HashMap<String, Consumer<SelectMenuInteractionEvent>> selectRegistry;
40+
3541
private String token;
3642
private JDA jda;
3743
private JDABuilder builder;
@@ -53,7 +59,8 @@ public DiscordBot(String token) {
5359
new UserContextMenuListener(),
5460
new CommandRunListener(),
5561
new ModalListener(),
56-
new ButtonListener()
62+
new ButtonListener(),
63+
new SelectMenuListener()
5764
);
5865
}
5966

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.seailz.jdaframework.select;
2+
3+
import com.seailz.jdaframework.DiscordBot;
4+
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
5+
import net.dv8tion.jda.api.hooks.ListenerAdapter;
6+
import org.jetbrains.annotations.NotNull;
7+
8+
public class SelectMenuListener extends ListenerAdapter {
9+
@Override
10+
public void onSelectMenuInteraction(@NotNull SelectMenuInteractionEvent event) {
11+
if (DiscordBot.getSelectRegistry().containsKey(event.getSelectMenu().getId())) {
12+
DiscordBot.getSelectRegistry().get(event.getSelectMenu().getId()).accept(event);
13+
}
14+
}
15+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.seailz.jdaframework.select;
2+
3+
import com.seailz.jdaframework.DiscordBot;
4+
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
5+
6+
import java.util.function.Consumer;
7+
8+
public class SelectMenuManager {
9+
10+
public static void listen(String id, Consumer<SelectMenuInteractionEvent> onClick) {
11+
DiscordBot.getSelectRegistry().put(id, onClick);
12+
}
13+
14+
}

0 commit comments

Comments
 (0)