Deleted old commands

This commit is contained in:
Teriuihi 2022-12-19 02:56:55 +01:00
parent c045aba112
commit 130d8b027a
9 changed files with 3 additions and 684 deletions

View File

@ -1,7 +1,6 @@
package com.alttd.proxydiscordlink.bot;
import com.alttd.proxydiscordlink.bot.commandManager.CommandManager;
import com.alttd.proxydiscordlink.bot.listeners.DiscordMessageListener;
import com.alttd.proxydiscordlink.bot.listeners.DiscordRoleListener;
import com.alttd.proxydiscordlink.config.BotConfig;
import com.alttd.proxydiscordlink.util.ALogger;
@ -19,7 +18,6 @@ import net.dv8tion.jda.api.requests.GatewayIntent;
import net.dv8tion.jda.api.utils.MemberCachePolicy;
import org.jetbrains.annotations.Nullable;
import javax.security.auth.login.LoginException;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
@ -35,7 +33,7 @@ public class Bot {
.enableIntents(GatewayIntent.GUILD_MEMBERS)
.build();
jda.setAutoReconnect(true);
jda.addEventListener(new DiscordMessageListener(),
jda.addEventListener(
new DiscordRoleListener());
DiscordCommand.loadCommands();
} catch (Exception e) {

View File

@ -1,52 +0,0 @@
package com.alttd.proxydiscordlink.bot.commands;
import com.alttd.proxydiscordlink.DiscordLink;
import com.alttd.proxydiscordlink.bot.Bot;
import com.alttd.proxydiscordlink.bot.DiscordCommand;
import com.alttd.proxydiscordlink.config.BotConfig;
import com.alttd.proxydiscordlink.util.Utilities;
import net.dv8tion.jda.api.entities.Message;
public class DiscordBroadCast extends DiscordCommand {
private DiscordLink plugin;
private final Bot bot;
public DiscordBroadCast() {
plugin = DiscordLink.getPlugin();
bot = plugin.getBot();
}
@Override
public String getCommand() {
return "broadcast";
}
@Override
public String getPermission() {
return null;
}
@Override
public String getDescription() {
return "Broadcast a message to all online players";
}
@Override
public String getSyntax() {
return "broadcast";
}
@Override
public long getChannel() {
return BotConfig.STAFF_COMMAND_CHANNEL;
}
@Override
public void handleCommand(Message message, String sender, String command, String[] args) {
//TODO also send this to the bot channel, optional command args for color and decoration?
String msg = String.join(" ", args);
bot.sendMessageToDiscord(BotConfig.COMMAND_CHANNEL, msg);
Utilities.broadcast(msg);
}
}

View File

@ -1,138 +0,0 @@
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.config.BotConfig;
import com.alttd.proxydiscordlink.config.Config;
import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer;
import com.alttd.proxydiscordlink.util.Utilities;
import com.velocitypowered.api.proxy.Player;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.exceptions.HierarchyException;
import net.luckperms.api.model.user.User;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
public class DiscordLinkCommand extends DiscordCommand {
@Override
public String getCommand() {
return "link";
}
@Override
public String getPermission() {
return null;
}
@Override
public String getDescription() {
return "Link your Minecraft and Discord accounts.";
}
@Override
public String getSyntax() {
return "link <code>";
}
@Override
public long getChannel() {
return BotConfig.LINK_CHANNEL;
}
@Override
public void handleCommand(Message message, String sender, String command, String[] args) {
Member member = message.getMember();
if (member == null)
return;
UUID uuid;
if ((uuid = getUUID(message.getTextChannel(), args.length == 1 ? args[0] : "")) == null)
return;
List<DiscordRole> discordRoles = Utilities.getDiscordRolesForUser(uuid, member);
DiscordLinkPlayer discordLinkPlayer = new DiscordLinkPlayer(
member.getIdLong(),
uuid,
getUsername(uuid),
member.getUser().getName(),
false,
true,
discordRoles.stream()
.map(DiscordRole::getInternalName)
.collect(Collectors.toList()));
linkAccount(discordLinkPlayer, message);
}
private void linkAccount(DiscordLinkPlayer discordLinkPlayer, Message message) {
discordLinkPlayer.updateDiscord(
DiscordRole.getDiscordRoles().stream()
.filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName()))
.collect(Collectors.toList()),
true);
discordLinkPlayer.updateMinecraft(
DiscordRole.getDiscordRoles().stream()
.filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName()))
.collect(Collectors.toList()),
true);
discordLinkPlayer.linkedRole(true);
Player player = DiscordLink.getPlugin().getProxy().getPlayer(discordLinkPlayer.getUuid()).orElse(null);
User user = Utilities.getLuckPerms().getUserManager().getUser(discordLinkPlayer.getUuid());
if (player != null || user != null)
DiscordLink.getPlugin().getBot().changeNick(
message.getGuild().getIdLong(),
message.getMember().getIdLong(),
player == null ?
user.getUsername() :
player.getUsername());
else
DiscordLink.getPlugin().getBot().changeNick(
message.getGuild().getIdLong(),
message.getMember().getIdLong(),
discordLinkPlayer.getUsername());
message.getChannel().sendMessage("You have successfully linked " +
discordLinkPlayer.getUsername() + " with " +
discordLinkPlayer.getDiscordUsername() + "!")
.queue(message1 -> message1.delete().queueAfter(5, TimeUnit.SECONDS));
DiscordLinkPlayer.addDiscordLinkPlayer(discordLinkPlayer);
DiscordLink.getPlugin().getDatabase().syncPlayer(discordLinkPlayer);
DiscordLink.getPlugin().getDatabase().syncRoles(discordLinkPlayer);
DiscordLink.getPlugin().getCache().removeCachedPlayer(discordLinkPlayer.getUuid());
}
private String getUsername(UUID uuid) {
Optional<Player> player = DiscordLink.getPlugin().getProxy().getPlayer(uuid);
if (player.isPresent())
return player.get().getUsername();
User user = Utilities.getLuckPerms().getUserManager().getUser(uuid);
if (user != null)
return user.getUsername();
return "No User";
}
private UUID getUUID(TextChannel channel, String code) {
UUID uuid;
if (code.matches("[0-9]{6}")) {
if ((uuid = DiscordLink.getPlugin().getCache().getUUID(code)) != null)
return uuid;
}
channel.sendMessage("Please use `&link ######` where the #'s are the code you received in-game.")
.queue(message1 -> message1.delete().queueAfter(15, TimeUnit.SECONDS, null, error -> {
}));
return null;
}
}

