22
33import net .dv8tion .jda .api .entities .Member ;
44import net .dv8tion .jda .api .entities .Message ;
5+ import net .dv8tion .jda .api .entities .MessageType ;
56import net .dv8tion .jda .api .entities .channel .middleman .MessageChannel ;
67import net .dv8tion .jda .api .entities .channel .unions .MessageChannelUnion ;
78import net .dv8tion .jda .api .events .interaction .ModalInteractionEvent ;
@@ -549,10 +550,19 @@ public CommandResult execute(Message message, Arguments args) {
549550 private void useTrick (Trick trick , Message message , MessageChannel channel , long guildID , Arguments args ) {
550551 MessageSettings dMessage = plugin .getMessageSettings ();
551552 var type = trick .getType ();
553+ var replyTarget = message .getMessageReference () == null ? null : message .getMessageReference ().getMessage ();
554+ boolean shouldPing = false ;
555+ if (replyTarget != null && replyTarget .getMember () != null ) {
556+ shouldPing = replyTarget .getMember ().getRoles ()
557+ .stream ().noneMatch ((role ) -> role .isHoisted () ^ role .getName ().equals ("Patreons" ));
558+ }
552559 if (type == TrickType .NORMAL ) {
553560 dMessage .withButton (
554561 dMessage .apply (channel .sendMessage (trick .getContent ()))
555- .setSuppressEmbeds (trick .isSuppressed ()), MangoBotPlugin .ACTION_REGISTRY .get (TrashButtonAction .class ).createForUser (message .getAuthor ())
562+ .setSuppressEmbeds (trick .isSuppressed ()),
563+ MangoBotPlugin .ACTION_REGISTRY .get (TrashButtonAction .class )
564+ .createForUser (message .getAuthor ()
565+ )
556566 ).setAllowedMentions (
557567 Arrays .stream (Message .MentionType .values ())
558568 .filter (t -> {
@@ -561,7 +571,7 @@ private void useTrick(Trick trick, Message message, MessageChannel channel, long
561571 return true ;
562572 })
563573 .toList ()
564- ).queue ();
574+ ).setMessageReference ( replyTarget ). mentionRepliedUser ( shouldPing ). queue ();
565575 trick .use ();
566576 save (trick );
567577 } else if (type == TrickType .ALIAS ) {
0 commit comments