diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java b/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java index e135048..e58b4e3 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java @@ -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) { diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java deleted file mode 100644 index d1b1add..0000000 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordBroadCast.java +++ /dev/null @@ -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); - } -} diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java deleted file mode 100644 index aa7793d..0000000 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java +++ /dev/null @@ -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 "; - } - - @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 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 = 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; - } -} diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java deleted file mode 100644 index 939573a..0000000 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordNick.java +++ /dev/null @@ -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 "; - } - - @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(); - } - } -} diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java deleted file mode 100644 index 918f399..0000000 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordServerList.java +++ /dev/null @@ -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 onlinePlayer = plugin.getProxy().getAllPlayers(); - ServerInfo server; - if (args.length != 0) { - Optional registeredServer = plugin.getProxy().getServer(args[0]); - if (registeredServer.isEmpty()) { - return; - } - onlinePlayer = registeredServer.get().getPlayersConnected(); - serverName = registeredServer.get().getServerInfo().getName(); - } - LuckPerms luckPerms = Utilities.getLuckPerms(); - List 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 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 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); - } -} diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java deleted file mode 100644 index dac723e..0000000 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordStaffList.java +++ /dev/null @@ -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 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 onlineStaff = new HashMap<>(); - StringBuilder currentFieldText = new StringBuilder(); - int entryCounter = 0; - int totalCharacters = title.length(); - int fieldCounter = 0; - - Iterator 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 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 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); - } -} diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java deleted file mode 100644 index 2adf311..0000000 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordUnlink.java +++ /dev/null @@ -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(); - } -} diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java b/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java deleted file mode 100644 index 2cf550b..0000000 --- a/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java +++ /dev/null @@ -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); - } - } - } - -} diff --git a/src/main/java/com/alttd/proxydiscordlink/objects/DiscordLinkPlayer.java b/src/main/java/com/alttd/proxydiscordlink/objects/DiscordLinkPlayer.java index 39dcdab..7dd60a6 100644 --- a/src/main/java/com/alttd/proxydiscordlink/objects/DiscordLinkPlayer.java +++ b/src/main/java/com/alttd/proxydiscordlink/objects/DiscordLinkPlayer.java @@ -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