View File

@ -1,75 +0,0 @@
package com.alttd.proxydiscordlink.bot.commands;
import com.alttd.proxydiscordlink.DiscordLink;
import com.alttd.proxydiscordlink.bot.DiscordCommand;
import com.alttd.proxydiscordlink.config.BotConfig;
import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.MessageChannel;
public class DiscordNick extends DiscordCommand {
@Override
public String getCommand() {
return "nick";
}
@Override
public String getPermission() {
return null;
}
@Override
public String getDescription() {
return "Change your name between your Minecraft username and Minecraft nickname.";
}
@Override
public String getSyntax() {
return "nick <username/nickname>";
}
@Override
public long getChannel() {
return BotConfig.COMMAND_CHANNEL;
}
@Override
public void handleCommand(Message message, String sender, String command, String[] args) {
MessageChannel channel = message.getChannel();
if (args.length != 1) {
channel.sendMessage("The correct syntax is: `" +
BotConfig.prefixMap.get(message.getGuild().getIdLong()) +
getSyntax() + "`.").queue();
return;
}
Member member = message.getMember();
DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(member.getIdLong());
if (discordLinkPlayer == null) {
channel.sendMessage("You aren't linked, please link before using this command.").queue();
return;
}
switch (args[0].toLowerCase()) {
case "username" -> {
member.modifyNickname(discordLinkPlayer.getUsername()).queue();
channel.sendMessage("Your nickname has been set to `" + discordLinkPlayer.getUsername() + "`.").queue();
discordLinkPlayer.setNick(false);
DiscordLink.getPlugin().getDatabase().syncPlayer(discordLinkPlayer);
}
case "nickname" -> {
String nick = DiscordLink.getPlugin().getDatabase().getNick(discordLinkPlayer.getUuid());
if (nick == null || nick.isBlank())
nick = discordLinkPlayer.getUsername();
member.modifyNickname(nick).queue();
channel.sendMessage("Your nickname has been set to `" + nick + "`.").queue();
discordLinkPlayer.setNick(true);
DiscordLink.getPlugin().getDatabase().syncPlayer(discordLinkPlayer);
}
default -> channel.sendMessage("The correct syntax is: `" +
BotConfig.prefixMap.get(message.getGuild().getIdLong()) +
getSyntax() + "`.").queue();
}
}
}

View File

