Remove linked role if user isn't linked in the db anymore

This commit is contained in:
Teriuihi 2022-12-27 18:51:29 +01:00
parent 29d0757279
commit bc8a8b9141

View File

@ -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<Role> 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;
}