From 837e55bec01de20f788602ef41e6f0909e7c6979 Mon Sep 17 00:00:00 2001 From: Zabuzard Date: Wed, 25 Jun 2025 16:25:31 +0200 Subject: [PATCH] changed /modmail stay-anonymous to reveal-name for better UX --- .../moderation/modmail/ModMailCommand.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/modmail/ModMailCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/modmail/ModMailCommand.java index 3395a8c828..c29a7382a8 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/modmail/ModMailCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/modmail/ModMailCommand.java @@ -47,7 +47,7 @@ public final class ModMailCommand extends SlashCommandAdapter { private static final Logger logger = LoggerFactory.getLogger(ModMailCommand.class); public static final String COMMAND_NAME = "modmail"; private static final String OPTION_MESSAGE = "message"; - private static final String OPTION_STAY_ANONYMOUS = "stay-anonymous"; + private static final String OPTION_REVEAL_NAME = "reveal-name"; private static final String OPTION_GUILD = "server"; private static final int COOLDOWN_DURATION_VALUE = 30; private static final ChronoUnit COOLDOWN_DURATION_UNIT = ChronoUnit.MINUTES; @@ -70,8 +70,9 @@ public ModMailCommand(JDA jda, Config config) { OptionData guildOption = new OptionData(OptionType.STRING, OPTION_GUILD, "The server to contact mods from", true); - OptionData anonymousOption = new OptionData(OptionType.BOOLEAN, OPTION_STAY_ANONYMOUS, - "If set, your name is hidden - note that mods then can not get back to you", true); + OptionData revealNameOption = new OptionData(OptionType.BOOLEAN, OPTION_REVEAL_NAME, + "If set, your name is shown to mods - false means mods can not get back to you", + true); List choices = jda.getGuildCache() .stream() @@ -80,7 +81,7 @@ public ModMailCommand(JDA jda, Config config) { guildOption.addChoices(choices); - getData().addOptions(guildOption, anonymousOption); + getData().addOptions(guildOption, revealNameOption); modMailChannelNamePredicate = Pattern.compile(config.getModMailChannelPattern()).asMatchPredicate(); @@ -112,7 +113,7 @@ public void onSlashCommand(SlashCommandInteractionEvent event) { private void sendMessageModal(SlashCommandInteractionEvent event) { long userGuildId = event.getOption(OPTION_GUILD).getAsLong(); - boolean wantsToStayAnonymous = event.getOption(OPTION_STAY_ANONYMOUS).getAsBoolean(); + boolean wantsToRevealName = event.getOption(OPTION_REVEAL_NAME).getAsBoolean(); TextInput message = TextInput.create(OPTION_MESSAGE, "Your message", TextInputStyle.PARAGRAPH) @@ -120,8 +121,8 @@ private void sendMessageModal(SlashCommandInteractionEvent event) { .setMinLength(3) .build(); - String componentId = generateComponentId(String.valueOf(userGuildId), - String.valueOf(wantsToStayAnonymous)); + String componentId = + generateComponentId(String.valueOf(userGuildId), String.valueOf(wantsToRevealName)); Modal modal = Modal.create(componentId, "Send message to moderators") .addActionRow(message) @@ -136,7 +137,7 @@ public void onModalSubmitted(ModalInteractionEvent event, List args) { long userId = event.getUser().getIdLong(); long userGuildId = Long.parseLong(args.getFirst()); - boolean wantsToStayAnonymous = Boolean.parseBoolean(args.get(1)); + boolean wantsToRevealName = Boolean.parseBoolean(args.get(1)); Optional modMailAuditLog = getModMailChannel(event.getJDA(), userGuildId); if (modMailAuditLog.isEmpty()) { @@ -148,7 +149,7 @@ public void onModalSubmitted(ModalInteractionEvent event, List args) { event.deferReply().setEphemeral(true).queue(); MessageCreateAction message = createModMessage(event, userId, userMessage, - wantsToStayAnonymous, modMailAuditLog.orElseThrow()); + wantsToRevealName, modMailAuditLog.orElseThrow()); sendMessage(event, message); } @@ -172,11 +173,11 @@ private Optional getModMailChannel(JDA jda, long guildId) { } private MessageCreateAction createModMessage(ModalInteractionEvent event, long userId, - String userMessage, boolean wantsToStayAnonymous, TextChannel modMailAuditLog) { - User user = wantsToStayAnonymous ? null : event.getUser(); + String userMessage, boolean wantsToRevealName, TextChannel modMailAuditLog) { + User user = wantsToRevealName ? event.getUser() : null; MessageCreateAction message = modMailAuditLog.sendMessageEmbeds(createModMailMessage(user, userMessage)); - if (!wantsToStayAnonymous) { + if (wantsToRevealName) { message.addActionRow(DiscordClientAction.General.USER.asLinkButton("Author Profile", String.valueOf(userId))); }