1010import net .dv8tion .jda .api .entities .channel .Channel ;
1111import net .dv8tion .jda .api .entities .channel .ChannelType ;
1212import net .dv8tion .jda .api .entities .channel .concrete .TextChannel ;
13+ import net .dv8tion .jda .api .events .interaction .GenericInteractionCreateEvent ;
1314import net .dv8tion .jda .api .events .interaction .ModalInteractionEvent ;
1415import net .dv8tion .jda .api .events .interaction .component .ButtonInteractionEvent ;
1516import net .dv8tion .jda .api .events .interaction .component .EntitySelectInteractionEvent ;
@@ -154,6 +155,7 @@ default void resend() {
154155 }
155156
156157 @ Value
158+ @ NonFinal
157159 public class Presentation$JDA implements Presentation {
158160 InteractionHandler handler = new InteractionHandler ();
159161 TextChannel channel ;
@@ -164,6 +166,10 @@ public class Presentation$JDA implements Presentation {
164166 channel .getJDA ().addEventListener (handler );
165167 }
166168
169+ protected boolean checkOutOfContext (GenericInteractionCreateEvent event ) {
170+ return true ;
171+ }
172+
167173 @ Override
168174 public void clear () {
169175 List <Message > ls = List .of ();
@@ -266,6 +272,7 @@ public void close() {
266272 private final class InteractionHandler extends ListenerAdapter {
267273 @ Override
268274 public void onButtonInteraction (@ NotNull ButtonInteractionEvent event ) {
275+ if (checkOutOfContext (event )) return ;
269276 event .replyModal (Modal .create (event .getComponentId (), event .getComponentId ())
270277 .addActionRow (TextInput .create ("newValue" , "New Value" , TextInputStyle .SHORT )
271278 .setPlaceholder (config .get (event .getComponentId ().split ("\\ ." )).asString ())
@@ -275,6 +282,7 @@ public void onButtonInteraction(@NotNull ButtonInteractionEvent event) {
275282
276283 @ Override
277284 public void onModalInteraction (@ NotNull ModalInteractionEvent event ) {
285+ if (checkOutOfContext (event )) return ;
278286 var path = event .getModalId ().split ("\\ ." );
279287 var locals = descend (path );
280288 var propType = locals .getFirst ().getType ();
@@ -287,6 +295,7 @@ public void onModalInteraction(@NotNull ModalInteractionEvent event) {
287295
288296 @ Override
289297 public void onStringSelectInteraction (@ NotNull StringSelectInteractionEvent event ) {
298+ if (checkOutOfContext (event )) return ;
290299 var path = event .getComponentId ().split ("\\ ." );
291300 var locals = descend (path );
292301 var propType = locals .getFirst ().getType ();
@@ -308,6 +317,7 @@ public void onStringSelectInteraction(@NotNull StringSelectInteractionEvent even
308317
309318 @ Override
310319 public void onEntitySelectInteraction (@ NotNull EntitySelectInteractionEvent event ) {
320+ if (checkOutOfContext (event )) return ;
311321 var path = event .getComponentId ().split ("\\ ." );
312322 var locals = descend (path );
313323
0 commit comments