Fixed issues with discordlink

This commit is contained in:
Teriuihi 2021-09-20 23:41:14 +02:00
parent 1a70fd4fd4
commit 80a6c5df7e
5 changed files with 35 additions and 35 deletions

View File

@ -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();
}

View File

@ -50,9 +50,6 @@ public class DiscordLinkCommand extends DiscordCommand {
return;
List<DiscordRole> discordRoles = Utilities.getDiscordRolesForUser(uuid, member);
List<DiscordRole> minecraftRanks = Utilities.getMinecraftRolesForUser(uuid);
if (discordRoles == null)
return;
DiscordLinkPlayer discordLinkPlayer = new DiscordLinkPlayer(
member.getIdLong(),

View File

@ -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(" ");

View File

@ -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<String, String> stringStringHashMap = new HashMap<>();
stringStringHashMap.put("code", authCode);
event.appendTemplate(stringStringHashMap);
event.appendMessage("\n\n" + Config.WHITELIST_LINK_MESSAGE);
}
}

View File

@ -103,17 +103,19 @@ public class Utilities {
public static List<DiscordRole> getDiscordRolesForUser(UUID uuid, Member member) {
User user = Utilities.getLuckPerms().getUserManager().getUser(uuid);
List<InheritanceNode> groups;
List<Role> 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<InheritanceNode> groups = user.getNodes().stream()
.filter(node -> node instanceof InheritanceNode)
.map(node -> (InheritanceNode) node)
.collect(Collectors.toList());
List<Role> 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<DiscordRole> getMinecraftRolesForUser(UUID uuid) {
User user = getLuckPerms().getUserManager().getUser(uuid);
List<DiscordRole> 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;
}
}