commit 51cfce173296faf0e8327d0c8c24450ae0bda556
parent f25f5e50207ae1095b0bf52687e87acc96a73ab0
Author: Wim Dupont <wim@wimdupont.com>
Date: Sat, 1 Nov 2025 16:59:08 +0100
fix loading discordmembers
Diffstat:
1 file changed, 43 insertions(+), 38 deletions(-)
diff --git a/src/main/java/com/wimdupont/sxcybot/services/guild/pvmrole/PvmRoleUserAutoAddService.java b/src/main/java/com/wimdupont/sxcybot/services/guild/pvmrole/PvmRoleUserAutoAddService.java
@@ -43,48 +43,53 @@ public class PvmRoleUserAutoAddService {
var group = wiseOldManClient.getGroup(channel);
var obscureList = new HashMap<String, List<String>>();
var unknownList = new ArrayList<String>();
- channelDetailService.getJda().getGuilds().forEach(guild -> {
- for (MembershipDto membership : group.memberships()) {
- try {
- pvmRoleUserService.findByRsn(membership.player().username());
- } catch (EntityNotFoundException e) {
- var discordUsers = guild.getMembersByNickname(membership.player().username(), true);
- if (discordUsers.size() > 1) {
- obscureList.put(membership.player().username(),
- discordUsers.stream()
- .map(f -> f.getUser().getEffectiveName())
- .toList());
- logger.warn("Multiple users found for rsn {}", membership.player().username());
- }
- if (!discordUsers.isEmpty()) {
+ channelDetailService.getJda().getGuilds().forEach(guild ->
+ guild.loadMembers().onSuccess(discordMembers -> {
+ for (MembershipDto membership : group.memberships()) {
try {
- var pvmRoleUser = pvmRoleUserService.save(PvmRoleUser.Builder.newBuilder()
- .discordId(discordUsers.getFirst().getId())
- .rsn(membership.player().username())
- .build());
- try {
- pvmRoleSnapshotComparatorService.takeSnapshot(channel, pvmRoleUser, true, true);
- } catch (EntityNotFoundException ex) {
- logger.error("No snapshot taken for {} : {}", pvmRoleUser, ex.getMessage());
- channel.sendMessage(String.format("Error whilst taking snapshot for %s.", pvmRoleUser.getRsn())).queue();
+ pvmRoleUserService.findByRsn(membership.player().username());
+ logger.info("User with rsn {} already added.", membership.player().username());
+ } catch (EntityNotFoundException e) {
+ var discordUsers = discordMembers.stream()
+ .filter(discordMember -> membership.player().username().equalsIgnoreCase(discordMember.getNickname()))
+ .toList();
+ if (discordUsers.size() > 1) {
+ obscureList.put(membership.player().username(),
+ discordUsers.stream()
+ .map(f -> f.getUser().getEffectiveName())
+ .toList());
+ logger.warn("Multiple users found for rsn {}", membership.player().username());
+ }
+ if (!discordUsers.isEmpty()) {
+ try {
+ var pvmRoleUser = pvmRoleUserService.save(PvmRoleUser.Builder.newBuilder()
+ .discordId(discordUsers.getFirst().getId())
+ .rsn(membership.player().username())
+ .build());
+ try {
+ pvmRoleSnapshotComparatorService.takeSnapshot(channel, pvmRoleUser, true, true);
+ } catch (EntityNotFoundException ex) {
+ logger.error("No snapshot taken for {} : {}", pvmRoleUser, ex.getMessage());
+ channel.sendMessage(String.format("Error whilst taking snapshot for %s.", pvmRoleUser.getRsn())).queue();
+ }
+ } catch (DataIntegrityViolationException ex) {
+ logger.error("User ({}) not added with rsn {} : {}",
+ discordUsers.getFirst().getId(), membership.player().username(), ex.getMessage());
+ }
+ } else {
+ unknownList.add(membership.player().username());
+ logger.warn("No users found for rsn {}", membership.player().username());
}
- } catch (DataIntegrityViolationException ex) {
- logger.error("User ({}) not added with rsn {} : {}",
- discordUsers.getFirst().getId(), membership.player().username(), ex.getMessage());
}
- } else {
- unknownList.add(membership.player().username());
- logger.warn("No users found for rsn {}", membership.player().username());
}
- }
- }
- if (!obscureList.isEmpty()) {
- postObscures(channel, obscureList);
- }
- if (!unknownList.isEmpty()) {
- postUnknowns(channel, unknownList);
- }
- });
+ if (!obscureList.isEmpty()) {
+ postObscures(channel, obscureList);
+ }
+ if (!unknownList.isEmpty()) {
+ postUnknowns(channel, unknownList);
+ }
+ })
+ );
}
private void postObscures(TextChannel channel, HashMap<String, List<String>> obscureList) {