Skip to content

Commit a1e8046

Browse files
committed
Added /self-role remove
1 parent 5a77c6b commit a1e8046

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package net.javadiscord.javabot.systems.staff_commands.self_roles;
2+
3+
import com.dynxsty.dih4jda.interactions.commands.SlashCommand;
4+
import net.dv8tion.jda.api.EmbedBuilder;
5+
import net.dv8tion.jda.api.entities.Message;
6+
import net.dv8tion.jda.api.entities.MessageEmbed;
7+
import net.dv8tion.jda.api.entities.User;
8+
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
9+
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
10+
import net.dv8tion.jda.api.interactions.commands.OptionType;
11+
import net.dv8tion.jda.api.interactions.commands.build.SubcommandData;
12+
import net.javadiscord.javabot.systems.notification.GuildNotificationService;
13+
import net.javadiscord.javabot.util.Responses;
14+
import org.jetbrains.annotations.NotNull;
15+
16+
import java.time.Instant;
17+
18+
public class RemoveSelfRolesSubcommand extends SlashCommand.Subcommand {
19+
20+
public RemoveSelfRolesSubcommand() {
21+
setSubcommandData(new SubcommandData("remove", "Removes all Self-Roles from a specified message.")
22+
.addOption(OptionType.STRING, "message-id", "Id of the message.", true));
23+
}
24+
25+
@Override
26+
public void execute(SlashCommandInteractionEvent event) {
27+
OptionMapping idMapping = event.getOption("message-id");
28+
if (idMapping == null) {
29+
Responses.error(event, "ID is required.").queue();
30+
return;
31+
}
32+
event.deferReply(true).queue();
33+
event.getChannel().retrieveMessageById(idMapping.getAsLong()).queue(message -> {
34+
message.editMessageComponents().queue();
35+
MessageEmbed embed = buildSelfRoleDeletedEmbed(event.getUser(), message);
36+
new GuildNotificationService(event.getGuild()).sendLogChannelNotification(embed);
37+
event.getHook().sendMessageEmbeds(embed).setEphemeral(true).queue();
38+
}, e -> Responses.error(event.getHook(), e.getMessage()));
39+
}
40+
41+
private @NotNull MessageEmbed buildSelfRoleDeletedEmbed(@NotNull User changedBy, @NotNull Message message) {
42+
return new EmbedBuilder()
43+
.setAuthor(changedBy.getAsTag(), message.getJumpUrl(), changedBy.getEffectiveAvatarUrl())
44+
.setTitle("Self Roles removed")
45+
.setColor(Responses.Type.DEFAULT.getColor())
46+
.addField("Channel", message.getChannel().getAsMention(), true)
47+
.addField("Message", String.format("[Jump to Message](%s)", message.getJumpUrl()), true)
48+
.setTimestamp(Instant.now())
49+
.build();
50+
}
51+
}

src/main/java/net/javadiscord/javabot/systems/staff_commands/self_roles/SelfRoleCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public SelfRoleCommand() {
1717
.setDefaultPermissions(DefaultMemberPermissions.DISABLED)
1818
.setGuildOnly(true)
1919
);
20-
addSubcommands(new CreateSelfRoleSubcommand(), new ChangeSelfRoleStatusSubcommand());
20+
addSubcommands(new CreateSelfRoleSubcommand(), new ChangeSelfRoleStatusSubcommand(), new RemoveSelfRolesSubcommand());
2121
}
2222
}
2323

0 commit comments

Comments
 (0)