@ -1,138 +0,0 @@
package com.alttd.proxydiscordlink.bot.commands;
import com.alttd.proxydiscordlink.DiscordLink;
import com.alttd.proxydiscordlink.bot.Bot;
import com.alttd.proxydiscordlink.bot.DiscordCommand;
import com.alttd.proxydiscordlink.config.BotConfig;
import com.alttd.proxydiscordlink.util.Utilities;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import com.velocitypowered.api.proxy.server.ServerInfo;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Message;
import net.luckperms.api.LuckPerms;
import net.luckperms.api.model.user.User;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
public class DiscordServerList extends DiscordCommand {
private DiscordLink plugin;
private final Bot bot;
public DiscordServerList() {
plugin = DiscordLink.getPlugin();
bot = plugin.getBot();
}
@Override
public String getCommand() {
return "serverlist";
}
@Override
public String getPermission() {
return null;
}
@Override
public String getDescription() {
return "Lists all online players on the server or a specific server";
}
@Override
public String getSyntax() {
return "serverlist";
}
@Override
public long getChannel() {
return BotConfig.STAFF_COMMAND_CHANNEL;
}
@Override
public void handleCommand(Message message, String sender, String command, String[] args) {
String serverName = "Altitude";
Collection<Player> onlinePlayer = plugin.getProxy().getAllPlayers();
ServerInfo server;
if (args.length != 0) {
Optional<RegisteredServer> registeredServer = plugin.getProxy().getServer(args[0]);
if (registeredServer.isEmpty()) {
return;
}
onlinePlayer = registeredServer.get().getPlayersConnected();
serverName = registeredServer.get().getServerInfo().getName();
}
LuckPerms luckPerms = Utilities.getLuckPerms();
List<User> players = onlinePlayer
.stream()
.map(player -> luckPerms.getUserManager().getUser(player.getUniqueId()))
.sorted((o1, o2) -> {
int i = Integer.compare(luckPerms.getGroupManager().getGroup(o2.getPrimaryGroup()).getWeight().orElse(0), luckPerms.getGroupManager().getGroup(o1.getPrimaryGroup()).getWeight().orElse(0));
return i != 0 ? i : o1.getUsername().compareToIgnoreCase(o2.getUsername());
})
.collect(Collectors.toList());
EmbedBuilder embedBuilder = new EmbedBuilder();
String title = "Players online on " + serverName + ": " + players.size();
embedBuilder.setTitle(title);
String separator = "\n";
String rankname = "";
StringBuilder currentFieldText = new StringBuilder();
int entryCounter = 0;
int totalCharacters = title.length();
int fieldCounter = 0;
Iterator<User> iterator = players.iterator();
while (iterator.hasNext()) {
User user = iterator.next();
if(user != null) {
if(!rankname.equalsIgnoreCase(user.getPrimaryGroup())) {
if (currentFieldText.length() != 0) {
totalCharacters += rankname.length() + currentFieldText.length();
fieldCounter++;
if (totalCharacters > 6000 || fieldCounter > 25) {
bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300);
embedBuilder.clearFields();
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
fieldCounter = 1;
}
embedBuilder.addField(rankname, currentFieldText.toString(), true);
entryCounter = 0;
currentFieldText = new StringBuilder();
}
rankname = Utilities.capitalize(user.getPrimaryGroup());
} else if(rankname.equalsIgnoreCase(user.getPrimaryGroup())) {
currentFieldText.append(separator);
}
if (entryCounter <= 50) {
Optional<Player> optionalPlayer = plugin.getProxy().getPlayer(user.getUniqueId());
if(optionalPlayer.isPresent()) {
Player player = optionalPlayer.get();
currentFieldText.append("`").append(player.getUsername()).append("`");
}
} else if (entryCounter == 51){
currentFieldText.append("...");
}
entryCounter++;
}
}
if (currentFieldText.length() > 0) {
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
fieldCounter++;
if (totalCharacters > 6000 || fieldCounter > 25) {
bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300);
embedBuilder.clearFields();
}
embedBuilder.addField(rankname, currentFieldText.toString(), true);
}
message.delete().queueAfter(300, TimeUnit.SECONDS);
bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300);
}
}

View File

