Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class ButtonClickEvent implements EditableRepliableEvent {
public static void addListener(Long msgId, List<ButtonRow> buttonRows) {
List<ButtonIdentifier> 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);
}));
Expand Down Expand Up @@ -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()));
}

/**
Expand All @@ -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) {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public class SelectMenuEvent implements EditableRepliableEvent {
*/
public static void addListener(Long msgId, BaseSelectMenu selectMenu) {
List<SelectMenuIdentifier> 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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -46,8 +47,8 @@ public static PresetBuilder renderPage(long userId, List<ScrollPage> 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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Loading