From dface21de265593df780947493a8b947705a52ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 00:46:04 +0000 Subject: [PATCH 1/3] Bump net.dv8tion:JDA from 5.2.1 to 5.5.1 Bumps [net.dv8tion:JDA](https://github.com/discord-jda/JDA) from 5.2.1 to 5.5.1. - [Release notes](https://github.com/discord-jda/JDA/releases) - [Commits](https://github.com/discord-jda/JDA/compare/v5.2.1...v5.5.1) --- updated-dependencies: - dependency-name: net.dv8tion:JDA dependency-version: 5.5.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- application/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/build.gradle b/application/build.gradle index 61aec1dca9..dfc03cf13a 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -46,7 +46,7 @@ dependencies { implementation project(':utils') implementation project(':formatter') - implementation 'net.dv8tion:JDA:5.2.1' + implementation 'net.dv8tion:JDA:5.5.1' implementation 'org.apache.logging.log4j:log4j-core:2.24.3' runtimeOnly 'org.apache.logging.log4j:log4j-slf4j18-impl:2.18.0' From ee902611aa140a16faba47ce8559e361482413df Mon Sep 17 00:00:00 2001 From: Connor Schweighoefer Date: Fri, 9 May 2025 23:21:03 +0200 Subject: [PATCH 2/3] Fixed failing tests --- .../org/togetherjava/tjbot/jda/JdaTester.java | 4 +- .../SlashCommandInteractionEventBuilder.java | 12 ++++- .../tjbot/jda/payloads/PayloadGuild.java | 44 +++++++++++++++++ .../slashcommand/PayloadSlashCommand.java | 48 ++++++++++++++++++- 4 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 application/src/test/java/org/togetherjava/tjbot/jda/payloads/PayloadGuild.java diff --git a/application/src/test/java/org/togetherjava/tjbot/jda/JdaTester.java b/application/src/test/java/org/togetherjava/tjbot/jda/JdaTester.java index ce6458fb0f..bf42857817 100644 --- a/application/src/test/java/org/togetherjava/tjbot/jda/JdaTester.java +++ b/application/src/test/java/org/togetherjava/tjbot/jda/JdaTester.java @@ -31,9 +31,9 @@ import net.dv8tion.jda.api.requests.SequentialRestRateLimiter; import net.dv8tion.jda.api.requests.restaction.CacheRestAction; import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction; -import net.dv8tion.jda.api.utils.AttachmentProxy; import net.dv8tion.jda.api.utils.ConcurrentSessionController; import net.dv8tion.jda.api.utils.FileUpload; +import net.dv8tion.jda.api.utils.NamedAttachmentProxy; import net.dv8tion.jda.api.utils.cache.CacheFlag; import net.dv8tion.jda.api.utils.messages.MessageCreateData; import net.dv8tion.jda.api.utils.messages.MessageEditData; @@ -770,7 +770,7 @@ public Message clientMessageToReceivedMessageMock(MessageCreateData clientMessag private Message.Attachment clientAttachmentToReceivedAttachmentMock( FileUpload clientAttachment) { Message.Attachment receivedAttachment = mock(Message.Attachment.class); - AttachmentProxy attachmentProxy = mock(AttachmentProxy.class); + NamedAttachmentProxy attachmentProxy = mock(NamedAttachmentProxy.class); when(receivedAttachment.getJDA()).thenReturn(jda); when(receivedAttachment.getFileName()).thenReturn(clientAttachment.getName()); diff --git a/application/src/test/java/org/togetherjava/tjbot/jda/SlashCommandInteractionEventBuilder.java b/application/src/test/java/org/togetherjava/tjbot/jda/SlashCommandInteractionEventBuilder.java index 77533a44df..9206e428da 100644 --- a/application/src/test/java/org/togetherjava/tjbot/jda/SlashCommandInteractionEventBuilder.java +++ b/application/src/test/java/org/togetherjava/tjbot/jda/SlashCommandInteractionEventBuilder.java @@ -5,15 +5,19 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; +import net.dv8tion.jda.api.interactions.IntegrationOwners; +import net.dv8tion.jda.api.interactions.InteractionContextType; import net.dv8tion.jda.api.interactions.commands.OptionType; import net.dv8tion.jda.api.interactions.commands.build.OptionData; import net.dv8tion.jda.api.interactions.commands.build.SubcommandData; import net.dv8tion.jda.api.utils.data.DataObject; import net.dv8tion.jda.internal.JDAImpl; +import net.dv8tion.jda.internal.interactions.IntegrationOwnersImpl; import net.dv8tion.jda.internal.interactions.command.SlashCommandInteractionImpl; import org.togetherjava.tjbot.features.SlashCommand; import org.togetherjava.tjbot.jda.payloads.PayloadChannel; +import org.togetherjava.tjbot.jda.payloads.PayloadGuild; import org.togetherjava.tjbot.jda.payloads.PayloadMember; import org.togetherjava.tjbot.jda.payloads.PayloadUser; import org.togetherjava.tjbot.jda.payloads.slashcommand.PayloadSlashCommand; @@ -28,6 +32,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.function.Supplier; import java.util.function.UnaryOperator; import java.util.stream.Collectors; @@ -278,6 +283,8 @@ private PayloadSlashCommand createEvent() { "1099511627775", List.of(), false, false, false, null, false, user); PayloadChannel channel = new PayloadChannel(channelId, 1); + PayloadGuild guild = new PayloadGuild(Long.parseLong(guildId), "en-US", Set.of()); + List options; if (subcommand == null) { options = extractOptionsOrNull(nameToOption); @@ -288,8 +295,11 @@ private PayloadSlashCommand createEvent() { PayloadSlashCommandData data = new PayloadSlashCommandData(command.getName(), "1", 1, options, extractResolvedOrNull(nameToOption)); + IntegrationOwners owners = new IntegrationOwnersImpl(DataObject.empty()); + return new PayloadSlashCommand(guildId, "897425767397466123", 2, 1, applicationId, token, - member, channel, data); + member, channel, guild, data, Long.parseLong(channelId), + InteractionContextType.PRIVATE_CHANNEL, owners); } @Nullable diff --git a/application/src/test/java/org/togetherjava/tjbot/jda/payloads/PayloadGuild.java b/application/src/test/java/org/togetherjava/tjbot/jda/payloads/PayloadGuild.java new file mode 100644 index 0000000000..d2524691dd --- /dev/null +++ b/application/src/test/java/org/togetherjava/tjbot/jda/payloads/PayloadGuild.java @@ -0,0 +1,44 @@ +package org.togetherjava.tjbot.jda.payloads; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.Set; + +public class PayloadGuild { + + private long id; + @JsonProperty("preferred_locale") + private String preferredLocale; + private Set features; + + public PayloadGuild(long id, String preferredLocale, Set features) { + this.id = id; + this.preferredLocale = preferredLocale; + this.features = features; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getPreferredLocale() { + return preferredLocale; + } + + public void setPreferredLocale(String preferredLocale) { + this.preferredLocale = preferredLocale; + } + + public Set getFeatures() { + return features; + } + + public void setFeatures(Set features) { + this.features = features; + } + +} diff --git a/application/src/test/java/org/togetherjava/tjbot/jda/payloads/slashcommand/PayloadSlashCommand.java b/application/src/test/java/org/togetherjava/tjbot/jda/payloads/slashcommand/PayloadSlashCommand.java index 8108d2026d..246744d372 100644 --- a/application/src/test/java/org/togetherjava/tjbot/jda/payloads/slashcommand/PayloadSlashCommand.java +++ b/application/src/test/java/org/togetherjava/tjbot/jda/payloads/slashcommand/PayloadSlashCommand.java @@ -1,8 +1,11 @@ package org.togetherjava.tjbot.jda.payloads.slashcommand; import com.fasterxml.jackson.annotation.JsonProperty; +import net.dv8tion.jda.api.interactions.IntegrationOwners; +import net.dv8tion.jda.api.interactions.InteractionContextType; import org.togetherjava.tjbot.jda.payloads.PayloadChannel; +import org.togetherjava.tjbot.jda.payloads.PayloadGuild; import org.togetherjava.tjbot.jda.payloads.PayloadMember; public final class PayloadSlashCommand { @@ -16,11 +19,18 @@ public final class PayloadSlashCommand { private String token; private PayloadMember member; private PayloadChannel channel; + private PayloadGuild guild; private PayloadSlashCommandData data; + @JsonProperty("channel_id") + private long channelId; + private InteractionContextType context; + @JsonProperty("authorizing_integration_owners") + private IntegrationOwners integrationOwners; public PayloadSlashCommand(String guildId, String id, int type, int version, String applicationId, String token, PayloadMember member, PayloadChannel channel, - PayloadSlashCommandData data) { + PayloadGuild guild, PayloadSlashCommandData data, long channelId, + InteractionContextType context, IntegrationOwners integrationOwners) { this.guildId = guildId; this.id = id; this.type = type; @@ -29,7 +39,11 @@ public PayloadSlashCommand(String guildId, String id, int type, int version, this.token = token; this.member = member; this.channel = channel; + this.guild = guild; this.data = data; + this.channelId = channelId; + this.context = context; + this.integrationOwners = integrationOwners; } public String getGuildId() { @@ -96,6 +110,14 @@ public void setChannel(PayloadChannel channel) { this.channel = channel; } + public PayloadGuild getGuild() { + return guild; + } + + public void setGuild(PayloadGuild guild) { + this.guild = guild; + } + public PayloadSlashCommandData getData() { return data; } @@ -104,4 +126,28 @@ public void setData(PayloadSlashCommandData data) { this.data = data; } + public long getChannelId() { + return channelId; + } + + public void setChannelId(long channelId) { + this.channelId = channelId; + } + + public InteractionContextType getContext() { + return context; + } + + public void setContext(InteractionContextType context) { + this.context = context; + } + + public IntegrationOwners getIntegrationOwners() { + return integrationOwners; + } + + public void setIntegrationOwners(IntegrationOwners integrationOwners) { + this.integrationOwners = integrationOwners; + } + } From 19b55c55f455cfbb17e08d347934dc455a483835 Mon Sep 17 00:00:00 2001 From: Connor Schweighoefer Date: Sat, 10 May 2025 00:02:06 +0200 Subject: [PATCH 3/3] Removed deprecated setOnlyGuild method usage --- .../tjbot/features/BotCommandAdapter.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/BotCommandAdapter.java b/application/src/main/java/org/togetherjava/tjbot/features/BotCommandAdapter.java index 471222df2a..a341f99884 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/BotCommandAdapter.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/BotCommandAdapter.java @@ -5,6 +5,7 @@ import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; import net.dv8tion.jda.api.events.interaction.component.EntitySelectInteractionEvent; import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent; +import net.dv8tion.jda.api.interactions.InteractionContextType; import net.dv8tion.jda.api.interactions.commands.Command; import net.dv8tion.jda.api.interactions.commands.build.CommandData; import org.jetbrains.annotations.Contract; @@ -15,6 +16,7 @@ import java.util.List; import java.util.Objects; +import java.util.Set; /** * Adapter implementation of a {@link BotCommand}. The minimal setup only requires implementation of @@ -51,7 +53,14 @@ public abstract class BotCommandAdapter implements BotCommand { * @param visibility the visibility of the command */ protected BotCommandAdapter(CommandData data, CommandVisibility visibility) { - this.data = data.setGuildOnly(visibility == CommandVisibility.GUILD); + this.data = data; + + Set contexts = switch (visibility) { + case GUILD -> Set.of(InteractionContextType.GUILD); + case GLOBAL -> InteractionContextType.ALL; + }; + + data.setContexts(contexts); this.visibility = Objects.requireNonNull(visibility, "The visibility shouldn't be null"); name = data.getName();