diff --git a/src/main/java/org/mangorage/mangobot/modules/tricks/TrickCommand.java b/src/main/java/org/mangorage/mangobot/modules/tricks/TrickCommand.java index 2ee8df4..fc1da3a 100644 --- a/src/main/java/org/mangorage/mangobot/modules/tricks/TrickCommand.java +++ b/src/main/java/org/mangorage/mangobot/modules/tricks/TrickCommand.java @@ -2,6 +2,7 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.entities.MessageType; import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel; import net.dv8tion.jda.api.entities.channel.unions.MessageChannelUnion; import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent; @@ -549,6 +550,12 @@ public CommandResult execute(Message message, Arguments args) { private void useTrick(Trick trick, Message message, MessageChannel channel, long guildID, Arguments args) { MessageSettings dMessage = plugin.getMessageSettings(); var type = trick.getType(); + var replyTarget = message.getMessageReference() == null ? null : message.getMessageReference().getMessage(); + boolean shouldPing = false; + if (replyTarget != null && replyTarget.getMember() != null) { + shouldPing = replyTarget.getMember().getRoles() + .stream().noneMatch((role) -> role.isHoisted() ^ role.getName().equals("Patreons")); + } if (type == TrickType.NORMAL) { dMessage.withButton( dMessage.apply(channel.sendMessage(trick.getContent())) @@ -561,7 +568,7 @@ private void useTrick(Trick trick, Message message, MessageChannel channel, long return true; }) .toList() - ).queue(); + ).setMessageReference(replyTarget).mentionRepliedUser(shouldPing).queue(); trick.use(); save(trick); } else if (type == TrickType.ALIAS) {