Fixed some minor syncing issues
This commit is contained in:
parent
1c2eeec78a
commit
9744eddd35
|
|
@ -87,7 +87,7 @@ public class Bot {
|
|||
|
||||
if (embedBuilder.isEmpty()) return;
|
||||
try {
|
||||
if (secondsTillDelete < 0){
|
||||
if (secondsTillDelete < 0) {
|
||||
channel.sendMessage(embedBuilder.build()).queue();
|
||||
} else {
|
||||
channel.sendMessage(embedBuilder.build()).queue(message -> message.delete().queueAfter(secondsTillDelete, TimeUnit.SECONDS));
|
||||
|
|
@ -97,32 +97,42 @@ public class Bot {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean addRole(long userId, long roleId, long guildId) {
|
||||
public void addRole(long userId, long roleId, long guildId) {
|
||||
Guild guild = jda.getGuildById(guildId);
|
||||
if (guild == null)
|
||||
return false;
|
||||
return;
|
||||
Role role = guild.getRoleById(roleId);
|
||||
if (role == null)
|
||||
return false;
|
||||
return;
|
||||
Member member = guild.getMemberById(userId);
|
||||
if (member == null)
|
||||
return false;
|
||||
guild.addRoleToMember(member, role).queue();
|
||||
return true;
|
||||
if (member == null) {
|
||||
guild.retrieveMemberById(userId).queue(m -> addRole(guild, m, role));
|
||||
return;
|
||||
}
|
||||
addRole(guild, member, role);
|
||||
}
|
||||
|
||||
public boolean removeRole(long userId, long roleId, long guildId) {
|
||||
private void addRole(Guild guild, Member member, Role role) {
|
||||
guild.addRoleToMember(member, role).queue();
|
||||
}
|
||||
|
||||
public void removeRole(long userId, long roleId, long guildId) {
|
||||
Guild guild = jda.getGuildById(guildId);
|
||||
if (guild == null)
|
||||
return false;
|
||||
return;
|
||||
Role role = guild.getRoleById(roleId);
|
||||
if (role == null)
|
||||
return false;
|
||||
return;
|
||||
Member member = guild.getMemberById(userId);
|
||||
if (member == null)
|
||||
return false;
|
||||
if (member == null) {
|
||||
guild.retrieveMemberById(userId).queue(m -> removeRole(guild, m, role));
|
||||
return;
|
||||
}
|
||||
removeRole(guild, member, role);
|
||||
}
|
||||
|
||||
private void removeRole(Guild guild, Member member, Role role) {
|
||||
guild.removeRoleFromMember(member, role).queue();
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean changeNick(long guildId, long userId, String nickname) {
|
||||
|
|
@ -134,7 +144,7 @@ public class Bot {
|
|||
return false;
|
||||
try {
|
||||
guild.modifyNickname(member, nickname).queue();
|
||||
} catch (HierarchyException ignored){
|
||||
} catch (HierarchyException ignored) {
|
||||
ALogger.warn("I can't modify the nickname of those above me.");
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,11 +21,11 @@ public abstract class DiscordCommand {
|
|||
public static void loadCommands() {
|
||||
commands = new ArrayList<>();
|
||||
|
||||
loadCommand(new DiscordStaffList(),
|
||||
new DiscordServerList(),
|
||||
new DiscordLinkCommand(),
|
||||
loadCommand(new DiscordLinkCommand(),
|
||||
new DiscordUnlink(),
|
||||
new DiscordNick()
|
||||
// new DiscordStaffList(),
|
||||
// new DiscordServerList(),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,12 @@ import com.alttd.proxydiscordlink.DiscordLink;
|
|||
|
||||
public class DiscordModifyRole {
|
||||
|
||||
public static boolean discordAddRole(long userId, long roleId, long guildId) {
|
||||
return DiscordLink.getPlugin().getBot().addRole(userId, roleId, guildId);
|
||||
public static void discordAddRole(long userId, long roleId, long guildId) {
|
||||
DiscordLink.getPlugin().getBot().addRole(userId, roleId, guildId);
|
||||
}
|
||||
|
||||
public static void discordRemoveRole(long userId, long roleId, long guildId) {
|
||||
DiscordLink.getPlugin().getBot().removeRole(userId, roleId, guildId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ public class DiscordLinkCommand extends DiscordCommand {
|
|||
return;
|
||||
|
||||
List<DiscordRole> discordRoles = Utilities.getDiscordRolesForUser(uuid, member);
|
||||
List<DiscordRole> minecraftRanks = Utilities.getMinecraftRolesForUser(uuid);
|
||||
if (discordRoles == null)
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -50,6 +50,8 @@ public class DiscordNick extends DiscordCommand {
|
|||
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());
|
||||
|
|
@ -57,6 +59,8 @@ public class DiscordNick extends DiscordCommand {
|
|||
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()) +
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ public class DiscordRoleListener extends ListenerAdapter {
|
|||
@Override
|
||||
public void onGuildMemberRoleAdd(@NotNull GuildMemberRoleAddEvent event) {
|
||||
List<DiscordRole> added_roles = DiscordRole.getDiscordRoles().stream()
|
||||
.filter(DiscordRole::isUpdateToMinecraft)
|
||||
.filter(discordRole -> event.getRoles().stream()
|
||||
.anyMatch(role -> role.getIdLong() == discordRole.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
|
|
|||
|
|
@ -14,10 +14,7 @@ import net.luckperms.api.model.user.User;
|
|||
import net.luckperms.api.node.NodeType;
|
||||
import net.luckperms.api.node.types.InheritanceNode;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class Utilities {
|
||||
|
|
@ -131,4 +128,21 @@ 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