From 5059392d7e4f22c3e00ccb90249749e545a37c58 Mon Sep 17 00:00:00 2001 From: rgautr01 Date: Mon, 16 Feb 2026 21:50:05 +0100 Subject: [PATCH] feat: Upgrade to JDA 6.2.1 --- build.gradle | 2 +- .../types/command/BasicCommandArgument.java | 2 +- .../types/command/ContextCommandArgument.java | 2 +- .../command/executor/CommandExecutor.java | 2 +- .../command/executor/CommandHandler.java | 9 +- .../events/InternalEventListener.java | 8 +- .../events/command/BasicCommandEvent.java | 2 +- .../events/command/MessageCommandEvent.java | 2 +- .../events/command/SlashCommandEvent.java | 2 +- .../events/repliable/ButtonClickEvent.java | 6 +- .../repliable/EditableRepliableEvent.java | 6 +- .../repliable/InteractionRepliableEvent.java | 2 +- .../events/repliable/RepliableEvent.java | 2 +- .../events/repliable/SelectMenuEvent.java | 2 +- .../sys/interactions/ComponentRow.java | 2 +- .../sys/interactions/button/BaseButton.java | 2 +- .../sys/interactions/button/ButtonLayout.java | 4 +- .../sys/interactions/button/ButtonRow.java | 2 +- .../sys/interactions/menu/ConfirmMenu.java | 2 +- .../menu/scrollpage/ScrollPageMenu.java | 13 +- .../menu/selectrow/SelectRowMenu.java | 2 +- .../sys/interactions/menu/tab/TabMenu.java | 4 +- .../interactions/select/BaseSelectMenu.java | 4 +- .../sys/presetbuilder/PresetBuilder.java | 4 +- .../colossus/sys/snowflake/ColossusGuild.java | 123 ++++++++++-------- .../sys/snowflake/ColossusMember.java | 19 +++ .../colossus/sys/snowflake/ColossusUser.java | 6 + .../colossus/sys/util/InteractionUtil.java | 4 +- 28 files changed, 146 insertions(+), 94 deletions(-) diff --git a/build.gradle b/build.gradle index e01ac35..e5fde52 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ dependencies { implementation 'org.slf4j:slf4j-api:2.0.13' // jda - implementation 'net.dv8tion:JDA:5.2.0' + implementation 'net.dv8tion:JDA:6.2.1' // hibernate (database) implementation "org.hibernate.orm:hibernate-core:6.5.2.Final" diff --git a/src/main/java/dev/ryanland/colossus/command/arguments/types/command/BasicCommandArgument.java b/src/main/java/dev/ryanland/colossus/command/arguments/types/command/BasicCommandArgument.java index a556c0e..372dc00 100644 --- a/src/main/java/dev/ryanland/colossus/command/arguments/types/command/BasicCommandArgument.java +++ b/src/main/java/dev/ryanland/colossus/command/arguments/types/command/BasicCommandArgument.java @@ -19,7 +19,7 @@ import net.dv8tion.jda.api.entities.emoji.Emoji; import net.dv8tion.jda.api.interactions.commands.Command.Choice; import net.dv8tion.jda.api.interactions.commands.OptionType; -import net.dv8tion.jda.api.interactions.components.buttons.Button; +import net.dv8tion.jda.api.components.buttons.Button; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/dev/ryanland/colossus/command/arguments/types/command/ContextCommandArgument.java b/src/main/java/dev/ryanland/colossus/command/arguments/types/command/ContextCommandArgument.java index c0048bf..b727b75 100644 --- a/src/main/java/dev/ryanland/colossus/command/arguments/types/command/ContextCommandArgument.java +++ b/src/main/java/dev/ryanland/colossus/command/arguments/types/command/ContextCommandArgument.java @@ -14,7 +14,7 @@ import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.emoji.Emoji; -import net.dv8tion.jda.api.interactions.components.buttons.Button; +import net.dv8tion.jda.api.components.buttons.Button; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/dev/ryanland/colossus/command/executor/CommandExecutor.java b/src/main/java/dev/ryanland/colossus/command/executor/CommandExecutor.java index 33ed3da..ba54643 100644 --- a/src/main/java/dev/ryanland/colossus/command/executor/CommandExecutor.java +++ b/src/main/java/dev/ryanland/colossus/command/executor/CommandExecutor.java @@ -132,7 +132,7 @@ public void execute(CommandEvent event) { ((SlashCommand) cmdClass.getDeclaredConstructor().newInstance()).run(eventAsSlashCommand); else if (event instanceof MessageCommandEvent) ((MessageCommand) cmdClass.getDeclaredConstructor().newInstance()).run(eventAsMessageCommand); - } catch (NoSuchMethodException | CommandException | InstantiationException | IllegalAccessException | InvocationTargetException e) { + } catch (Exception e) { CommandHandler.handleCommandException(e, event); return; } diff --git a/src/main/java/dev/ryanland/colossus/command/executor/CommandHandler.java b/src/main/java/dev/ryanland/colossus/command/executor/CommandHandler.java index 81c6b0c..6940cc2 100644 --- a/src/main/java/dev/ryanland/colossus/command/executor/CommandHandler.java +++ b/src/main/java/dev/ryanland/colossus/command/executor/CommandHandler.java @@ -24,9 +24,12 @@ import net.dv8tion.jda.api.interactions.commands.build.CommandData; import net.dv8tion.jda.api.interactions.commands.build.Commands; import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData; +import net.dv8tion.jda.api.interactions.IntegrationType; +import net.dv8tion.jda.api.interactions.InteractionContextType; import net.dv8tion.jda.api.requests.restaction.CommandListUpdateAction; import java.util.ArrayList; +import java.util.EnumSet; import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -149,7 +152,8 @@ public static void upsertAll() { SlashCommandData slashCmdData = Commands.slash(command.getName(), command.getDescription()) .setLocalizationFunction(command.getLocalizationFunction()) - .setGuildOnly(command.isGuildOnly()) + .setContexts(command.isGuildOnly() ? EnumSet.of(InteractionContextType.GUILD) : InteractionContextType.ALL) + .setIntegrationTypes(IntegrationType.GUILD_INSTALL) .setDefaultPermissions(command.getDefaultPermissions()); // Subcommands @@ -173,7 +177,8 @@ public static void upsertAll() { for (ContextCommand contextCommand : CONTEXT_COMMANDS) { CommandData cmdData = Commands.context(contextCommand.getType().getJDAEquivalent(), contextCommand.getName()) .setLocalizationFunction(contextCommand.getLocalizationFunction()) - .setGuildOnly(contextCommand.isGuildOnly()) + .setContexts(contextCommand.isGuildOnly() ? EnumSet.of(InteractionContextType.GUILD) : InteractionContextType.ALL) + .setIntegrationTypes(IntegrationType.GUILD_INSTALL) .setDefaultPermissions(contextCommand.getDefaultPermissions()); updater.addCommands(cmdData); diff --git a/src/main/java/dev/ryanland/colossus/events/InternalEventListener.java b/src/main/java/dev/ryanland/colossus/events/InternalEventListener.java index dbfd554..7820496 100644 --- a/src/main/java/dev/ryanland/colossus/events/InternalEventListener.java +++ b/src/main/java/dev/ryanland/colossus/events/InternalEventListener.java @@ -33,7 +33,11 @@ public class InternalEventListener extends ListenerAdapter { @Override public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent event) { if (!Config.getBoolean("slash_commands.enabled")) return; - new Thread(() -> CommandHandler.run(new SlashCommandEvent(event))).start(); + + event.deferReply().queue( + success -> new Thread(() -> CommandHandler.run(new SlashCommandEvent(event))).start(), + error -> Colossus.LOGGER.error("Failed to defer slash command interaction: " + event.getFullCommandName(), error) + ); } // Slash command autocomplete @@ -66,7 +70,7 @@ public static void registerStaticStartsWithButtonListener(String buttonId, Comma // Click button @Override public void onButtonInteraction(@NotNull ButtonInteractionEvent event) { - String buttonId = event.getButton().getId(); + String buttonId = event.getButton().getCustomId(); try { if (STATIC_BUTTON_LISTENERS.containsKey(buttonId)) { STATIC_BUTTON_LISTENERS.get(buttonId).accept(new ButtonClickEvent(event)); diff --git a/src/main/java/dev/ryanland/colossus/events/command/BasicCommandEvent.java b/src/main/java/dev/ryanland/colossus/events/command/BasicCommandEvent.java index b4b95b1..4071576 100644 --- a/src/main/java/dev/ryanland/colossus/events/command/BasicCommandEvent.java +++ b/src/main/java/dev/ryanland/colossus/events/command/BasicCommandEvent.java @@ -11,7 +11,7 @@ import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel; import net.dv8tion.jda.api.events.Event; import net.dv8tion.jda.api.interactions.DiscordLocale; -import net.dv8tion.jda.api.interactions.modals.Modal; +import net.dv8tion.jda.api.modals.Modal; public sealed abstract class BasicCommandEvent implements RepliableEvent permits CommandEvent, ContextCommandEvent { diff --git a/src/main/java/dev/ryanland/colossus/events/command/MessageCommandEvent.java b/src/main/java/dev/ryanland/colossus/events/command/MessageCommandEvent.java index fdc52fe..2fed09e 100644 --- a/src/main/java/dev/ryanland/colossus/events/command/MessageCommandEvent.java +++ b/src/main/java/dev/ryanland/colossus/events/command/MessageCommandEvent.java @@ -19,7 +19,7 @@ import net.dv8tion.jda.api.entities.channel.unions.MessageChannelUnion; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.interactions.DiscordLocale; -import net.dv8tion.jda.api.interactions.modals.Modal; +import net.dv8tion.jda.api.modals.Modal; public final class MessageCommandEvent extends CommandEvent { diff --git a/src/main/java/dev/ryanland/colossus/events/command/SlashCommandEvent.java b/src/main/java/dev/ryanland/colossus/events/command/SlashCommandEvent.java index 278f10c..ff17708 100644 --- a/src/main/java/dev/ryanland/colossus/events/command/SlashCommandEvent.java +++ b/src/main/java/dev/ryanland/colossus/events/command/SlashCommandEvent.java @@ -17,7 +17,7 @@ import net.dv8tion.jda.api.interactions.Interaction; import net.dv8tion.jda.api.interactions.InteractionHook; import net.dv8tion.jda.api.interactions.commands.OptionMapping; -import net.dv8tion.jda.api.interactions.components.ActionRow; +import net.dv8tion.jda.api.components.actionrow.ActionRow; import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/dev/ryanland/colossus/events/repliable/ButtonClickEvent.java b/src/main/java/dev/ryanland/colossus/events/repliable/ButtonClickEvent.java index 06370d2..be888ca 100644 --- a/src/main/java/dev/ryanland/colossus/events/repliable/ButtonClickEvent.java +++ b/src/main/java/dev/ryanland/colossus/events/repliable/ButtonClickEvent.java @@ -31,7 +31,7 @@ public class ButtonClickEvent implements EditableRepliableEvent { public static void addListener(Long msgId, List buttonRows) { List identifiers = MESSAGE_BUTTONS.getOrDefault(msgId, new ArrayList<>()); buttonRows.forEach(buttonRow -> buttonRow.getButtons().forEach(button -> { - ButtonIdentifier buttonIdentifier = new ButtonIdentifier(msgId, button.button().getId()); + ButtonIdentifier buttonIdentifier = new ButtonIdentifier(msgId, button.button().getCustomId()); BUTTONS.put(buttonIdentifier, button); identifiers.add(buttonIdentifier); })); @@ -89,7 +89,7 @@ public static void removeListeners(Long msgId) { public ButtonClickEvent(ButtonInteractionEvent event) { this.event = event; - this.button = BUTTONS.get(new ButtonIdentifier(event.getMessageIdLong(), event.getButton().getId())); + this.button = BUTTONS.get(new ButtonIdentifier(event.getMessageIdLong(), event.getButton().getCustomId())); } /** @@ -106,7 +106,7 @@ public Message getMessage() { } public String getButtonId() { - return event.getButton().getId(); + return event.getButton().getCustomId(); } private record ButtonIdentifier(Long msgId, String buttonId) {} diff --git a/src/main/java/dev/ryanland/colossus/events/repliable/EditableRepliableEvent.java b/src/main/java/dev/ryanland/colossus/events/repliable/EditableRepliableEvent.java index ddcc518..2906205 100644 --- a/src/main/java/dev/ryanland/colossus/events/repliable/EditableRepliableEvent.java +++ b/src/main/java/dev/ryanland/colossus/events/repliable/EditableRepliableEvent.java @@ -12,8 +12,8 @@ import net.dv8tion.jda.api.interactions.callbacks.IMessageEditCallback; import net.dv8tion.jda.api.interactions.callbacks.IModalCallback; import net.dv8tion.jda.api.interactions.callbacks.IReplyCallback; -import net.dv8tion.jda.api.interactions.components.ActionRow; -import net.dv8tion.jda.api.interactions.modals.Modal; +import net.dv8tion.jda.api.components.actionrow.ActionRow; +import net.dv8tion.jda.api.modals.Modal; import net.dv8tion.jda.api.requests.restaction.WebhookMessageCreateAction; import net.dv8tion.jda.api.requests.restaction.WebhookMessageEditAction; import net.dv8tion.jda.api.requests.restaction.interactions.MessageEditCallbackAction; @@ -111,7 +111,7 @@ default void reply(PresetBuilder message) { if (!message.isEphemeral() || (message.isEphemeral() && getMessage().isEphemeral())) { // remove old listeners - if (!getMessage().getActionRows().isEmpty()) { + if (!getMessage().getComponents().isEmpty()) { ExecutorUtil.cancel(getMessage().getId(), false); // cancel an active action row emptier ButtonClickEvent.removeListeners(getMessage().getIdLong()); SelectMenuEvent.removeListeners(getMessage().getIdLong()); diff --git a/src/main/java/dev/ryanland/colossus/events/repliable/InteractionRepliableEvent.java b/src/main/java/dev/ryanland/colossus/events/repliable/InteractionRepliableEvent.java index 1d37122..668571e 100644 --- a/src/main/java/dev/ryanland/colossus/events/repliable/InteractionRepliableEvent.java +++ b/src/main/java/dev/ryanland/colossus/events/repliable/InteractionRepliableEvent.java @@ -11,7 +11,7 @@ import net.dv8tion.jda.api.entities.channel.Channel; import net.dv8tion.jda.api.interactions.callbacks.IModalCallback; import net.dv8tion.jda.api.interactions.callbacks.IReplyCallback; -import net.dv8tion.jda.api.interactions.modals.Modal; +import net.dv8tion.jda.api.modals.Modal; import net.dv8tion.jda.api.requests.restaction.WebhookMessageCreateAction; import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction; diff --git a/src/main/java/dev/ryanland/colossus/events/repliable/RepliableEvent.java b/src/main/java/dev/ryanland/colossus/events/repliable/RepliableEvent.java index 4e619a3..ab0e365 100644 --- a/src/main/java/dev/ryanland/colossus/events/repliable/RepliableEvent.java +++ b/src/main/java/dev/ryanland/colossus/events/repliable/RepliableEvent.java @@ -13,7 +13,7 @@ import dev.ryanland.colossus.sys.snowflake.ColossusUser; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.Channel; -import net.dv8tion.jda.api.interactions.modals.Modal; +import net.dv8tion.jda.api.modals.Modal; import java.util.List; import java.util.concurrent.TimeUnit; diff --git a/src/main/java/dev/ryanland/colossus/events/repliable/SelectMenuEvent.java b/src/main/java/dev/ryanland/colossus/events/repliable/SelectMenuEvent.java index ea9bf60..6623fd7 100644 --- a/src/main/java/dev/ryanland/colossus/events/repliable/SelectMenuEvent.java +++ b/src/main/java/dev/ryanland/colossus/events/repliable/SelectMenuEvent.java @@ -29,7 +29,7 @@ public class SelectMenuEvent implements EditableRepliableEvent { */ public static void addListener(Long msgId, BaseSelectMenu selectMenu) { List identifiers = MESSAGE_SELECT_MENUS.getOrDefault(msgId, new ArrayList<>()); - SelectMenuIdentifier identifier = new SelectMenuIdentifier(msgId, selectMenu.getSelectMenu().getId()); + SelectMenuIdentifier identifier = new SelectMenuIdentifier(msgId, selectMenu.getSelectMenu().getCustomId()); SELECT_MENUS.put(identifier, selectMenu); identifiers.add(identifier); MESSAGE_SELECT_MENUS.put(msgId, identifiers); diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/ComponentRow.java b/src/main/java/dev/ryanland/colossus/sys/interactions/ComponentRow.java index 6bc2bea..de8447f 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/ComponentRow.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/ComponentRow.java @@ -1,7 +1,7 @@ package dev.ryanland.colossus.sys.interactions; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.interactions.components.ActionRow; +import net.dv8tion.jda.api.components.actionrow.ActionRow; public abstract class ComponentRow { diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/button/BaseButton.java b/src/main/java/dev/ryanland/colossus/sys/interactions/button/BaseButton.java index aeda916..bf10f84 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/button/BaseButton.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/button/BaseButton.java @@ -5,7 +5,7 @@ import dev.ryanland.colossus.command.executor.functional_interface.CommandPredicate; import dev.ryanland.colossus.events.repliable.ButtonClickEvent; import dev.ryanland.colossus.sys.presetbuilder.PresetBuilder; -import net.dv8tion.jda.api.interactions.components.buttons.Button; +import net.dv8tion.jda.api.components.buttons.Button; import java.util.List; diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/button/ButtonLayout.java b/src/main/java/dev/ryanland/colossus/sys/interactions/button/ButtonLayout.java index be7d38d..e06039e 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/button/ButtonLayout.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/button/ButtonLayout.java @@ -1,7 +1,7 @@ package dev.ryanland.colossus.sys.interactions.button; -import net.dv8tion.jda.api.interactions.components.ActionRow; -import net.dv8tion.jda.api.interactions.components.buttons.Button; +import net.dv8tion.jda.api.components.actionrow.ActionRow; +import net.dv8tion.jda.api.components.buttons.Button; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/button/ButtonRow.java b/src/main/java/dev/ryanland/colossus/sys/interactions/button/ButtonRow.java index ccfdf41..e341143 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/button/ButtonRow.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/button/ButtonRow.java @@ -3,7 +3,7 @@ import dev.ryanland.colossus.events.repliable.ButtonClickEvent; import dev.ryanland.colossus.sys.interactions.ComponentRow; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.interactions.components.ActionRow; +import net.dv8tion.jda.api.components.actionrow.ActionRow; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/menu/ConfirmMenu.java b/src/main/java/dev/ryanland/colossus/sys/interactions/menu/ConfirmMenu.java index ef2bf56..035b632 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/menu/ConfirmMenu.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/menu/ConfirmMenu.java @@ -6,7 +6,7 @@ import dev.ryanland.colossus.sys.interactions.button.BaseButton; import dev.ryanland.colossus.sys.presetbuilder.PresetBuilder; import net.dv8tion.jda.api.entities.emoji.Emoji; -import net.dv8tion.jda.api.interactions.components.buttons.Button; +import net.dv8tion.jda.api.components.buttons.Button; /** * Creates an {@link InteractionMenu} that presents the user with an option to either go through with an action or cancel it. diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/menu/scrollpage/ScrollPageMenu.java b/src/main/java/dev/ryanland/colossus/sys/interactions/menu/scrollpage/ScrollPageMenu.java index 74da5bd..59b000c 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/menu/scrollpage/ScrollPageMenu.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/menu/scrollpage/ScrollPageMenu.java @@ -9,10 +9,11 @@ import dev.ryanland.colossus.sys.interactions.menu.InteractionMenu; import dev.ryanland.colossus.sys.presetbuilder.PresetBuilder; import net.dv8tion.jda.api.entities.emoji.Emoji; -import net.dv8tion.jda.api.interactions.components.buttons.Button; -import net.dv8tion.jda.api.interactions.components.text.TextInput; -import net.dv8tion.jda.api.interactions.components.text.TextInputStyle; -import net.dv8tion.jda.api.interactions.modals.Modal; +import net.dv8tion.jda.api.components.buttons.Button; +import net.dv8tion.jda.api.components.textinput.TextInput; +import net.dv8tion.jda.api.components.textinput.TextInputStyle; +import net.dv8tion.jda.api.components.label.Label; +import net.dv8tion.jda.api.modals.Modal; import java.util.ArrayList; import java.util.List; @@ -46,8 +47,8 @@ public static PresetBuilder renderPage(long userId, List pages, int }), // current page BaseButton.user(userId, Button.secondary("current", "Page " + (page+1) + "/" + pages.size()).withDisabled(pages.size() <= 1), event -> { - event.reply(Modal.create("page", "Select Page").addActionRow(TextInput - .create("page", "Page", TextInputStyle.SHORT).setPlaceholder("Enter page number...").build()).build(), evt -> { + event.reply(Modal.create("page", "Select Page").addComponents(Label.of("Page", TextInput + .create("page", TextInputStyle.SHORT).setPlaceholder("Enter page number...").build())).build(), evt -> { int newPage; try { newPage = Integer.parseInt(evt.getValue("page").getAsString()); diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/menu/selectrow/SelectRowMenu.java b/src/main/java/dev/ryanland/colossus/sys/interactions/menu/selectrow/SelectRowMenu.java index 8c9f1ad..2df1de7 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/menu/selectrow/SelectRowMenu.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/menu/selectrow/SelectRowMenu.java @@ -6,7 +6,7 @@ import dev.ryanland.colossus.sys.interactions.menu.InteractionMenu; import dev.ryanland.colossus.sys.interactions.select.BaseSelectMenu; import dev.ryanland.colossus.sys.presetbuilder.PresetBuilder; -import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu; +import net.dv8tion.jda.api.components.selections.StringSelectMenu; import java.util.List; diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/menu/tab/TabMenu.java b/src/main/java/dev/ryanland/colossus/sys/interactions/menu/tab/TabMenu.java index 57d29b0..fce7389 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/menu/tab/TabMenu.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/menu/tab/TabMenu.java @@ -5,8 +5,8 @@ import dev.ryanland.colossus.sys.interactions.menu.InteractionMenu; import dev.ryanland.colossus.sys.presetbuilder.PresetBuilder; import net.dv8tion.jda.api.entities.emoji.Emoji; -import net.dv8tion.jda.api.interactions.components.buttons.Button; -import net.dv8tion.jda.api.interactions.components.buttons.ButtonStyle; +import net.dv8tion.jda.api.components.buttons.Button; +import net.dv8tion.jda.api.components.buttons.ButtonStyle; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/dev/ryanland/colossus/sys/interactions/select/BaseSelectMenu.java b/src/main/java/dev/ryanland/colossus/sys/interactions/select/BaseSelectMenu.java index 125d90f..ff72521 100644 --- a/src/main/java/dev/ryanland/colossus/sys/interactions/select/BaseSelectMenu.java +++ b/src/main/java/dev/ryanland/colossus/sys/interactions/select/BaseSelectMenu.java @@ -8,8 +8,8 @@ import dev.ryanland.colossus.sys.presetbuilder.PresetBuilder; import lombok.Getter; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.interactions.components.ActionRow; -import net.dv8tion.jda.api.interactions.components.selections.SelectMenu; +import net.dv8tion.jda.api.components.actionrow.ActionRow; +import net.dv8tion.jda.api.components.selections.SelectMenu; import java.util.Collections; import java.util.List; diff --git a/src/main/java/dev/ryanland/colossus/sys/presetbuilder/PresetBuilder.java b/src/main/java/dev/ryanland/colossus/sys/presetbuilder/PresetBuilder.java index d036ac6..8c7e2f8 100644 --- a/src/main/java/dev/ryanland/colossus/sys/presetbuilder/PresetBuilder.java +++ b/src/main/java/dev/ryanland/colossus/sys/presetbuilder/PresetBuilder.java @@ -13,8 +13,8 @@ import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.interactions.InteractionHook; -import net.dv8tion.jda.api.interactions.components.ActionRow; -import net.dv8tion.jda.api.interactions.components.buttons.Button; +import net.dv8tion.jda.api.components.actionrow.ActionRow; +import net.dv8tion.jda.api.components.buttons.Button; import java.time.OffsetDateTime; import java.util.ArrayList; diff --git a/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusGuild.java b/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusGuild.java index 9d196b5..08bba77 100644 --- a/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusGuild.java +++ b/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusGuild.java @@ -2,7 +2,6 @@ import dev.ryanland.colossus.sys.database.HibernateManager; import dev.ryanland.colossus.sys.database.entities.GuildEntity; -import net.dv8tion.jda.api.AccountType; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Region; @@ -14,8 +13,13 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.entities.channel.unions.DefaultGuildChannelUnion; import net.dv8tion.jda.api.entities.emoji.RichCustomEmoji; +import net.dv8tion.jda.api.entities.guild.SecurityIncidentDetections; +import net.dv8tion.jda.api.entities.guild.SystemChannelFlag; import net.dv8tion.jda.api.entities.sticker.GuildSticker; import net.dv8tion.jda.api.entities.sticker.StickerSnowflake; +import net.dv8tion.jda.api.entities.SelfMember; +import net.dv8tion.jda.api.entities.RoleMemberCounts; +import net.dv8tion.jda.api.entities.guild.SecurityIncidentActions; import net.dv8tion.jda.api.entities.templates.Template; import net.dv8tion.jda.api.events.guild.member.GenericGuildMemberEvent; import net.dv8tion.jda.api.events.guild.voice.GuildVoiceGuildDeafenEvent; @@ -93,11 +97,17 @@ public CommandListUpdateAction updateCommands() { return guild().updateCommands(); } - + @NotNull @Override - public CommandEditAction editCommandById(String id) { - return guild().editCommandById(id); + public CommandEditAction editCommandById(Command.Type type, String id) { + return guild().editCommandById(type, id); + } + + @NotNull + @Override + public CommandEditAction editCommandById(Command.Type type, long id) { + return guild().editCommandById(type, id); } @@ -339,16 +349,26 @@ public Timeout getAfkTimeout() { return guild().getAfkTimeout(); } - + @Override + public SecurityIncidentActions getSecurityIncidentActions() { + return guild().getSecurityIncidentActions(); + } + + @Override + public SecurityIncidentDetections getSecurityIncidentDetections() { + return guild().getSecurityIncidentDetections(); + } + + @Override public boolean isMember(UserSnowflake user) { return guild().isMember(user); } - + @NotNull @Override - public Member getSelfMember() { + public SelfMember getSelfMember() { return guild().getSelfMember(); } @@ -359,7 +379,12 @@ public NSFWLevel getNSFWLevel() { return guild().getNSFWLevel(); } - + @Override + public Set getSystemChannelFlags() { + return guild.getSystemChannelFlags(); + } + + @Nullable @Override public Member getMember(UserSnowflake user) { @@ -552,21 +577,8 @@ public RestAction leave() { return guild().leave(); } - - @NotNull - @Override - public RestAction delete() { - return guild().delete(); - } - - @NotNull - @Override - public RestAction delete(String mfaCode) { - return guild().delete(mfaCode); - } - @NotNull @Override public AudioManager getAudioManager() { @@ -709,7 +721,7 @@ public CacheRestAction retrieveScheduledEventById(String id) { *
The specified channel was deleted before finishing the task * * - * @param member The {@link Member Member} that you are moving. + * @param user The {@link Member Member} that you are moving. * @param audioChannel The destination {@link AudioChannel AudioChannel} to which the member is being * moved to. Or null to perform a voice kick. * @return {@link RestAction RestAction} @@ -728,8 +740,8 @@ public CacheRestAction retrieveScheduledEventById(String id) { */ @NotNull @Override - public RestAction moveVoiceMember(Member member, AudioChannel audioChannel) { - return guild().moveVoiceMember(member, audioChannel); + public RestAction moveVoiceMember(UserSnowflake user, AudioChannel audioChannel) { + return guild().moveVoiceMember(user, audioChannel); } /** @@ -925,35 +937,6 @@ public AuditableRestAction modifyMemberRoles(Member member, CollectionOnly available if the currently logged in account is the owner of this Guild - * - *

Possible {@link ErrorResponse ErrorResponses} caused by - * the returned {@link RestAction RestAction} include the following: - *

    - *
  • {@link ErrorResponse#MISSING_PERMISSIONS MISSING_PERMISSIONS} - *
    The currently logged in account lost ownership before completing the task
  • - * - *
  • {@link ErrorResponse#UNKNOWN_MEMBER UNKNOWN_MEMBER} - *
    The target Member was removed from the Guild before finishing the task
  • - *
- * - * @param newOwner Not-null Member to transfer ownership to - * @return {@link AuditableRestAction AuditableRestAction} - * @throws PermissionException If the currently logged in account is not the owner of this Guild - * @throws IllegalArgumentException
    - *
  • If the specified Member is {@code null} or not from the same Guild
  • - *
  • If the specified Member already is the Guild owner
  • - *
  • If the specified Member is a bot account ({@link AccountType#BOT AccountType.BOT})
  • - *
- */ - @NotNull - @Override - public AuditableRestAction transferOwnership(Member newOwner) { - return guild().transferOwnership(newOwner); - } - /** * Creates a new {@link TextChannel TextChannel} in this Guild. * For this to be successful, the logged in account has to have the {@link Permission#MANAGE_CHANNEL MANAGE_CHANNEL} Permission @@ -1360,6 +1343,35 @@ public GuildWelcomeScreenManager modifyWelcomeScreen() { return guild().modifyWelcomeScreen(); } + @NotNull + @Override + public RestAction retrieveRoleMemberCounts() { + return guild().retrieveRoleMemberCounts(); + } + + @NotNull + @Override + public AuditableRestAction modifySecurityIncidents(SecurityIncidentActions incidents) { + return guild().modifySecurityIncidents(incidents); + } + + @NotNull + @Override + public CacheRestAction retrieveMemberVoiceStateById(long id) { + return guild().retrieveMemberVoiceStateById(id); + } + + @NotNull + @Override + public RestAction> retrieveScheduledEvents(boolean withUserCount) { + return guild().retrieveScheduledEvents(withUserCount); + } + + @Override + public int getSystemChannelFlagsRaw() { + return guild().getSystemChannelFlagsRaw(); + } + /** * The Snowflake id of this entity. This is unique to every entity and will never change. * @@ -1369,4 +1381,9 @@ public GuildWelcomeScreenManager modifyWelcomeScreen() { public long getIdLong() { return guild().getIdLong(); } + + @Override + public boolean isDetached() { + return guild().isDetached(); + } } \ No newline at end of file diff --git a/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusMember.java b/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusMember.java index da8f414..70771b6 100644 --- a/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusMember.java +++ b/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusMember.java @@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.entities.channel.unions.DefaultGuildChannelUnion; import net.dv8tion.jda.api.entities.emoji.RichCustomEmoji; +import net.dv8tion.jda.api.entities.RoleColors; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -18,6 +19,7 @@ import java.util.Collection; import java.util.EnumSet; import java.util.List; +import java.util.Set; public record ColossusMember(Member member) implements Member { @@ -280,4 +282,21 @@ public long getIdLong() { public String getDefaultAvatarId() { return member().getDefaultAvatarId(); } + + @NotNull + @Override + public RoleColors getColors() { + return member().getColors(); + } + + @NotNull + @Override + public Set getUnsortedRoles() { + return member().getUnsortedRoles(); + } + + @Override + public boolean isDetached() { + return member().isDetached(); + } } diff --git a/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusUser.java b/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusUser.java index f392199..f637857 100644 --- a/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusUser.java +++ b/src/main/java/dev/ryanland/colossus/sys/snowflake/ColossusUser.java @@ -114,4 +114,10 @@ public String getAsMention() { public long getIdLong() { return user().getIdLong(); } + + @Nullable + @Override + public PrimaryGuild getPrimaryGuild() { + return user().getPrimaryGuild(); + } } diff --git a/src/main/java/dev/ryanland/colossus/sys/util/InteractionUtil.java b/src/main/java/dev/ryanland/colossus/sys/util/InteractionUtil.java index 699961b..c9c55af 100644 --- a/src/main/java/dev/ryanland/colossus/sys/util/InteractionUtil.java +++ b/src/main/java/dev/ryanland/colossus/sys/util/InteractionUtil.java @@ -2,8 +2,8 @@ import dev.ryanland.colossus.sys.interactions.button.BaseButton; import dev.ryanland.colossus.sys.interactions.button.ButtonRow; -import net.dv8tion.jda.api.interactions.components.ActionRow; -import net.dv8tion.jda.api.interactions.components.buttons.Button; +import net.dv8tion.jda.api.components.actionrow.ActionRow; +import net.dv8tion.jda.api.components.buttons.Button; import java.util.*;