diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/free/FreeCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/free/FreeCommand.java index 006f789b99..aa1a353a95 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/free/FreeCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/free/FreeCommand.java @@ -1,5 +1,6 @@ package org.togetherjava.tjbot.commands.free; +import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; @@ -16,11 +17,11 @@ import org.slf4j.LoggerFactory; import org.togetherjava.tjbot.commands.SlashCommandAdapter; import org.togetherjava.tjbot.commands.SlashCommandVisibility; -import org.togetherjava.tjbot.commands.utils.MessageUtils; import org.togetherjava.tjbot.config.Config; import org.togetherjava.tjbot.config.FreeCommandConfig; import java.awt.*; +import java.time.Instant; import java.util.*; // TODO (can SlashCommandVisibility be narrower than GUILD?) @@ -201,8 +202,12 @@ public void displayStatus(@NotNull TextChannel channel) { final Guild guild = channel.getGuild(); String messageTxt = buildStatusMessage(guild); - MessageEmbed embed = MessageUtils.generateEmbed(STATUS_TITLE, messageTxt, - channel.getJDA().getSelfUser(), MESSAGE_HIGHLIGHT_COLOR); + MessageEmbed embed = new EmbedBuilder().setTitle(STATUS_TITLE) + .setDescription(messageTxt) + .setFooter(channel.getJDA().getSelfUser().getName()) + .setTimestamp(Instant.now()) + .setColor(MESSAGE_HIGHLIGHT_COLOR) + .build(); getStatusMessageIn(channel).flatMap(this::deleteIfNotLatest) .ifPresentOrElse(message -> message.editMessageEmbeds(embed).queue(), diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagCommand.java index 9d48fba27a..16993ac70c 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagCommand.java @@ -1,12 +1,13 @@ package org.togetherjava.tjbot.commands.tags; +import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; import net.dv8tion.jda.api.interactions.commands.OptionType; import org.jetbrains.annotations.NotNull; import org.togetherjava.tjbot.commands.SlashCommandAdapter; import org.togetherjava.tjbot.commands.SlashCommandVisibility; -import org.togetherjava.tjbot.commands.utils.MessageUtils; +import java.time.Instant; import java.util.Objects; /** @@ -44,8 +45,11 @@ public void onSlashCommand(@NotNull SlashCommandEvent event) { } event - .replyEmbeds(MessageUtils.generateEmbed(null, tagSystem.getTag(id).orElseThrow(), - event.getUser(), TagSystem.AMBIENT_COLOR)) + .replyEmbeds(new EmbedBuilder().setDescription(tagSystem.getTag(id).orElseThrow()) + .setFooter(event.getUser().getName() + " • used " + event.getCommandString()) + .setTimestamp(Instant.now()) + .setColor(TagSystem.AMBIENT_COLOR) + .build()) .queue(); } } diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagManageCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagManageCommand.java index 0e34190be5..0114c4d44f 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagManageCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagManageCommand.java @@ -1,5 +1,6 @@ package org.togetherjava.tjbot.commands.tags; +import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; @@ -17,6 +18,7 @@ import org.togetherjava.tjbot.commands.utils.MessageUtils; import org.togetherjava.tjbot.config.Config; +import java.time.Instant; import java.util.Objects; import java.util.OptionalLong; import java.util.function.BiConsumer; @@ -90,9 +92,14 @@ public TagManageCommand(TagSystem tagSystem) { private static void sendSuccessMessage(@NotNull Interaction event, @NotNull String id, @NotNull String actionVerb) { logger.info("User '{}' {} the tag with id '{}'.", event.getUser().getId(), actionVerb, id); - event.replyEmbeds(MessageUtils.generateEmbed("Success", - "Successfully %s tag '%s'.".formatted(actionVerb, id), event.getUser(), - TagSystem.AMBIENT_COLOR)) + + event + .replyEmbeds(new EmbedBuilder().setTitle("Success") + .setDescription("Successfully %s tag '%s'.".formatted(actionVerb, id)) + .setFooter(event.getUser().getName()) + .setTimestamp(Instant.now()) + .setColor(TagSystem.AMBIENT_COLOR) + .build()) .queue(); } @@ -147,9 +154,13 @@ private void rawTag(@NotNull SlashCommandEvent event) { return; } - event.replyEmbeds(MessageUtils.generateEmbed(null, - MessageUtils.escapeMarkdown(tagSystem.getTag(id).orElseThrow()), event.getUser(), - TagSystem.AMBIENT_COLOR)) + event + .replyEmbeds(new EmbedBuilder() + .setDescription(MessageUtils.escapeMarkdown(tagSystem.getTag(id).orElseThrow())) + .setFooter(event.getUser().getName()) + .setTimestamp(Instant.now()) + .setColor(TagSystem.AMBIENT_COLOR) + .build()) .queue(); } diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagsCommand.java b/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagsCommand.java index 5efec82dfb..761faaebe1 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagsCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/tags/TagsCommand.java @@ -1,5 +1,6 @@ package org.togetherjava.tjbot.commands.tags; +import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.events.interaction.ButtonClickEvent; import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; @@ -7,9 +8,8 @@ import org.slf4j.LoggerFactory; import org.togetherjava.tjbot.commands.SlashCommandAdapter; import org.togetherjava.tjbot.commands.SlashCommandVisibility; -import org.togetherjava.tjbot.commands.utils.MessageUtils; +import java.time.Instant; import org.slf4j.Logger; - import java.util.Collection; import java.util.List; import java.util.Objects; @@ -60,8 +60,12 @@ public void onSlashCommand(@NotNull SlashCommandEvent event) { tagIds.stream().sorted().map(tag -> "• " + tag).collect(Collectors.joining("\n")); event - .replyEmbeds(MessageUtils.generateEmbed("All available tags", tagListText, - event.getUser(), TagSystem.AMBIENT_COLOR)) + .replyEmbeds(new EmbedBuilder().setTitle("All available tags") + .setDescription(tagListText) + .setFooter(event.getUser().getName() + " • used " + event.getCommandString()) + .setTimestamp(Instant.now()) + .setColor(TagSystem.AMBIENT_COLOR) + .build()) .addActionRow( TagSystem.createDeleteButton(generateComponentId(event.getUser().getId()))) .queue(); @@ -79,7 +83,6 @@ public void onButtonClick(@NotNull ButtonClickEvent event, @NotNull List .queue(); return; } - event.getMessage().delete().queue(); } } diff --git a/application/src/main/java/org/togetherjava/tjbot/commands/utils/MessageUtils.java b/application/src/main/java/org/togetherjava/tjbot/commands/utils/MessageUtils.java index 6828b594c2..70895df89a 100644 --- a/application/src/main/java/org/togetherjava/tjbot/commands/utils/MessageUtils.java +++ b/application/src/main/java/org/togetherjava/tjbot/commands/utils/MessageUtils.java @@ -1,17 +1,11 @@ package org.togetherjava.tjbot.commands.utils; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.interactions.components.ActionRow; import net.dv8tion.jda.api.interactions.components.Button; import net.dv8tion.jda.api.utils.MarkdownSanitizer; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import java.awt.*; -import java.time.Instant; import java.util.List; /** @@ -43,25 +37,6 @@ public static void disableButtons(@NotNull Message message) { .queue(); } - /** - * Generates an embed with the given content. - * - * @param title title of the embed or {@code null} if not desired - * @param content content to display in the embed - * @param user name of the user who requested the embed or {@code null} if no user requested - * this - * @param ambientColor the ambient color of the embed or {@code null} for a default color - * @return the generated embed - */ - public static @NotNull MessageEmbed generateEmbed(@Nullable String title, - @NotNull CharSequence content, @Nullable User user, @Nullable Color ambientColor) { - return new EmbedBuilder().setTitle(title) - .setDescription(content) - .setTimestamp(Instant.now()) - .setFooter(user == null ? null : user.getName()) - .setColor(ambientColor) - .build(); - } /** * Escapes every markdown content in the given string.