From 80a6c5df7ed58cd9e1352ac8d38cc7b7dcceacc9 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Mon, 20 Sep 2021 23:41:14 +0200 Subject: [PATCH] Fixed issues with discordlink --- .../com/alttd/proxydiscordlink/bot/Bot.java | 24 +++++++++++--- .../bot/commands/DiscordLinkCommand.java | 3 -- .../bot/listeners/DiscordMessageListener.java | 2 +- .../minecraft/listeners/WhitelistKick.java | 8 +++-- .../proxydiscordlink/util/Utilities.java | 33 +++++-------------- 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java b/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java index 9224a1d..29cb5e5 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/Bot.java @@ -99,11 +99,15 @@ public class Bot { public void addRole(long userId, long roleId, long guildId) { Guild guild = jda.getGuildById(guildId); - if (guild == null) + if (guild == null) { + ALogger.warn("Unable to find guild " + guildId); return; + } Role role = guild.getRoleById(roleId); - if (role == null) + if (role == null) { + ALogger.warn("Unable to find role " + roleId); return; + } Member member = guild.getMemberById(userId); if (member == null) { guild.retrieveMemberById(userId).queue(m -> addRole(guild, m, role)); @@ -113,16 +117,24 @@ public class Bot { } private void addRole(Guild guild, Member member, Role role) { + if (member == null) { + ALogger.warn("Unable to find member when adding role"); + return; + } guild.addRoleToMember(member, role).queue(); } public void removeRole(long userId, long roleId, long guildId) { Guild guild = jda.getGuildById(guildId); - if (guild == null) + if (guild == null) { + ALogger.warn("Unable to find guild " + guildId); return; + } Role role = guild.getRoleById(roleId); - if (role == null) + if (role == null) { + ALogger.warn("Unable to find role " + roleId); return; + } Member member = guild.getMemberById(userId); if (member == null) { guild.retrieveMemberById(userId).queue(m -> removeRole(guild, m, role)); @@ -132,6 +144,10 @@ public class Bot { } private void removeRole(Guild guild, Member member, Role role) { + if (member == null) { + ALogger.warn("Unable to find member when removing role"); + return; + } guild.removeRoleFromMember(member, role).queue(); } diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java index 0223db4..6414d36 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/commands/DiscordLinkCommand.java @@ -50,9 +50,6 @@ public class DiscordLinkCommand extends DiscordCommand { return; List discordRoles = Utilities.getDiscordRolesForUser(uuid, member); - List minecraftRanks = Utilities.getMinecraftRolesForUser(uuid); - if (discordRoles == null) - return; DiscordLinkPlayer discordLinkPlayer = new DiscordLinkPlayer( member.getIdLong(), diff --git a/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java b/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java index 0943aa1..4649b9e 100644 --- a/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java +++ b/src/main/java/com/alttd/proxydiscordlink/bot/listeners/DiscordMessageListener.java @@ -28,7 +28,7 @@ public class DiscordMessageListener extends ListenerAdapter { if (event.isWebhookMessage()) { return; } - if (event.getMessage().getChannel().getIdLong() == BotConfig.LINK_CHANNEL) { + 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(" "); diff --git a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/WhitelistKick.java b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/WhitelistKick.java index 0a0b0a5..040f416 100644 --- a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/WhitelistKick.java +++ b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/WhitelistKick.java @@ -6,7 +6,8 @@ import com.alttd.proxydiscordlink.util.Utilities; import com.alttd.shutdowninfo.events.WhitelistKickEvent; import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.proxy.Player; -import net.kyori.adventure.text.minimessage.Template; + +import java.util.HashMap; public class WhitelistKick { @@ -20,8 +21,9 @@ public class WhitelistKick { DiscordLink.getPlugin().getCache().removeCachedPlayer(player.getUniqueId()); DiscordLink.getPlugin().getCache() .cacheCode(player.getUniqueId(), authCode); - - event.appendTemplate(Template.of("code", authCode)); + HashMap stringStringHashMap = new HashMap<>(); + stringStringHashMap.put("code", authCode); + event.appendTemplate(stringStringHashMap); event.appendMessage("\n\n" + Config.WHITELIST_LINK_MESSAGE); } } \ No newline at end of file diff --git a/src/main/java/com/alttd/proxydiscordlink/util/Utilities.java b/src/main/java/com/alttd/proxydiscordlink/util/Utilities.java index d34ee27..0f218c4 100644 --- a/src/main/java/com/alttd/proxydiscordlink/util/Utilities.java +++ b/src/main/java/com/alttd/proxydiscordlink/util/Utilities.java @@ -103,17 +103,19 @@ public class Utilities { public static List getDiscordRolesForUser(UUID uuid, Member member) { User user = Utilities.getLuckPerms().getUserManager().getUser(uuid); + List groups; + List roles = member.getRoles(); + if (user == null) { ALogger.error("Got null user from LuckPerms when processing " + uuid + " during linking."); - return null; + groups = new ArrayList<>(); + } else { + groups = user.getNodes().stream() + .filter(node -> node instanceof InheritanceNode) + .map(node -> (InheritanceNode) node) + .collect(Collectors.toList()); } - List groups = user.getNodes().stream() - .filter(node -> node instanceof InheritanceNode) - .map(node -> (InheritanceNode) node) - .collect(Collectors.toList()); - List roles = member.getRoles(); - return DiscordRole.getDiscordRoles().stream() .filter(discordRole -> { for (Role role : roles) { @@ -128,21 +130,4 @@ public class Utilities { }) .collect(Collectors.toList()); } - - public static List getMinecraftRolesForUser(UUID uuid) { - User user = getLuckPerms().getUserManager().getUser(uuid); - List roles = new ArrayList<>(); - if (user == null) - return roles; - - user.getNodes().stream() - .filter(node -> node instanceof InheritanceNode) - .map(node -> ((InheritanceNode) node).getGroupName()) - .collect(Collectors.toList()) - .forEach(lpName -> DiscordRole.getDiscordRoles().stream() - .filter(discordRole -> discordRole.getLuckpermsName().equals(lpName)) - .findFirst() - .ifPresent(roles::add)); - return roles; - } }