From bc8a8b9141597c29530b24b638f5eeacd63f4343 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Tue, 27 Dec 2022 18:51:29 +0100 Subject: [PATCH] Remove linked role if user isn't linked in the db anymore --- .../bot/commandManager/commands/CommandUnlink.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commandManager/commands/CommandUnlink.java b/src/main/java/com/alttd/proxydiscordlink/bot/commandManager/commands/CommandUnlink.java index c14b8d5..3522468 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commandManager/commands/CommandUnlink.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commandManager/commands/CommandUnlink.java @@ -6,11 +6,14 @@ import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer; import com.alttd.proxydiscordlink.util.Utilities; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions; import net.dv8tion.jda.api.interactions.commands.build.CommandData; import net.dv8tion.jda.api.interactions.commands.build.Commands; +import java.util.Optional; + public class CommandUnlink extends DiscordCommand { private final CommandData commandData; public CommandUnlink(JDA jda) { @@ -34,6 +37,14 @@ public class CommandUnlink extends DiscordCommand { DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(member.getIdLong()); if (discordLinkPlayer == null) { + Optional linkedRole = member.getRoles().stream().filter(role -> role.getIdLong() == BotConfig.DISCORD.LINKED_ROLE_ID).findAny(); + if (linkedRole.isPresent()) { + member.getGuild().removeRoleFromMember(member, linkedRole.get()).queue(); + event.replyEmbeds(Utilities.genericSuccessEmbed("Success", "Your Discord and Minecraft accounts have been unlinked.")) + .setEphemeral(true) + .queue(); + return; + } Utilities.commandErrAutoRem("Your accounts aren't linked", event); return; }