From 2c31fa1c1e8443ea2c4219b2748072497287cdce Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Sat, 21 Aug 2021 15:50:11 +0200 Subject: [PATCH] [AB-xxx] not always creating a user instance in the experience listener adding logging in case the warn decay notification fails --- .../listener/JoiningUserRoleListener.java | 22 ++++++++++--------- .../moderation/service/WarnServiceBean.java | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/listener/JoiningUserRoleListener.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/listener/JoiningUserRoleListener.java index d5d2f5ed3..ee3aa27ae 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/listener/JoiningUserRoleListener.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/listener/JoiningUserRoleListener.java @@ -37,16 +37,18 @@ public class JoiningUserRoleListener implements AsyncJoinListener { @Override public DefaultListenerResult execute(MemberJoinModel model) { - AUserInAServer userInAServer = userInServerManagementService.loadOrCreateUser(model.getServerId(), model.getJoiningUser().getUserId()); - Optional userExperienceOptional = userExperienceManagementService.findByUserInServerIdOptional(userInAServer.getUserInServerId()); - if(userExperienceOptional.isPresent()) { - log.info("User {} joined {} with previous experience. Setting up experience role again (if necessary).", model.getJoiningUser().getUserId(), model.getServerId()); - userExperienceService.syncForSingleUser(userExperienceOptional.get()).thenAccept(result -> - log.info("Finished re-assigning experience for re-joining user {} in server {}.", model.getJoiningUser().getUserId(), model.getServerId()) - ); - } else { - log.info("Joined user {} in server {} does not have any previous experience. Not setting up anything.", model.getJoiningUser().getUserId(), model.getServerId()); - } + Optional userInAServerOptional = userInServerManagementService.loadUserOptional(model.getServerId(), model.getJoiningUser().getUserId()); + userInAServerOptional.ifPresent(aUserInAServer -> { + Optional userExperienceOptional = userExperienceManagementService.findByUserInServerIdOptional(aUserInAServer.getUserInServerId()); + if(userExperienceOptional.isPresent()) { + log.info("User {} joined {} with previous experience. Setting up experience role again (if necessary).", model.getJoiningUser().getUserId(), model.getServerId()); + userExperienceService.syncForSingleUser(userExperienceOptional.get()).thenAccept(result -> + log.info("Finished re-assigning experience for re-joining user {} in server {}.", model.getJoiningUser().getUserId(), model.getServerId()) + ); + } else { + log.info("Joined user {} in server {} does not have any previous experience. Not setting up anything.", model.getJoiningUser().getUserId(), model.getServerId()); + } + }); return DefaultListenerResult.PROCESSED; } diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/WarnServiceBean.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/WarnServiceBean.java index db64d1b27..5811510ab 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/WarnServiceBean.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/WarnServiceBean.java @@ -188,7 +188,7 @@ public class WarnServiceBean implements WarnService { MessageToSend messageToSend = templateService.renderEmbedTemplate(WARN_DECAY_NOTIFICATION_TEMPLATE_KEY, model, serverId); log.info("Notifying user {} in server {} about decayed warning {}.", userId, serverId, warningId); notificationFutures.add(messageService.sendMessageToSendToUser(memberToSendTo.getUser(), messageToSend).exceptionally(throwable -> { - log.error("Failed to send warn decay message to user {} in server {} to notify about decay warning {}.", userId, server, warningId); + log.error("Failed to send warn decay message to user {} in server {} to notify about decay warning {}.", userId, server.getId(), warningId, throwable); return null; })); } else {