@ -1,152 +0,0 @@
package com.alttd.proxydiscordlink.bot.commands;
import com.alttd.proxydiscordlink.DiscordLink;
import com.alttd.proxydiscordlink.bot.Bot;
import com.alttd.proxydiscordlink.bot.DiscordCommand;
import com.alttd.proxydiscordlink.config.BotConfig;
import com.alttd.proxydiscordlink.util.Utilities;
import com.velocitypowered.api.proxy.Player;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Message;
import net.luckperms.api.LuckPerms;
import net.luckperms.api.model.user.User;
import java.util.*;
import java.util.stream.Collectors;
public class DiscordStaffList extends DiscordCommand {
private DiscordLink plugin;
private final Bot bot;
public DiscordStaffList() {
plugin = DiscordLink.getPlugin();
bot = plugin.getBot();
}
@Override
public String getCommand() {
return "stafflist";
}
@Override
public String getPermission() {
return null;
}
@Override
public String getDescription() {
return "Lists all online staff on the server";
}
@Override
public String getSyntax() {
return "staffList";
}
@Override
public long getChannel() {
return BotConfig.STAFF_COMMAND_CHANNEL;
}
@Override
public void handleCommand(Message message, String sender, String command, String[] args) {
LuckPerms luckPerms = Utilities.getLuckPerms();
List<User> staff = plugin.getProxy().getAllPlayers()
.stream().filter(player-> player.hasPermission("group." + BotConfig.SL_MINIMUMRANK))
.map(player -> luckPerms.getUserManager().getUser(player.getUniqueId()))
.sorted((o1, o2) -> {
int i = Integer.compare(luckPerms.getGroupManager().getGroup(o2.getPrimaryGroup()).getWeight().orElse(0), luckPerms.getGroupManager().getGroup(o1.getPrimaryGroup()).getWeight().orElse(0));
return i != 0 ? i : o1.getUsername().compareToIgnoreCase(o2.getUsername());
})
.collect(Collectors.toList());
EmbedBuilder embedBuilder = new EmbedBuilder();
String title = "Online Staff: " + staff.size() + " - Online Players: " + plugin.getProxy().getAllPlayers().size();
embedBuilder.setTitle(title);
String separator = "\n";
String rankname = "";
Map<String, Integer> onlineStaff = new HashMap<>();
StringBuilder currentFieldText = new StringBuilder();
int entryCounter = 0;
int totalCharacters = title.length();
int fieldCounter = 0;
Iterator<User> iterator = staff.iterator();
while (iterator.hasNext()) {
User user = iterator.next();
if(user != null) {
if(!rankname.equalsIgnoreCase(user.getPrimaryGroup())) {
if (currentFieldText.length() != 0) {
totalCharacters += rankname.length() + currentFieldText.length();
fieldCounter++;
if (totalCharacters > 6000 || fieldCounter > 25) {
bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1);
embedBuilder.clearFields();
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
fieldCounter = 1;
}
embedBuilder.addField(rankname, currentFieldText.toString(), true);
entryCounter = 0;
currentFieldText = new StringBuilder();
}
rankname = Utilities.capitalize(user.getPrimaryGroup());
} else if(rankname.equalsIgnoreCase(user.getPrimaryGroup())) {
currentFieldText.append(separator);
}
Optional<Player> optionalPlayer = plugin.getProxy().getPlayer(user.getUniqueId());
if(optionalPlayer.isPresent()) {
Player player = optionalPlayer.get();
String currentServerName = player.getCurrentServer().isPresent() ? player.getCurrentServer().get().getServerInfo().getName() : "";
if (onlineStaff.containsKey(currentServerName)){
onlineStaff.put(currentServerName, onlineStaff.get(currentServerName) + 1);
} else {
onlineStaff.put(currentServerName, 1);
}
if (entryCounter <= 50) {
currentFieldText.append("`").append(player.getUsername()).append("`");
} else if (entryCounter == 51){
currentFieldText.append("...");
}
entryCounter++;
}
}
}
if (currentFieldText.length() > 0) {
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
fieldCounter++;
if (totalCharacters > 6000 || fieldCounter > 25) {
bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1);
embedBuilder.clearFields();
}
embedBuilder.addField(rankname, currentFieldText.toString(), true);
currentFieldText = new StringBuilder();
}
for (Map.Entry<String, Integer> entry : onlineStaff.entrySet()){
String serverName = entry.getKey();
Integer amountOfStaff = entry.getValue();
// this might error:/
int playerCount = plugin.getProxy().getServer(serverName).isPresent() ? plugin.getProxy().getServer(serverName).get().getPlayersConnected().size() - amountOfStaff : 1;
currentFieldText.append(serverName).append(" online staff per player ")
.append(amountOfStaff).append(" / ").append(Math.max(playerCount, 0)).append(" = ")
.append(playerCount > 0 ? Math.round(((double)amountOfStaff / playerCount) * 100.0) / 100.0 : "-").append("\n");
}
if (currentFieldText.length() > 0) {
rankname = "Staff per server";
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
fieldCounter++;
if (totalCharacters > 6000 || fieldCounter > 25) {
bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1);
embedBuilder.clearFields();
}
embedBuilder.addField(rankname, currentFieldText.toString(), true);
}
bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1);
}
}

View File

