sxcybot

Discord bot for OSRS based channels
git clone git://git.wimdupont.com/sxcybot.git
Log | Files | Refs | README | LICENSE

commit f25f5e50207ae1095b0bf52687e87acc96a73ab0
parent b82cea9789a7ff96a3fde96c0da5a1e421c32603
Author: Wim Dupont <wim@wimdupont.com>
Date:   Sat,  1 Nov 2025 16:29:30 +0100

fix pvm auto adding duplicate discordId

Diffstat:
Msrc/main/java/com/wimdupont/sxcybot/services/guild/pvmrole/PvmRoleUserAutoAddService.java | 22++++++++++++++--------
1 file changed, 14 insertions(+), 8 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 @@ -11,6 +11,7 @@ import net.dv8tion.jda.api.entities.MessageEmbed.Field; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DataIntegrityViolationException; import org.springframework.stereotype.Service; import java.awt.Color; @@ -56,15 +57,20 @@ public class PvmRoleUserAutoAddService { logger.warn("Multiple users found for rsn {}", membership.player().username()); } if (!discordUsers.isEmpty()) { - 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(); + 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());