From 448332f24f0565654959cf1d0a504d6be66cb4ec Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Sat, 4 Sep 2021 16:30:16 +0200 Subject: [PATCH] [AB-318] adding a mention of the original message to link embed updating JDA version --- README.md | 2 +- .../linkembed/listener/MessageEmbedListener.java | 1 + .../linkembed/service/MessageEmbedServiceBean.java | 12 ++++++++++++ .../model/template/MessageEmbeddedModel.java | 2 ++ abstracto-application/pom.xml | 2 +- 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cb8b5d00b..771a4664f 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ An example implementation of this bot can be seen [here](https://github.com/Shel ## Technologies -* [JDA](https://github.com/DV8FromTheWorld/JDA/) The Discord API Wrapper in the version 4.3.0_284 +* [JDA](https://github.com/DV8FromTheWorld/JDA/) The Discord API Wrapper in the version 4.3.0_315 * [Spring boot](https://github.com/spring-projects/spring-boot) is used as a framework to create standalone application in Java with Java EE methods. (including Dependency injection and more) * [Hibernate](https://github.com/hibernate/hibernate-orm) is used as a reference implementation of JPA. * [Freemarker](https://github.com/apache/freemarker) is used as a templating engine. This is used to provide internationalization for user facing text and enable dynamic embed configuration. diff --git a/abstracto-application/abstracto-modules/link-embed/link-embed-impl/src/main/java/dev/sheldan/abstracto/linkembed/listener/MessageEmbedListener.java b/abstracto-application/abstracto-modules/link-embed/link-embed-impl/src/main/java/dev/sheldan/abstracto/linkembed/listener/MessageEmbedListener.java index 2a8e49479..38b21aaeb 100644 --- a/abstracto-application/abstracto-modules/link-embed/link-embed-impl/src/main/java/dev/sheldan/abstracto/linkembed/listener/MessageEmbedListener.java +++ b/abstracto-application/abstracto-modules/link-embed/link-embed-impl/src/main/java/dev/sheldan/abstracto/linkembed/listener/MessageEmbedListener.java @@ -70,6 +70,7 @@ public class MessageEmbedListener implements MessageReceivedListener { log.debug("We found {} links to embed in message {} in channel {} in guild {}.", links.size(), message.getId(), message.getChannel().getId(), message.getGuild().getId()); Long userEmbeddingUserInServerId = userInServerManagementService.loadOrCreateUser(message.getMember()).getUserInServerId(); for (MessageEmbedLink messageEmbedLink : links) { + // potentially support foreign linked servers if(!messageEmbedLink.getServerId().equals(message.getGuild().getIdLong())) { log.info("Link for message {} was from a foreign server {}. Do not embed.", messageEmbedLink.getMessageId(), messageEmbedLink.getServerId()); continue; diff --git a/abstracto-application/abstracto-modules/link-embed/link-embed-impl/src/main/java/dev/sheldan/abstracto/linkembed/service/MessageEmbedServiceBean.java b/abstracto-application/abstracto-modules/link-embed/link-embed-impl/src/main/java/dev/sheldan/abstracto/linkembed/service/MessageEmbedServiceBean.java index 3b69dc0bf..e5beae121 100644 --- a/abstracto-application/abstracto-modules/link-embed/link-embed-impl/src/main/java/dev/sheldan/abstracto/linkembed/service/MessageEmbedServiceBean.java +++ b/abstracto-application/abstracto-modules/link-embed/link-embed-impl/src/main/java/dev/sheldan/abstracto/linkembed/service/MessageEmbedServiceBean.java @@ -316,6 +316,9 @@ public class MessageEmbedServiceBean implements MessageEmbedService { .builder() .buttonId(deletionButtonEnabled ? componentServiceBean.generateComponentId() : null) .build(); + + Long referencedMessageId = message.getReferencedMessage() != null ? message.getReferencedMessage().getIdLong() : null; + Boolean shouldMentionReferencedAuthor = shouldMentionReferencedAuthor(message); return MessageEmbeddedModel .builder() .member(message.getMember()) @@ -326,7 +329,16 @@ public class MessageEmbedServiceBean implements MessageEmbedService { .guild(message.getGuild()) .useButton(deletionButtonEnabled) .embeddedMessage(embeddedMessage) + .referencedMessageId(referencedMessageId) + .mentionsReferencedMessage(shouldMentionReferencedAuthor) .buttonConfigModel(buttonConfigModel) .build(); } + + private Boolean shouldMentionReferencedAuthor(Message message) { + if(message.getReferencedMessage() != null) { + return message.getMentionedUsers().contains(message.getReferencedMessage().getAuthor()); + } + return false; + } } diff --git a/abstracto-application/abstracto-modules/link-embed/link-embed-int/src/main/java/dev/sheldan/abstracto/linkembed/model/template/MessageEmbeddedModel.java b/abstracto-application/abstracto-modules/link-embed/link-embed-int/src/main/java/dev/sheldan/abstracto/linkembed/model/template/MessageEmbeddedModel.java index d97f197b6..2821919ec 100644 --- a/abstracto-application/abstracto-modules/link-embed/link-embed-int/src/main/java/dev/sheldan/abstracto/linkembed/model/template/MessageEmbeddedModel.java +++ b/abstracto-application/abstracto-modules/link-embed/link-embed-int/src/main/java/dev/sheldan/abstracto/linkembed/model/template/MessageEmbeddedModel.java @@ -19,5 +19,7 @@ public class MessageEmbeddedModel extends UserInitiatedServerContext { private TextChannel sourceChannel; private Member embeddingUser; private ButtonConfigModel buttonConfigModel; + private Long referencedMessageId; + private Boolean mentionsReferencedMessage; private Boolean useButton; } diff --git a/abstracto-application/pom.xml b/abstracto-application/pom.xml index 1087e1b33..c930aef4f 100644 --- a/abstracto-application/pom.xml +++ b/abstracto-application/pom.xml @@ -57,7 +57,7 @@ yyyy/MM/dd HH:mm - 4.3.0_293 + 4.3.0_315 3.0.4 2.0.0-RC.1 1.5.3