@ -1,49 +0,0 @@
package com.alttd.proxydiscordlink.bot.commands;
import com.alttd.proxydiscordlink.bot.DiscordCommand;
import com.alttd.proxydiscordlink.config.BotConfig;
import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
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 long getChannel() {
return BotConfig.LINK_CHANNEL;
}
@Override
public void handleCommand(Message message, String sender, String command, String[] args) {
Member member = message.getMember();
if (member == null)
return;
DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(member.getIdLong());
if (discordLinkPlayer == null) {
message.getChannel().sendMessage("Your accounts aren't linked.").queue();
return;
}
discordLinkPlayer.unlinkDiscordLinkPlayer();
message.getChannel().sendMessage("Your Discord and Minecraft accounts have been unlinked.").queue();
}
}

View File

@ -1,77 +0,0 @@
package com.alttd.proxydiscordlink.bot.listeners;
import com.alttd.proxydiscordlink.DiscordLink;
import com.alttd.proxydiscordlink.bot.Bot;
import com.alttd.proxydiscordlink.bot.DiscordCommand;
import com.alttd.proxydiscordlink.config.BotConfig;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import java.util.Arrays;
public class DiscordMessageListener extends ListenerAdapter {
private final DiscordLink plugin;
private final Bot bot;
public DiscordMessageListener() {
plugin = DiscordLink.getPlugin();
bot = plugin.getBot();
}
@Override
public void onMessageReceived(MessageReceivedEvent event) {
if (!event.isFromGuild())
return;
if (event.getAuthor() == event.getJDA().getSelfUser())
return;
if (event.isWebhookMessage())
return;
/*
if (event.getMessage().getChannel().getIdLong() == BotConfig.COMMAND_CHANNEL) {
String content = event.getMessage().getContentRaw();
if (content.startsWith(BotConfig.prefixMap.get(event.getGuild().getIdLong())) && content.length() > 1) {
String[] split = content.split(" ");
String cmd = split[0].substring(1).toLowerCase();
String[] args = Arrays.copyOfRange(split, 1, split.length);
for(DiscordCommand command : DiscordCommand.getCommands()) {
if(!command.getCommand().equalsIgnoreCase(cmd))
continue;
if(command.getPermission() != null) {
// TODO permission check? do we need this?
}
command.handleCommand(event.getMessage(), event.getAuthor().getName(), cmd, args);
}
}
} else if (event.getMessage().getChannel().getIdLong() == BotConfig.LINK_CHANNEL) {
String content = event.getMessage().getContentRaw();
String[] split = content.split(" ");
String cmd = split[0].substring(1).toLowerCase();
String[] args = Arrays.copyOfRange(split, 1, split.length);
if (cmd.equalsIgnoreCase("link"))
DiscordCommand.getCommands().stream()
.filter(discordCommand -> discordCommand.getCommand().equals("link"))
.findFirst()
.ifPresent(discordCommand -> discordCommand.handleCommand(event.getMessage(), event.getAuthor().getName(), cmd, args));
}
*/
String content = event.getMessage().getContentRaw();
if (!BotConfig.prefixMap.containsKey(event.getGuild().getIdLong())) return; // early return
if (content.startsWith(BotConfig.prefixMap.get(event.getGuild().getIdLong())) && content.length() > 1) {
String[] split = content.split(" ");
String cmd = split[0].substring(1).toLowerCase();
String[] args = Arrays.copyOfRange(split, 1, split.length);
for (DiscordCommand command : DiscordCommand.getCommands()) {
if (!command.getCommand().equalsIgnoreCase(cmd))
continue;
if (!(event.getMessage().getChannel().getIdLong() == command.getChannel()))
continue;
if (command.getPermission() != null) {
// TODO permission check? do we need this?
}
command.handleCommand(event.getMessage(), event.getAuthor().getName(), cmd, args);
}
}
}
}

View File

@ -3,6 +3,7 @@ package com.alttd.proxydiscordlink.objects;
import com.alttd.proxydiscordlink.DiscordLink;
import com.alttd.proxydiscordlink.bot.objects.DiscordRole;
import com.alttd.proxydiscordlink.config.BotConfig;
import com.alttd.proxydiscordlink.database.Database;
import com.alttd.proxydiscordlink.util.Utilities;
import net.luckperms.api.model.user.UserManager;
import net.luckperms.api.node.types.InheritanceNode;
@ -130,6 +131,7 @@ public class DiscordLinkPlayer {
.collect(Collectors.toList()),
false);
linkedRole(false);
DiscordLink.getPlugin().getDatabase().removeLinkedAccount(this);
}
//Static stuff