Skip to content

Commit 2637031

Browse files
Update dependencies (#88)
1 parent bbbd1e0 commit 2637031

File tree

4 files changed

+49
-48
lines changed

4 files changed

+49
-48
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,9 @@ WebhookClient.setDefaultErrorHandler((client, message, throwable) -> {
163163

164164
This library also supports sending webhook messages with integration from other libraries such as
165165

166-
- [JDA](/DV8FromTheWorld/JDA) (version 5.0.0-alpha.13) with [JDAWebhookClient](https://github.com/MinnDevelopment/discord-webhooks/blob/master/src/main/java/club/minnced/discord/webhook/external/JDAWebhookClient.java)
167-
- [Discord4J](/Discord4J/Discord4J) (version 3.2.2) with [D4JWebhookClient](https://github.com/MinnDevelopment/discord-webhooks/blob/master/src/main/java/club/minnced/discord/webhook/external/D4JWebhookClient.java)
168-
- [Javacord](/Javacord/Javacord) (version 3.4.0) with [JavacordWebhookClient](https://github.com/MinnDevelopment/discord-webhooks/blob/master/src/main/java/club/minnced/discord/webhook/external/JavacordWebhookClient.java)
166+
- [JDA](/DV8FromTheWorld/JDA) (version 5.0.0-beta.12) with [JDAWebhookClient](https://github.com/MinnDevelopment/discord-webhooks/blob/master/src/main/java/club/minnced/discord/webhook/external/JDAWebhookClient.java)
167+
- [Discord4J](/Discord4J/Discord4J) (version 3.2.5) with [D4JWebhookClient](https://github.com/MinnDevelopment/discord-webhooks/blob/master/src/main/java/club/minnced/discord/webhook/external/D4JWebhookClient.java)
168+
- [Javacord](/Javacord/Javacord) (version 3.8.0) with [JavacordWebhookClient](https://github.com/MinnDevelopment/discord-webhooks/blob/master/src/main/java/club/minnced/discord/webhook/external/JavacordWebhookClient.java)
169169

170170
### Example JDA
171171

build.gradle.kts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,25 @@ repositories {
4646
val versions = mapOf(
4747
"slf4j" to "1.7.32",
4848
"okhttp" to "4.10.0",
49-
"json" to "20210307",
50-
"jda" to "5.0.0-alpha.13",
51-
"discord4j" to "3.2.2",
52-
"javacord" to "3.4.0",
49+
"json" to "20230618",
50+
"jda" to "5.0.0-beta.12",
51+
"discord4j" to "3.2.5",
52+
"javacord" to "3.8.0",
5353
"junit" to "4.13.2",
5454
"mockito" to "3.12.4", // must be compatible with powermock
5555
"powermock" to "2.0.9",
5656
"logback" to "1.2.3",
57-
"annotations" to "22.0.0"
57+
"annotations" to "24.0.1",
58+
"jsr" to "3.0.2"
5859
)
5960

6061
dependencies {
6162
api("org.slf4j:slf4j-api:${versions["slf4j"]}")
6263
api("com.squareup.okhttp3:okhttp:${versions["okhttp"]}")
6364
api("org.json:json:${versions["json"]}")
64-
implementation("org.jetbrains:annotations:${versions["annotations"]}")
65+
66+
compileOnly("com.google.code.findbugs:jsr305:${versions["jsr"]}")
67+
compileOnly("org.jetbrains:annotations:${versions["annotations"]}")
6568

6669
compileOnly("net.dv8tion:JDA:${versions["jda"]}")
6770
compileOnly("com.discord4j:discord4j-core:${versions["discord4j"]}")

src/main/java/club/minnced/discord/webhook/send/WebhookMessageBuilder.java

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,8 @@
2525
import discord4j.discordjson.json.MessageEditRequest;
2626
import discord4j.discordjson.possible.Possible;
2727
import discord4j.rest.util.MultipartRequest;
28-
import net.dv8tion.jda.api.entities.Mentions;
2928
import net.dv8tion.jda.api.entities.Message;
30-
import net.dv8tion.jda.api.entities.Role;
31-
import net.dv8tion.jda.api.entities.User;
32-
import net.dv8tion.jda.internal.entities.DataMessage;
33-
import net.dv8tion.jda.internal.entities.ReceivedMessage;
29+
import net.dv8tion.jda.api.utils.messages.MessageCreateData;
3430
import org.javacord.api.entity.DiscordEntity;
3531
import org.jetbrains.annotations.NotNull;
3632
import org.jetbrains.annotations.Nullable;
@@ -431,38 +427,40 @@ public WebhookMessage build() {
431427
*/
432428
@NotNull
433429
public static WebhookMessageBuilder fromJDA(@NotNull net.dv8tion.jda.api.entities.Message message) {
430+
return fromJDA(MessageCreateData.fromMessage(message));
431+
}
432+
433+
/**
434+
* Converts a JDA {@link Message} into a compatible WebhookMessageBuilder.
435+
*
436+
* @param message
437+
* The message
438+
*
439+
* @throws NullPointerException
440+
* If null is provided
441+
*
442+
* @return WebhookMessageBuilder with the converted data
443+
*/
444+
@NotNull
445+
public static WebhookMessageBuilder fromJDA(@NotNull MessageCreateData message) {
434446
WebhookMessageBuilder builder = new WebhookMessageBuilder();
435447
builder.setTTS(message.isTTS());
436-
builder.setContent(message.getContentRaw());
448+
builder.setContent(message.getContent());
437449
message.getEmbeds().forEach(embed -> builder.addEmbeds(WebhookEmbedBuilder.fromJDA(embed).build()));
438450

439-
if (message instanceof DataMessage) {
440-
DataMessage data = (DataMessage) message;
441-
AllowedMentions allowedMentions = AllowedMentions.none();
442-
EnumSet<Message.MentionType> parse = data.getAllowedMentions();
443-
allowedMentions.withUsers(data.getMentionedUsersWhitelist());
444-
allowedMentions.withRoles(data.getMentionedRolesWhitelist());
445-
if (parse != null) {
446-
allowedMentions.withParseUsers(parse.contains(Message.MentionType.USER));
447-
allowedMentions.withParseRoles(parse.contains(Message.MentionType.ROLE));
448-
allowedMentions.withParseEveryone(parse.contains(Message.MentionType.EVERYONE) || parse.contains(Message.MentionType.HERE));
449-
}
450-
builder.setAllowedMentions(allowedMentions);
451-
} else if (message instanceof ReceivedMessage) {
452-
AllowedMentions allowedMentions = AllowedMentions.none();
453-
Mentions mentions = message.getMentions();
454-
allowedMentions.withRoles(
455-
mentions.getRoles().stream()
456-
.map(Role::getId)
457-
.collect(Collectors.toList()));
458-
allowedMentions.withUsers(
459-
mentions.getUsers().stream()
460-
.map(User::getId)
461-
.collect(Collectors.toList()));
462-
allowedMentions.withParseEveryone(mentions.mentionsEveryone());
463-
builder.setAllowedMentions(allowedMentions);
464-
builder.setEphemeral(message.isEphemeral());
465-
}
451+
EnumSet<Message.MentionType> allowedMentions = message.getAllowedMentions();
452+
Set<String> mentionedUsers = message.getMentionedUsers();
453+
Set<String> mentionedRoles = message.getMentionedRoles();
454+
builder.setAllowedMentions(
455+
AllowedMentions.none()
456+
.withUsers(mentionedUsers)
457+
.withRoles(mentionedRoles)
458+
.withParseEveryone(allowedMentions.contains(Message.MentionType.EVERYONE))
459+
.withParseRoles(allowedMentions.contains(Message.MentionType.ROLE))
460+
.withParseUsers(allowedMentions.contains(Message.MentionType.USER))
461+
);
462+
463+
466464
return builder;
467465
}
468466

src/test/java/root/send/MessageTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@
2222
import club.minnced.discord.webhook.send.WebhookMessage;
2323
import club.minnced.discord.webhook.send.WebhookMessageBuilder;
2424
import net.dv8tion.jda.api.EmbedBuilder;
25-
import net.dv8tion.jda.api.MessageBuilder;
2625
import net.dv8tion.jda.api.entities.Mentions;
2726
import net.dv8tion.jda.api.entities.Message;
2827
import net.dv8tion.jda.api.entities.MessageEmbed;
29-
import net.dv8tion.jda.internal.entities.DataMessage;
28+
import net.dv8tion.jda.api.entities.MessageType;
29+
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
30+
import net.dv8tion.jda.api.utils.messages.MessageCreateData;
3031
import net.dv8tion.jda.internal.entities.ReceivedMessage;
3132
import okhttp3.RequestBody;
3233
import org.json.JSONArray;
@@ -46,7 +47,6 @@
4647
import java.util.Map;
4748

4849
import static org.mockito.Answers.RETURNS_DEFAULTS;
49-
import static org.mockito.Mockito.CALLS_REAL_METHODS;
5050
import static org.powermock.api.mockito.PowerMockito.*;
5151

5252
public class MessageTest {
@@ -145,7 +145,7 @@ public void buildMessageWithDataMessage() {
145145
.setTitle("myEmbed")
146146
.build();
147147

148-
Message jdaMessage = new MessageBuilder()
148+
MessageCreateData jdaMessage = new MessageCreateBuilder()
149149
.setTTS(true)
150150
.setContent("myContent")
151151
.setEmbeds(jdaEmbed)
@@ -158,7 +158,6 @@ public void buildMessageWithDataMessage() {
158158

159159
WebhookEmbed webhookEmbed = webhookEmbeds.get(0);
160160

161-
Assert.assertTrue(jdaMessage instanceof DataMessage);
162161
Assert.assertTrue(webhookMessage.isTTS());
163162
Assert.assertEquals(webhookMessage.getContent(), "myContent");
164163
Assert.assertEquals(webhookEmbed.getTitle().getText(), "myEmbed");
@@ -170,12 +169,13 @@ public void buildMessageWithReceivedMessage() {
170169
.setTitle("myEmbed")
171170
.build();
172171

173-
Message jdaMessage = mock(ReceivedMessage.class, CALLS_REAL_METHODS);
172+
Message jdaMessage = mock(ReceivedMessage.class);
174173
Mentions mentions = mock(Mentions.class, RETURNS_DEFAULTS);
175174
when(jdaMessage.isTTS()).thenReturn(true);
176175
when(jdaMessage.getContentRaw()).thenReturn("myContent");
177176
when(jdaMessage.getEmbeds()).thenReturn(Arrays.asList(jdaEmbed));
178177
when(jdaMessage.getMentions()).thenReturn(mentions);
178+
when(jdaMessage.getType()).thenReturn(MessageType.DEFAULT);
179179

180180
WebhookMessage webhookMessage = WebhookMessageBuilder.fromJDA(jdaMessage).build();
181181
List<WebhookEmbed> webhookEmbeds = webhookMessage.getEmbeds();

0 commit comments

Comments
 (0)