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;
|
if (embedBuilder.isEmpty()) return;
|
||||||
try {
|
try {
|
||||||
if (secondsTillDelete < 0){
|
if (secondsTillDelete < 0) {
|
||||||
channel.sendMessage(embedBuilder.build()).queue();
|
channel.sendMessage(embedBuilder.build()).queue();
|
||||||
} else {
|
} else {
|
||||||
channel.sendMessage(embedBuilder.build()).queue(message -> message.delete().queueAfter(secondsTillDelete, TimeUnit.SECONDS));
|
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);
|
Guild guild = jda.getGuildById(guildId);
|
||||||
if (guild == null)
|
if (guild == null)
|
||||||
return false;
|
return;
|
||||||
Role role = guild.getRoleById(roleId);
|
Role role = guild.getRoleById(roleId);
|
||||||
if (role == null)
|
if (role == null)
|
||||||
return false;
|
return;
|
||||||
Member member = guild.getMemberById(userId);
|
Member member = guild.getMemberById(userId);
|
||||||
if (member == null)
|
if (member == null) {
|
||||||
return false;
|
guild.retrieveMemberById(userId).queue(m -> addRole(guild, m, role));
|
||||||
guild.addRoleToMember(member, role).queue();
|
return;
|
||||||
return true;
|
}
|
||||||
|
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);
|
Guild guild = jda.getGuildById(guildId);
|
||||||
if (guild == null)
|
if (guild == null)
|
||||||
return false;
|
return;
|
||||||
Role role = guild.getRoleById(roleId);
|
Role role = guild.getRoleById(roleId);
|
||||||
if (role == null)
|
if (role == null)
|
||||||
return false;
|
return;
|
||||||
Member member = guild.getMemberById(userId);
|
Member member = guild.getMemberById(userId);
|
||||||
if (member == null)
|
if (member == null) {
|
||||||
return false;
|
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();
|
guild.removeRoleFromMember(member, role).queue();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean changeNick(long guildId, long userId, String nickname) {
|
public boolean changeNick(long guildId, long userId, String nickname) {
|
||||||
|
|
@ -134,7 +144,7 @@ public class Bot {
|
||||||
return false;
|
return false;
|
||||||
try {
|
try {
|
||||||
guild.modifyNickname(member, nickname).queue();
|
guild.modifyNickname(member, nickname).queue();
|
||||||
} catch (HierarchyException ignored){
|
} catch (HierarchyException ignored) {
|
||||||
ALogger.warn("I can't modify the nickname of those above me.");
|
ALogger.warn("I can't modify the nickname of those above me.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,11 @@ public abstract class DiscordCommand {
|
||||||
public static void loadCommands() {
|
public static void loadCommands() {
|
||||||
commands = new ArrayList<>();
|
commands = new ArrayList<>();
|
||||||
|
|
||||||
loadCommand(new DiscordStaffList(),
|
loadCommand(new DiscordLinkCommand(),
|
||||||
new DiscordServerList(),
|
|
||||||
new DiscordLinkCommand(),
|
|
||||||
new DiscordUnlink(),
|
new DiscordUnlink(),
|
||||||
new DiscordNick()
|
new DiscordNick()
|
||||||
|
// new DiscordStaffList(),
|
||||||
|
// new DiscordServerList(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,12 @@ import com.alttd.proxydiscordlink.DiscordLink;
|
||||||
|
|
||||||
public class DiscordModifyRole {
|
public class DiscordModifyRole {
|
||||||
|
|
||||||
public static boolean discordAddRole(long userId, long roleId, long guildId) {
|
public static void discordAddRole(long userId, long roleId, long guildId) {
|
||||||
return DiscordLink.getPlugin().getBot().addRole(userId, roleId, 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;
|
return;
|
||||||
|
|
||||||
List<DiscordRole> discordRoles = Utilities.getDiscordRolesForUser(uuid, member);
|
List<DiscordRole> discordRoles = Utilities.getDiscordRolesForUser(uuid, member);
|
||||||
|
List<DiscordRole> minecraftRanks = Utilities.getMinecraftRolesForUser(uuid);
|
||||||
if (discordRoles == null)
|
if (discordRoles == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,8 @@ public class DiscordNick extends DiscordCommand {
|
||||||
case "username" -> {
|
case "username" -> {
|
||||||
member.modifyNickname(discordLinkPlayer.getUsername()).queue();
|
member.modifyNickname(discordLinkPlayer.getUsername()).queue();
|
||||||
channel.sendMessage("Your nickname has been set to `" + discordLinkPlayer.getUsername() + "`.").queue();
|
channel.sendMessage("Your nickname has been set to `" + discordLinkPlayer.getUsername() + "`.").queue();
|
||||||
|
discordLinkPlayer.setNick(false);
|
||||||
|
DiscordLink.getPlugin().getDatabase().syncPlayer(discordLinkPlayer);
|
||||||
}
|
}
|
||||||
case "nickname" -> {
|
case "nickname" -> {
|
||||||
String nick = DiscordLink.getPlugin().getDatabase().getNick(discordLinkPlayer.getUuid());
|
String nick = DiscordLink.getPlugin().getDatabase().getNick(discordLinkPlayer.getUuid());
|
||||||
|
|
@ -57,6 +59,8 @@ public class DiscordNick extends DiscordCommand {
|
||||||
nick = discordLinkPlayer.getUsername();
|
nick = discordLinkPlayer.getUsername();
|
||||||
member.modifyNickname(nick).queue();
|
member.modifyNickname(nick).queue();
|
||||||
channel.sendMessage("Your nickname has been set to `" + 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: `" +
|
default -> channel.sendMessage("The correct syntax is: `" +
|
||||||
BotConfig.prefixMap.get(message.getGuild().getIdLong()) +
|
BotConfig.prefixMap.get(message.getGuild().getIdLong()) +
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ public class DiscordRoleListener extends ListenerAdapter {
|
||||||
@Override
|
@Override
|
||||||
public void onGuildMemberRoleAdd(@NotNull GuildMemberRoleAddEvent event) {
|
public void onGuildMemberRoleAdd(@NotNull GuildMemberRoleAddEvent event) {
|
||||||
List<DiscordRole> added_roles = DiscordRole.getDiscordRoles().stream()
|
List<DiscordRole> added_roles = DiscordRole.getDiscordRoles().stream()
|
||||||
|
.filter(DiscordRole::isUpdateToMinecraft)
|
||||||
.filter(discordRole -> event.getRoles().stream()
|
.filter(discordRole -> event.getRoles().stream()
|
||||||
.anyMatch(role -> role.getIdLong() == discordRole.getId()))
|
.anyMatch(role -> role.getIdLong() == discordRole.getId()))
|
||||||
.collect(Collectors.toList());
|
.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.NodeType;
|
||||||
import net.luckperms.api.node.types.InheritanceNode;
|
import net.luckperms.api.node.types.InheritanceNode;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Random;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class Utilities {
|
public class Utilities {
|
||||||
|
|
@ -131,4 +128,21 @@ public class Utilities {
|
||||||
})
|
})
|
||||||
.collect(Collectors.toList());
|
.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