[AB-318] adding a mention of the original message to link embed

updating JDA version
This commit is contained in:
Sheldan
2021-09-04 16:30:16 +02:00
parent d7f889971d
commit 448332f24f
5 changed files with 17 additions and 2 deletions

View File

@@ -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.

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -57,7 +57,7 @@
<properties>
<maven.build.timestamp.format>yyyy/MM/dd HH:mm</maven.build.timestamp.format>
<jda.version>4.3.0_293</jda.version>
<jda.version>4.3.0_315</jda.version>
<jda.utilities.version>3.0.4</jda.utilities.version>
<asciidoctor.maven.plugin.version>2.0.0-RC.1</asciidoctor.maven.plugin.version>
<asciidoctorj.pdf.version>1.5.3</asciidoctorj.pdf.version>