diff --git a/application/src/main/java/org/togetherjava/tjbot/features/tags/TagsCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/tags/TagsCommand.java index cfd04d856a..05faa1fea6 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/tags/TagsCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/tags/TagsCommand.java @@ -1,19 +1,14 @@ package org.togetherjava.tjbot.features.tags; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; -import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.togetherjava.tjbot.features.CommandVisibility; import org.togetherjava.tjbot.features.SlashCommandAdapter; -import java.time.Instant; import java.util.Collection; -import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; /** @@ -31,7 +26,6 @@ * */ public final class TagsCommand extends SlashCommandAdapter { - private static final Logger logger = LoggerFactory.getLogger(TagsCommand.class); private static final int MAX_TAGS_THRESHOLD_WARNING = 200; @@ -63,27 +57,9 @@ public void onSlashCommand(SlashCommandInteractionEvent event) { event .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()))) + .setEphemeral(true) .queue(); } - - @Override - public void onButtonClick(ButtonInteractionEvent event, List args) { - String userId = args.get(0); - - if (!event.getUser().getId().equals(userId) && !Objects.requireNonNull(event.getMember()) - .hasPermission(Permission.MESSAGE_MANAGE)) { - event.reply( - "The message can only be deleted by its author or an user with 'MESSAGE_MANAGE' permissions.") - .setEphemeral(true) - .queue(); - return; - } - event.getMessage().delete().queue(); - } } diff --git a/application/src/test/java/org/togetherjava/tjbot/features/tags/TagsCommandTest.java b/application/src/test/java/org/togetherjava/tjbot/features/tags/TagsCommandTest.java index 9586c2b6d6..22a821f3da 100644 --- a/application/src/test/java/org/togetherjava/tjbot/features/tags/TagsCommandTest.java +++ b/application/src/test/java/org/togetherjava/tjbot/features/tags/TagsCommandTest.java @@ -1,10 +1,7 @@ package org.togetherjava.tjbot.features.tags; -import net.dv8tion.jda.api.Permission; -import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; -import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -17,8 +14,6 @@ import javax.annotation.Nullable; -import java.util.List; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.Mockito.*; @@ -42,15 +37,6 @@ private SlashCommandInteractionEvent triggerSlashCommand() { return event; } - private ButtonInteractionEvent triggerButtonClick(Member userWhoClicked, long idOfAuthor) { - ButtonInteractionEvent event = jdaTester.createButtonInteractionEvent() - .setUserWhoClicked(userWhoClicked) - .setActionRow(TagSystem.createDeleteButton("foo")) - .buildWithSingleButton(); - command.onButtonClick(event, List.of(Long.toString(idOfAuthor))); - return event; - } - @BeforeEach void setUp() { system = spy(new TagSystem(Database.createMemoryDatabase(Tags.TAGS))); @@ -100,49 +86,4 @@ void multipleElementListForMultipleTag() { • third"""; assertEquals(expectedDescription, getResponseDescription(event)); } - - @Test - @DisplayName("The list of tags can be deleted by the original author") - void authorCanDeleteList() { - // GIVEN a '/tags' message send by an author - long idOfAuthor = 1; - Member messageAuthor = jdaTester.createMemberSpy(idOfAuthor); - - // WHEN the original author clicks the delete button - ButtonInteractionEvent event = triggerButtonClick(messageAuthor, idOfAuthor); - - // THEN the '/tags' message is deleted - verify(event.getMessage()).delete(); - } - - @Test - @DisplayName("The list of tags can be deleted by a moderator") - void moderatorCanDeleteList() { - // GIVEN a '/tags' message send by an author and a moderator - long idOfAuthor = 1; - Member moderator = jdaTester.createMemberSpy(2); - doReturn(true).when(moderator).hasPermission(any(Permission.class)); - - // WHEN the moderator clicks the delete button - ButtonInteractionEvent event = triggerButtonClick(moderator, idOfAuthor); - - // THEN the '/tags' message is deleted - verify(event.getMessage()).delete(); - } - - @Test - @DisplayName("The list of tags cannot be deleted by other users") - void othersCanNotDeleteList() { - // GIVEN a '/tags' message send by an author and another user - long idOfAuthor = 1; - Member otherUser = jdaTester.createMemberSpy(3); - doReturn(false).when(otherUser).hasPermission(any(Permission.class)); - - // WHEN the other clicks the delete button - ButtonInteractionEvent event = triggerButtonClick(otherUser, idOfAuthor); - - // THEN the '/tags' message is not deleted - verify(event.getMessage(), never()).delete(); - verify(event).reply(anyString()); - } }