diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java new file mode 100644 index 0000000..d568b53 --- /dev/null +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java @@ -0,0 +1,54 @@ +package com.alttd.proxydiscordlink.bot.commands; + +import com.alttd.proxydiscordlink.DiscordLink; +import com.alttd.proxydiscordlink.bot.DiscordCommand; +import com.alttd.proxydiscordlink.bot.objects.DiscordRole; +import com.alttd.proxydiscordlink.database.Database; +import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.Message; + +import java.util.stream.Collectors; + +public class DiscordUnlink extends DiscordCommand { + @Override + public String getCommand() { + return "unlink"; + } + + @Override + public String getPermission() { + return null; + } + + @Override + public String getDescription() { + return "Unlink your Minecraft and Discord accounts."; + } + + @Override + public String getSyntax() { + return "unlink"; + } + + @Override + public void handleCommand(Message message, String sender, String command, String[] args) { + Member member = message.getMember(); + + Database database = DiscordLink.getPlugin().getDatabase(); + DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(member.getIdLong()); + database.removeLinkedAccount(discordLinkPlayer); + + discordLinkPlayer.updateDiscord( + DiscordRole.getDiscordRoles().stream() + .filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName())) + .collect(Collectors.toList()), + false); + discordLinkPlayer.updateMinecraft( + DiscordRole.getDiscordRoles().stream() + .filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName())) + .collect(Collectors.toList()), + false); + discordLinkPlayer.linkedRole(false); + } +}