From d55e0176c964f76d276469850dea8f29bcd42618 Mon Sep 17 00:00:00 2001 From: isvora Date: Thu, 24 Nov 2022 14:36:28 +0200 Subject: [PATCH 1/7] Ping moderators when /modmail command is used. --- .../commands/moderation/modmail/ModMailCommand.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java index 8a83c3badb..f88c50277e 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java @@ -5,6 +5,7 @@ import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; @@ -51,6 +52,7 @@ public final class ModMailCommand extends SlashCommandAdapter { private final Cache authorToLastModMailInvocation = createCooldownCache(); private final Predicate modMailChannelNamePredicate; private final String configModMailChannelPattern; + private final String moderatorGroup; /** @@ -83,6 +85,8 @@ public ModMailCommand(JDA jda, Config config) { Pattern.compile(config.getModMailChannelPattern()).asMatchPredicate(); configModMailChannelPattern = config.getModMailChannelPattern(); + + moderatorGroup = config.getHeavyModerationRolePattern(); } private Cache createCooldownCache() { @@ -148,6 +152,11 @@ private MessageCreateAction createModMessage(SlashCommandInteractionEvent event, message.addActionRow(DiscordClientAction.General.USER.asLinkButton("Author Profile", String.valueOf(userId))); } + + Optional moderatorRole = + event.getGuild().getRolesByName(moderatorGroup, true).stream().findFirst(); + moderatorRole.ifPresent(role -> message.setContent(role.getAsMention())); + return message; } From 818344ad435ebbba8b0130a115ce965ffe7466c4 Mon Sep 17 00:00:00 2001 From: isvora Date: Thu, 24 Nov 2022 14:38:23 +0200 Subject: [PATCH 2/7] Rename moderator group string to match the style --- .../tjbot/commands/moderation/modmail/ModMailCommand.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java index f88c50277e..19f0cff389 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java @@ -52,7 +52,7 @@ public final class ModMailCommand extends SlashCommandAdapter { private final Cache authorToLastModMailInvocation = createCooldownCache(); private final Predicate modMailChannelNamePredicate; private final String configModMailChannelPattern; - private final String moderatorGroup; + private final String configModGroupPattern; /** @@ -86,7 +86,7 @@ public ModMailCommand(JDA jda, Config config) { configModMailChannelPattern = config.getModMailChannelPattern(); - moderatorGroup = config.getHeavyModerationRolePattern(); + configModGroupPattern = config.getHeavyModerationRolePattern(); } private Cache createCooldownCache() { @@ -154,7 +154,7 @@ private MessageCreateAction createModMessage(SlashCommandInteractionEvent event, } Optional moderatorRole = - event.getGuild().getRolesByName(moderatorGroup, true).stream().findFirst(); + event.getGuild().getRolesByName(configModGroupPattern, true).stream().findFirst(); moderatorRole.ifPresent(role -> message.setContent(role.getAsMention())); return message; From 98253f854c7c0d45107d5dd0e787370a45a01d17 Mon Sep 17 00:00:00 2001 From: isvora Date: Thu, 24 Nov 2022 14:47:02 +0200 Subject: [PATCH 3/7] Ping moderators when /report command is used. --- .../commands/moderation/ReportCommand.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java index 005e779587..359e7af202 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java @@ -6,6 +6,7 @@ import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent; import net.dv8tion.jda.api.events.interaction.command.MessageContextInteractionEvent; @@ -53,6 +54,7 @@ public final class ReportCommand extends BotCommandAdapter implements MessageCon private final Cache authorToLastReportInvocation = createCooldownCache(); private final Predicate modMailChannelNamePredicate; private final String configModMailChannelPattern; + private final String configModGroupPattern; /** * Creates a new instance. @@ -66,6 +68,8 @@ public ReportCommand(Config config) { Pattern.compile(config.getModMailChannelPattern()).asMatchPredicate(); configModMailChannelPattern = config.getModMailChannelPattern(); + + configModGroupPattern = config.getHeavyModerationRolePattern(); } private Cache createCooldownCache() { @@ -177,9 +181,17 @@ private MessageCreateAction createModMessage(String reportReason, .setDescription(reportReason) .setColor(AMBIENT_COLOR) .build(); - return modMailAuditLog.sendMessageEmbeds(reportedMessageEmbed, reportReasonEmbed) - .addActionRow(DiscordClientAction.Channels.GUILD_CHANNEL_MESSAGE.asLinkButton( - "Go to Message", guild.getId(), reportedMessage.channelID, reportedMessage.id)); + MessageCreateAction message = + modMailAuditLog.sendMessageEmbeds(reportedMessageEmbed, reportReasonEmbed) + .addActionRow(DiscordClientAction.Channels.GUILD_CHANNEL_MESSAGE.asLinkButton( + "Go to Message", guild.getId(), reportedMessage.channelID, + reportedMessage.id)); + + Optional moderatorRole = + guild.getRolesByName(configModGroupPattern, true).stream().findFirst(); + moderatorRole.ifPresent(role -> message.setContent(role.getAsMention())); + + return message; } private void sendModMessage(ModalInteractionEvent event, List args, From 4b3b433633176845baa9675407a89e2906752cfd Mon Sep 17 00:00:00 2001 From: isvora Date: Thu, 24 Nov 2022 14:47:42 +0200 Subject: [PATCH 4/7] Extra space --- .../togetherjava/tjbot/commands/moderation/ReportCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java index 359e7af202..fd1eb6be6a 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java @@ -181,6 +181,7 @@ private MessageCreateAction createModMessage(String reportReason, .setDescription(reportReason) .setColor(AMBIENT_COLOR) .build(); + MessageCreateAction message = modMailAuditLog.sendMessageEmbeds(reportedMessageEmbed, reportReasonEmbed) .addActionRow(DiscordClientAction.Channels.GUILD_CHANNEL_MESSAGE.asLinkButton( From 91f2e015e9c9d9c3dd199f04a004c8bfd3faf7e3 Mon Sep 17 00:00:00 2001 From: isvora Date: Sun, 27 Nov 2022 12:10:24 +0200 Subject: [PATCH 5/7] Refactor --- .../tjbot/commands/moderation/ReportCommand.java | 15 ++++++++++----- .../moderation/modmail/ModMailCommand.java | 16 +++++++++++----- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java index fd1eb6be6a..d7c7424bfc 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java @@ -53,8 +53,8 @@ public final class ReportCommand extends BotCommandAdapter implements MessageCon private static final Color AMBIENT_COLOR = Color.BLACK; private final Cache authorToLastReportInvocation = createCooldownCache(); private final Predicate modMailChannelNamePredicate; + private final Predicate configModGroupPattern; private final String configModMailChannelPattern; - private final String configModGroupPattern; /** * Creates a new instance. @@ -69,7 +69,8 @@ public ReportCommand(Config config) { configModMailChannelPattern = config.getModMailChannelPattern(); - configModGroupPattern = config.getHeavyModerationRolePattern(); + configModGroupPattern = + Pattern.compile(config.getSoftModerationRolePattern()).asMatchPredicate(); } private Cache createCooldownCache() { @@ -188,9 +189,13 @@ private MessageCreateAction createModMessage(String reportReason, "Go to Message", guild.getId(), reportedMessage.channelID, reportedMessage.id)); - Optional moderatorRole = - guild.getRolesByName(configModGroupPattern, true).stream().findFirst(); - moderatorRole.ifPresent(role -> message.setContent(role.getAsMention())); + Optional roleName = guild.getRoles() + .stream() + .map(Role::getName) + .filter(configModGroupPattern) + .findFirst(); + roleName.ifPresent( + s -> message.setContent(guild.getRolesByName(s, false).get(0).getAsMention())); return message; } diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java index 19f0cff389..d94ac486d8 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java @@ -51,8 +51,8 @@ public final class ModMailCommand extends SlashCommandAdapter { private static final Color AMBIENT_COLOR = Color.BLACK; private final Cache authorToLastModMailInvocation = createCooldownCache(); private final Predicate modMailChannelNamePredicate; + private final Predicate configModGroupPattern; private final String configModMailChannelPattern; - private final String configModGroupPattern; /** @@ -86,7 +86,8 @@ public ModMailCommand(JDA jda, Config config) { configModMailChannelPattern = config.getModMailChannelPattern(); - configModGroupPattern = config.getHeavyModerationRolePattern(); + configModGroupPattern = + Pattern.compile(config.getSoftModerationRolePattern()).asMatchPredicate(); } private Cache createCooldownCache() { @@ -153,9 +154,14 @@ private MessageCreateAction createModMessage(SlashCommandInteractionEvent event, String.valueOf(userId))); } - Optional moderatorRole = - event.getGuild().getRolesByName(configModGroupPattern, true).stream().findFirst(); - moderatorRole.ifPresent(role -> message.setContent(role.getAsMention())); + Optional roleName = event.getGuild() + .getRoles() + .stream() + .map(Role::getName) + .filter(configModGroupPattern) + .findFirst(); + roleName.ifPresent(s -> message + .setContent(event.getGuild().getRolesByName(s, false).get(0).getAsMention())); return message; } From 2e2c3c35f69d54ac15456947dc61ab55608b0340 Mon Sep 17 00:00:00 2001 From: isvora Date: Mon, 28 Nov 2022 11:38:26 +0200 Subject: [PATCH 6/7] Fix CR comments --- .../tjbot/commands/moderation/ReportCommand.java | 11 ++++++----- .../commands/moderation/modmail/ModMailCommand.java | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java index d7c7424bfc..7a56bf1e16 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java @@ -70,7 +70,7 @@ public ReportCommand(Config config) { configModMailChannelPattern = config.getModMailChannelPattern(); configModGroupPattern = - Pattern.compile(config.getSoftModerationRolePattern()).asMatchPredicate(); + Pattern.compile(config.getHeavyModerationRolePattern()).asMatchPredicate(); } private Cache createCooldownCache() { @@ -189,13 +189,14 @@ private MessageCreateAction createModMessage(String reportReason, "Go to Message", guild.getId(), reportedMessage.channelID, reportedMessage.id)); - Optional roleName = guild.getRoles() + Optional moderatorRole = guild.getRoles() .stream() .map(Role::getName) .filter(configModGroupPattern) - .findFirst(); - roleName.ifPresent( - s -> message.setContent(guild.getRolesByName(s, false).get(0).getAsMention())); + .findFirst() + .map(name -> guild.getRolesByName(name, false).get(0)); + + moderatorRole.ifPresent(role -> message.setContent(role.getAsMention())); return message; } diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java index d94ac486d8..63e95c1d62 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java @@ -87,7 +87,7 @@ public ModMailCommand(JDA jda, Config config) { configModMailChannelPattern = config.getModMailChannelPattern(); configModGroupPattern = - Pattern.compile(config.getSoftModerationRolePattern()).asMatchPredicate(); + Pattern.compile(config.getHeavyModerationRolePattern()).asMatchPredicate(); } private Cache createCooldownCache() { @@ -154,14 +154,15 @@ private MessageCreateAction createModMessage(SlashCommandInteractionEvent event, String.valueOf(userId))); } - Optional roleName = event.getGuild() + Optional moderatorRole = event.getGuild() .getRoles() .stream() .map(Role::getName) .filter(configModGroupPattern) - .findFirst(); - roleName.ifPresent(s -> message - .setContent(event.getGuild().getRolesByName(s, false).get(0).getAsMention())); + .findFirst() + .map(name -> event.getGuild().getRolesByName(name, false).get(0)); + + moderatorRole.ifPresent(role -> message.setContent(role.getAsMention())); return message; } From 6a963fb515b38863828615a4037c3b1d6f88e6df Mon Sep 17 00:00:00 2001 From: isvora Date: Mon, 28 Nov 2022 13:50:33 +0200 Subject: [PATCH 7/7] Fix CR comments --- .../tjbot/commands/moderation/ReportCommand.java | 6 ++---- .../tjbot/commands/moderation/modmail/ModMailCommand.java | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java index 7a56bf1e16..6127e84f58 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/ReportCommand.java @@ -191,10 +191,8 @@ private MessageCreateAction createModMessage(String reportReason, Optional moderatorRole = guild.getRoles() .stream() - .map(Role::getName) - .filter(configModGroupPattern) - .findFirst() - .map(name -> guild.getRolesByName(name, false).get(0)); + .filter(role -> configModGroupPattern.test(role.getName())) + .findFirst(); moderatorRole.ifPresent(role -> message.setContent(role.getAsMention())); diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java index 63e95c1d62..0ab3181f7a 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/moderation/modmail/ModMailCommand.java @@ -157,10 +157,8 @@ private MessageCreateAction createModMessage(SlashCommandInteractionEvent event, Optional moderatorRole = event.getGuild() .getRoles() .stream() - .map(Role::getName) - .filter(configModGroupPattern) - .findFirst() - .map(name -> event.getGuild().getRolesByName(name, false).get(0)); + .filter(role -> configModGroupPattern.test(role.getName())) + .findFirst(); moderatorRole.ifPresent(role -> message.setContent(role.getAsMention()));