From 876fbc01d9dcb23ba744e9fd75f26dfaa139317e Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Sun, 14 Feb 2021 19:56:05 +0100 Subject: [PATCH] [AB-120] adding jump link to modmail notification --- .../abstracto/modmail/listener/ModMailMessageListener.java | 3 +-- .../modmail/service/ModMailThreadServiceBean.java | 7 ++++--- .../modmail/models/template/ModMailNotificationModel.java | 5 +++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailMessageListener.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailMessageListener.java index b973b2255..a3db72407 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailMessageListener.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailMessageListener.java @@ -14,7 +14,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.entities.Message; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; @@ -57,7 +56,7 @@ public class ModMailMessageListener implements PrivateMessageReceivedListener { return null; }); } else { - log.info("User {} does not have an open modmail thread. Crating prompt.", user.getId()); + log.info("User {} does not have an open modmail thread. Creating prompt.", user.getId()); modMailThreadService.createModMailPrompt(user, message); } } diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/service/ModMailThreadServiceBean.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/service/ModMailThreadServiceBean.java index 68c46fb30..d6e840961 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/service/ModMailThreadServiceBean.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/service/ModMailThreadServiceBean.java @@ -169,7 +169,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService { /** * The emoji used when the user can decide for a server to open a mod mail thread in. */ - private List NUMBER_EMOJI = Arrays.asList("\u0031\u20e3", "\u0032\u20e3", "\u0033\u20e3", + private static List NUMBER_EMOJI = Arrays.asList("\u0031\u20e3", "\u0032\u20e3", "\u0033\u20e3", "\u0034\u20e3", "\u0035\u20e3", "\u0036\u20e3", "\u0037\u20e3", "\u0038\u20e3", "\u0039\u20e3", "\u0040\u20e3"); @@ -213,7 +213,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService { } CompletableFuture notificationFuture; if (userInitiated) { - notificationFuture = self.sendModMailNotification(member); + notificationFuture = self.sendModMailNotification(member, channel); } else { notificationFuture = CompletableFuture.completedFuture(null); } @@ -239,7 +239,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService { * @param member The {@link FullUserInServer} which opened the thread */ @Transactional - public CompletableFuture sendModMailNotification(Member member) { + public CompletableFuture sendModMailNotification(Member member, TextChannel channel) { Long serverId = member.getGuild().getIdLong(); log.info("Sending modmail notification for new modmail thread about user {} in server {}.", member.getId(), serverId); AServer server = serverManagementService.loadServer(serverId); @@ -249,6 +249,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService { .builder() .member(member) .roles(rolesToPing) + .channel(channel) .build(); MessageToSend messageToSend = templateService.renderEmbedTemplate("modmail_notification_message", modMailNotificationModel); List> modmailping = postTargetService.sendEmbedInPostTarget(messageToSend, ModMailPostTargets.MOD_MAIL_PING, serverId); diff --git a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/template/ModMailNotificationModel.java b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/template/ModMailNotificationModel.java index 63e717187..100b09ccb 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/template/ModMailNotificationModel.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/template/ModMailNotificationModel.java @@ -8,6 +8,7 @@ import lombok.Getter; import lombok.Setter; import lombok.experimental.SuperBuilder; import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.TextChannel; import java.util.List; @@ -31,4 +32,8 @@ public class ModMailNotificationModel extends ServerContext { * A list of roles which will be notified upon creation of the mod mail thread. */ private List roles; + /** + * The {@link TextChannel} in which the mod mail thread is handled + */ + private TextChannel channel; }