Skip to content

Commit b3f6c5c

Browse files
authored
made tags command ephemeral (#1062)
* made tags command ephemeral * removed footer * removed delete button * removed tests for delete button
1 parent 24391fe commit b3f6c5c

File tree

2 files changed

+1
-84
lines changed

2 files changed

+1
-84
lines changed

application/src/main/java/org/togetherjava/tjbot/features/tags/TagsCommand.java

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
package org.togetherjava.tjbot.features.tags;
22

33
import net.dv8tion.jda.api.EmbedBuilder;
4-
import net.dv8tion.jda.api.Permission;
54
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
6-
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
75
import org.slf4j.Logger;
86
import org.slf4j.LoggerFactory;
97

108
import org.togetherjava.tjbot.features.CommandVisibility;
119
import org.togetherjava.tjbot.features.SlashCommandAdapter;
1210

13-
import java.time.Instant;
1411
import java.util.Collection;
15-
import java.util.List;
16-
import java.util.Objects;
1712
import java.util.stream.Collectors;
1813

1914
/**
@@ -31,7 +26,6 @@
3126
* </pre>
3227
*/
3328
public final class TagsCommand extends SlashCommandAdapter {
34-
3529
private static final Logger logger = LoggerFactory.getLogger(TagsCommand.class);
3630
private static final int MAX_TAGS_THRESHOLD_WARNING = 200;
3731

@@ -63,27 +57,9 @@ public void onSlashCommand(SlashCommandInteractionEvent event) {
6357
event
6458
.replyEmbeds(new EmbedBuilder().setTitle("All available tags")
6559
.setDescription(tagListText)
66-
.setFooter(event.getUser().getName() + " • used " + event.getCommandString())
67-
.setTimestamp(Instant.now())
6860
.setColor(TagSystem.AMBIENT_COLOR)
6961
.build())
70-
.addActionRow(
71-
TagSystem.createDeleteButton(generateComponentId(event.getUser().getId())))
62+
.setEphemeral(true)
7263
.queue();
7364
}
74-
75-
@Override
76-
public void onButtonClick(ButtonInteractionEvent event, List<String> args) {
77-
String userId = args.get(0);
78-
79-
if (!event.getUser().getId().equals(userId) && !Objects.requireNonNull(event.getMember())
80-
.hasPermission(Permission.MESSAGE_MANAGE)) {
81-
event.reply(
82-
"The message can only be deleted by its author or an user with 'MESSAGE_MANAGE' permissions.")
83-
.setEphemeral(true)
84-
.queue();
85-
return;
86-
}
87-
event.getMessage().delete().queue();
88-
}
8965
}

application/src/test/java/org/togetherjava/tjbot/features/tags/TagsCommandTest.java

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package org.togetherjava.tjbot.features.tags;
22

3-
import net.dv8tion.jda.api.Permission;
4-
import net.dv8tion.jda.api.entities.Member;
53
import net.dv8tion.jda.api.entities.MessageEmbed;
64
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
7-
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
85
import org.junit.jupiter.api.BeforeEach;
96
import org.junit.jupiter.api.DisplayName;
107
import org.junit.jupiter.api.Test;
@@ -17,8 +14,6 @@
1714

1815
import javax.annotation.Nullable;
1916

20-
import java.util.List;
21-
2217
import static org.junit.jupiter.api.Assertions.assertEquals;
2318
import static org.junit.jupiter.api.Assertions.assertNull;
2419
import static org.mockito.Mockito.*;
@@ -42,15 +37,6 @@ private SlashCommandInteractionEvent triggerSlashCommand() {
4237
return event;
4338
}
4439

45-
private ButtonInteractionEvent triggerButtonClick(Member userWhoClicked, long idOfAuthor) {
46-
ButtonInteractionEvent event = jdaTester.createButtonInteractionEvent()
47-
.setUserWhoClicked(userWhoClicked)
48-
.setActionRow(TagSystem.createDeleteButton("foo"))
49-
.buildWithSingleButton();
50-
command.onButtonClick(event, List.of(Long.toString(idOfAuthor)));
51-
return event;
52-
}
53-
5440
@BeforeEach
5541
void setUp() {
5642
system = spy(new TagSystem(Database.createMemoryDatabase(Tags.TAGS)));
@@ -100,49 +86,4 @@ void multipleElementListForMultipleTag() {
10086
• third""";
10187
assertEquals(expectedDescription, getResponseDescription(event));
10288
}
103-
104-
@Test
105-
@DisplayName("The list of tags can be deleted by the original author")
106-
void authorCanDeleteList() {
107-
// GIVEN a '/tags' message send by an author
108-
long idOfAuthor = 1;
109-
Member messageAuthor = jdaTester.createMemberSpy(idOfAuthor);
110-
111-
// WHEN the original author clicks the delete button
112-
ButtonInteractionEvent event = triggerButtonClick(messageAuthor, idOfAuthor);
113-
114-
// THEN the '/tags' message is deleted
115-
verify(event.getMessage()).delete();
116-
}
117-
118-
@Test
119-
@DisplayName("The list of tags can be deleted by a moderator")
120-
void moderatorCanDeleteList() {
121-
// GIVEN a '/tags' message send by an author and a moderator
122-
long idOfAuthor = 1;
123-
Member moderator = jdaTester.createMemberSpy(2);
124-
doReturn(true).when(moderator).hasPermission(any(Permission.class));
125-
126-
// WHEN the moderator clicks the delete button
127-
ButtonInteractionEvent event = triggerButtonClick(moderator, idOfAuthor);
128-
129-
// THEN the '/tags' message is deleted
130-
verify(event.getMessage()).delete();
131-
}
132-
133-
@Test
134-
@DisplayName("The list of tags cannot be deleted by other users")
135-
void othersCanNotDeleteList() {
136-
// GIVEN a '/tags' message send by an author and another user
137-
long idOfAuthor = 1;
138-
Member otherUser = jdaTester.createMemberSpy(3);
139-
doReturn(false).when(otherUser).hasPermission(any(Permission.class));
140-
141-
// WHEN the other clicks the delete button
142-
ButtonInteractionEvent event = triggerButtonClick(otherUser, idOfAuthor);
143-
144-
// THEN the '/tags' message is not deleted
145-
verify(event.getMessage(), never()).delete();
146-
verify(event).reply(anyString());
147-
}
14889
}

0 commit comments

Comments
 (0)