11package listeners ;
22
33import net .dv8tion .jda .api .JDA ;
4+ import net .dv8tion .jda .api .entities .channel .ChannelType ;
45import net .dv8tion .jda .api .events .interaction .command .SlashCommandInteractionEvent ;
56import net .dv8tion .jda .api .events .interaction .command .UserContextInteractionEvent ;
7+ import net .dv8tion .jda .api .events .interaction .component .ButtonInteractionEvent ;
8+ import net .dv8tion .jda .api .events .message .MessageReceivedEvent ;
9+ import net .dv8tion .jda .api .events .message .react .MessageReactionAddEvent ;
610import net .dv8tion .jda .api .events .session .ReadyEvent ;
711import net .dv8tion .jda .api .hooks .ListenerAdapter ;
812import services .*;
@@ -16,47 +20,51 @@ public class CounterStrikeBotListener extends ListenerAdapter {
1620 private RetakeService retakeService ;
1721 private CsFunService csFunService ;
1822 private DiscordService discordService ;
23+ private GregflixService gregflixService ;
1924
20- public CounterStrikeBotListener (Properties properties , DataService dataService ) {
25+ public CounterStrikeBotListener (Properties properties , DataService dataService , MessageService messageService ) {
2126 csStatsService = new CsStatsService (properties , dataService );
22- csFunService = new CsFunService (properties , dataService );
23- retakeService = new RetakeService (properties , dataService );
24- discordService = new DiscordService (properties , dataService , retakeService );
27+ csFunService = new CsFunService (dataService , messageService );
28+ retakeService = new RetakeService (properties , dataService , messageService );
29+ discordService = new DiscordService (properties , dataService , retakeService , messageService );
30+ gregflixService = new GregflixService (properties , messageService , dataService );
2531 }
2632
2733 @ Override
2834 public void onSlashCommandInteraction (SlashCommandInteractionEvent event ) {
2935
3036 String locale = discordService .getUserLocale (event );
3137
32- if ("stats" .equals (event .getName ())) {
33- event .deferReply ().queue ();
34- event .getHook ().sendMessageEmbeds (csStatsService .handleStatsEvent (event , locale ).build ()).queue ();
35- }
36-
37- if ("compare" .equals (event .getName ())) {
38- event .deferReply ().queue ();
39- event .getHook ().sendMessageEmbeds (csStatsService .handleCompareEvent (event , locale ).build ()).queue ();
40- }
41-
42- if ("map" .equals (event .getName ())) {
43- event .deferReply ().queue ();
44- event .getHook ().sendMessage (retakeService .handleMapEvent (event , locale )).queue ();
45- }
46-
47- if ("wow" .equals (event .getName ())) {
48- event .deferReply ().queue ();
49- event .getHook ().sendMessage (csFunService .handleAddWowEvent (event , locale )).queue ();
50- }
51-
52- if ("teams" .equals (event .getName ())) {
53- event .deferReply ().queue ();
54- event .getHook ().sendMessageEmbeds (csFunService .handleSetTeamsEvent (event , locale ).build ()).queue ();
55- }
56-
57- if ("status" .equals (event .getName ())) {
58- event .deferReply ().queue ();
59- event .getHook ().sendMessageEmbeds (retakeService .handleStatusEvent (event , locale ).build ()).queue ();
38+ if (event .getGuild ().getMembers ().contains (event .getMember ())) {
39+ if ("stats" .equals (event .getName ())) {
40+ event .deferReply ().queue ();
41+ event .getHook ().sendMessageEmbeds (csStatsService .handleStatsEvent (event , locale ).build ()).queue ();
42+ }
43+
44+ if ("compare" .equals (event .getName ())) {
45+ event .deferReply ().queue ();
46+ event .getHook ().sendMessageEmbeds (csStatsService .handleCompareEvent (event , locale ).build ()).queue ();
47+ }
48+
49+ if ("map" .equals (event .getName ())) {
50+ event .deferReply ().queue ();
51+ event .getHook ().sendMessage (retakeService .handleMapEvent (event , locale )).queue ();
52+ }
53+
54+ if ("wow" .equals (event .getName ())) {
55+ event .deferReply ().queue ();
56+ event .getHook ().sendMessage (csFunService .handleAddWowEvent (event , locale )).queue ();
57+ }
58+
59+ if ("teams" .equals (event .getName ())) {
60+ event .deferReply ().queue ();
61+ event .getHook ().sendMessageEmbeds (csFunService .handleSetTeamsEvent (event , locale ).build ()).queue ();
62+ }
63+
64+ if ("status" .equals (event .getName ())) {
65+ event .deferReply ().queue ();
66+ event .getHook ().sendMessageEmbeds (retakeService .handleStatusEvent (event , locale ).build ()).queue ();
67+ }
6068 }
6169 }
6270
@@ -87,4 +95,38 @@ public void onReady(ReadyEvent event){
8795 JDA jda = event .getJDA ();
8896 CompletableFuture .runAsync ( () -> discordService .scheduleAllTasks (jda ));
8997 }
98+
99+ @ Override
100+ public void onMessageReceived (MessageReceivedEvent messageReceivedEvent ) {
101+ String locale = "en" ;
102+
103+ if (messageReceivedEvent .getChannel ().getType ().equals (ChannelType .PRIVATE )) {
104+ if (!messageReceivedEvent .getAuthor ().isBot ()) {
105+ messageReceivedEvent .getAuthor ().openPrivateChannel ().queue ((privateChannel -> {
106+ gregflixService .handleGregflixEvent (messageReceivedEvent , locale , privateChannel );
107+ }));
108+ }
109+ }
110+ }
111+
112+ @ Override
113+ public void onButtonInteraction (ButtonInteractionEvent buttonInteractionEvent ) {
114+ String locale = "en" ;
115+ buttonInteractionEvent .getMessageChannel ().sendMessage (gregflixService .handleButtonEvent (buttonInteractionEvent , locale )).queue ();
116+ }
117+
118+ @ Override
119+ public void onMessageReactionAdd (MessageReactionAddEvent messageReactionAddEvent ) {
120+ String locale = "en" ;
121+
122+ if (messageReactionAddEvent .getChannel ().getType ().equals (ChannelType .PRIVATE )) {
123+ if (!messageReactionAddEvent .getUser ().isBot ()) {
124+ messageReactionAddEvent .retrieveMessage ().queue ((message -> {
125+ if (message .getAuthor ().isBot () && message .getContentDisplay ().matches ("[^\\ n]+?--[^\\ n]+?--[^\\ n]+?--[^\\ n]+?" )) {
126+ gregflixService .handleGregflixReactionEvent (messageReactionAddEvent , locale );
127+ }
128+ }));
129+ }
130+ }
131+ }
90132}
0 commit comments