-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathButtonClickHandler.java
More file actions
35 lines (28 loc) · 1.35 KB
/
ButtonClickHandler.java
File metadata and controls
35 lines (28 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package uk.co.nyvil.bot.buttons.manager;
import net.dv8tion.jda.api.events.interaction.ButtonClickEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.jetbrains.annotations.NotNull;
import uk.co.nyvil.Bot;
import uk.co.nyvil.bot.buttons.status.ButtonClickInfo;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
public class ButtonClickHandler extends ListenerAdapter {
@Override
public void onButtonClick(@NotNull ButtonClickEvent event) {
if(event.getGuild() == null) return;
if(event.getUser().isBot()) return;
if(event.getMember() == null) return;
String componentID = event.getComponentId();
Map<String, ButtonMethods> buttonMap = Bot.getInstance().getButtonhandler().getButtonMap();
if (Bot.getInstance().getButtonhandler().getButtonMap().containsKey(componentID)) {
ButtonMethods buttonMethod = Bot.getInstance().getButtonhandler().getButtonMap().get(componentID);
final Method method = buttonMethod.getMethod();
try {
method.invoke(buttonMethod.getObj(), new ButtonClickInfo(event, event.getMember(), event.getTextChannel(), componentID));
} catch (IllegalAccessException | InvocationTargetException ex) {
ex.printStackTrace();
}
}
}
}