Skip to content

Commit b34b87f

Browse files
committed
Tricks will ping non-authority users if initiated with a reply
1 parent 2f7d4a7 commit b34b87f

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

src/main/java/org/mangorage/mangobot/modules/tricks/TrickCommand.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import net.dv8tion.jda.api.entities.Member;
44
import net.dv8tion.jda.api.entities.Message;
5+
import net.dv8tion.jda.api.entities.MessageType;
56
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
67
import net.dv8tion.jda.api.entities.channel.unions.MessageChannelUnion;
78
import 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

Comments
 (0)