Fixed issues with discordlink
This commit is contained in:
parent
1a70fd4fd4
commit
80a6c5df7e
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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(" ");
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user