Update JDA interactions and adjust package imports

This commit updates the handling of JDA interactions to use the latest available methods and classes. Classes such as Modal and SelectMenu have been refactored and updated with new package locations. This change also includes adjustments for event handling where methods dealing with SelectMenuInteractionEvent are updated to GenericSelectMenuInteractionEvent and StringSelectInteractionEvent. Finally, minor changes were made to replace the use of some javax annotations with their JetBrains equivalents.
This commit is contained in:
Teriuihi 2024-01-13 08:27:42 +01:00
parent 32f0935b4a
commit 57b86d1933
25 changed files with 58 additions and 55 deletions

View File

@ -54,12 +54,11 @@ tasks {
dependencies {
// JDA
implementation("net.dv8tion:JDA:5.0.0-alpha.20") {
implementation("net.dv8tion:JDA:5.0.0-beta.19") {
exclude("opus-java") // exclude audio
}
// MySQL
implementation("mysql:mysql-connector-java:8.0.28")
// implementation("org.mariadb.jdbc:mariadb-java-client:2.1.2")
implementation("mysql:mysql-connector-java:8.0.33")
// Configurate
implementation("org.spongepowered:configurate-yaml:4.1.2")
@ -68,7 +67,7 @@ dependencies {
implementation("org.apache.poi:poi:5.2.0")
implementation("org.apache.poi:poi-ooxml:5.2.0")
// Other stuff?
compileOnly("org.projectlombok:lombok:1.18.24")
compileOnly("org.projectlombok:lombok:1.18.30")
annotationProcessor("org.projectlombok:lombok:1.18.24")
implementation("com.alttd:AltitudeLogs:1.0")
}

View File

@ -10,7 +10,7 @@ dependencyResolutionManagement {
maven("https://repo.spongepowered.org/maven")
// MySQL
maven("https://jcenter.bintray.com")
maven("https://dev.alttd.com/releases")
maven("https://repo.destro.xyz/snapshots")
}
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
}

View File

@ -11,7 +11,7 @@ import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEve
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
import net.dv8tion.jda.api.interactions.commands.build.Commands;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
import net.dv8tion.jda.api.requests.RestAction;
import java.util.Collections;

View File

@ -16,7 +16,7 @@ import net.dv8tion.jda.api.interactions.commands.OptionMapping;
import net.dv8tion.jda.api.interactions.commands.OptionType;
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
import net.dv8tion.jda.api.interactions.commands.build.Commands;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
import java.util.Calendar;
import java.util.Collections;

View File

@ -10,7 +10,7 @@ import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEve
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
import net.dv8tion.jda.api.interactions.commands.build.Commands;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
import net.dv8tion.jda.api.requests.RestAction;
import java.util.Collections;

View File

@ -11,7 +11,7 @@ import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEve
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
import net.dv8tion.jda.api.interactions.commands.build.Commands;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
import net.dv8tion.jda.api.requests.RestAction;
import java.util.Collections;

View File

@ -8,8 +8,9 @@ import net.dv8tion.jda.api.events.interaction.command.MessageContextInteractionE
import net.dv8tion.jda.api.events.interaction.command.UserContextInteractionEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.requests.RestAction;
import org.jetbrains.annotations.NonNls;
import javax.annotation.Nonnull;
import java.awt.*;
import java.util.List;
import java.util.Optional;
@ -37,7 +38,7 @@ public class ContextMenuManager extends ListenerAdapter {
}
@Override
public void onUserContextInteraction(@Nonnull UserContextInteractionEvent event) {
public void onUserContextInteraction(@NonNls UserContextInteractionEvent event) {
String name = event.getInteraction().getName();
Optional<DiscordContextMenu> first = contextMenus.stream()
.filter(discordModal -> discordModal.getContextMenuId().equalsIgnoreCase(name))
@ -56,7 +57,7 @@ public class ContextMenuManager extends ListenerAdapter {
}
@Override
public void onMessageContextInteraction(@Nonnull MessageContextInteractionEvent event) {
public void onMessageContextInteraction(@NonNls MessageContextInteractionEvent event) {
String name = event.getInteraction().getName();
Optional<DiscordContextMenu> first = contextMenus.stream()
.filter(discordModal -> discordModal.getContextMenuId().equalsIgnoreCase(name))

View File

@ -18,7 +18,7 @@ import net.dv8tion.jda.api.events.interaction.command.UserContextInteractionEven
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
import net.dv8tion.jda.api.interactions.commands.build.Commands;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
import net.dv8tion.jda.api.requests.RestAction;
public class ContextMenuRespondSuggestion extends DiscordContextMenu {

View File

@ -12,8 +12,9 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
import net.dv8tion.jda.api.interactions.components.selections.SelectOption;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.annotation.Nullable;
import java.time.Instant;
import java.util.ArrayList;
import java.util.LinkedList;

View File

@ -16,9 +16,9 @@ import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.interactions.components.buttons.Button;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
@ -35,7 +35,7 @@ public class AppealRepost extends ListenerAdapter {
}
@Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
public void onMessageReceived(@NonNls MessageReceivedEvent event) {
if (event.getMember() != null) { //Webhooks aren't members
return;
}

View File

@ -12,10 +12,11 @@ import com.alttd.request.RequestManager;
import com.alttd.selectMenuManager.SelectMenuManager;
import com.alttd.util.Logger;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.events.ReadyEvent;
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
import net.dv8tion.jda.api.events.session.ReadyEvent;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.GenericSelectMenuInteractionEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.jetbrains.annotations.NotNull;
@ -58,10 +59,10 @@ public class JDAListener extends ListenerAdapter {
}
@Override
public void onSelectMenuInteraction(@NotNull SelectMenuInteractionEvent event) {
public void onGenericSelectMenuInteraction(@NotNull GenericSelectMenuInteractionEvent event) {
String s = event.getComponentId();
if (s.startsWith("request:")) {
RequestManager.onSelectMenuInteraction(event);
if (s.startsWith("request:") && event instanceof StringSelectInteractionEvent stringSelectInteractionEvent) {
RequestManager.onGenericSelectMenuInteraction(stringSelectInteractionEvent);
}
}

View File

@ -4,8 +4,9 @@ import com.alttd.database.queries.QueriesLockedChannels;
import com.alttd.util.Logger;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.jetbrains.annotations.NonNls;
import javax.annotation.Nonnull;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Objects;
@ -53,7 +54,7 @@ public class LockedChannel extends ListenerAdapter {
}
@Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
public void onMessageReceived(@NonNls MessageReceivedEvent event) {
if (!event.isFromGuild() || event.getAuthor().isBot() || event.getAuthor().isSystem())
return;
long guildId = event.getGuild().getIdLong();

View File

@ -1,7 +1,7 @@
package com.alttd.modalManager;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
public abstract class DiscordModal {

View File

@ -6,7 +6,7 @@ import com.alttd.util.Util;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
import net.dv8tion.jda.api.requests.RestAction;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

View File

@ -12,7 +12,7 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.interactions.components.ActionRow;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
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.ModalMapping;

View File

@ -12,7 +12,7 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.interactions.components.ActionRow;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
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.ModalMapping;

View File

@ -11,7 +11,7 @@ import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.interactions.components.ActionRow;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
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;

View File

@ -6,7 +6,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.interactions.components.ActionRow;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
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.ModalMapping;

View File

@ -14,7 +14,7 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.interactions.components.ActionRow;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
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;

View File

@ -9,7 +9,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
import net.dv8tion.jda.api.interactions.components.ActionRow;
import net.dv8tion.jda.api.interactions.components.Modal;
import net.dv8tion.jda.api.interactions.modals.Modal;
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;

View File

@ -7,8 +7,10 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.GenericSelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu;
import java.awt.*;
@ -20,9 +22,9 @@ public class RequestManager {
sendRequestMessage();
}
public static Pair<EmbedBuilder, SelectMenu.Builder> getRequestEmbed() {
public static Pair<EmbedBuilder, StringSelectMenu.Builder> getRequestEmbed() {
EmbedBuilder embedBuilder = new EmbedBuilder();
SelectMenu.Builder selectMenuBuilder = SelectMenu.create("request:create");
StringSelectMenu.Builder selectMenuBuilder = StringSelectMenu.create("request:create");
embedBuilder.setDescription("Select an option below to open a request!\n")
.setTitle("Create a new request.")
.setColor(new Color(41, 43, 47));
@ -37,7 +39,7 @@ public class RequestManager {
public static void sendRequestMessage() {
TextChannel channel = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID).getTextChannelById(RequestConfig.REQUEST_CHANNEL);
Pair<EmbedBuilder, SelectMenu.Builder> pair = getRequestEmbed();
Pair<EmbedBuilder, StringSelectMenu.Builder> pair = getRequestEmbed();
channel.sendMessageEmbeds(pair.getValue0().build()).setActionRow(
pair.getValue1().build()
).queue(m -> RequestConfig.setRequestMessage(m.getId()));
@ -45,7 +47,7 @@ public class RequestManager {
public static void updateRequestMessage() {
TextChannel channel = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID).getTextChannelById(RequestConfig.REQUEST_CHANNEL);
Pair<EmbedBuilder, SelectMenu.Builder> pair = getRequestEmbed();
Pair<EmbedBuilder, StringSelectMenu.Builder> pair = getRequestEmbed();
channel.editMessageEmbedsById(RequestConfig.REQUEST_MESSAGE, pair.getValue0().build())
.setActionRow(
pair.getValue1().build()
@ -56,7 +58,7 @@ public class RequestManager {
return RequestConfig.requests.stream().filter(request -> request.getId().equalsIgnoreCase(id)).findFirst().orElse(null);
}
public static void onSelectMenuInteraction(SelectMenuInteractionEvent event) {
public static void onGenericSelectMenuInteraction(StringSelectInteractionEvent event) {
String[] actions = event.getComponentId().split(":");
if (actions[1].equals("create")) {
String[] selection = event.getSelectedOptions().get(0).getValue().split(":");

View File

@ -11,8 +11,8 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
import org.jetbrains.annotations.Nullable;
import javax.annotation.Nullable;
import java.awt.*;
import java.time.Instant;
import java.util.*;

View File

@ -1,6 +1,7 @@
package com.alttd.selectMenuManager;
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.GenericSelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
import net.dv8tion.jda.api.interactions.components.selections.SelectOption;
@ -10,7 +11,7 @@ public abstract class DiscordSelectMenu {
public abstract String getSelectMenuId();
public abstract void execute(SelectMenuInteractionEvent event);
public abstract void execute(StringSelectInteractionEvent event);
public abstract SelectMenu getSelectMenu(List<SelectOption> selectOptions);
}

View File

@ -1,15 +1,12 @@
package com.alttd.selectMenuManager;
import com.alttd.selectMenuManager.selectMenus.SelectMenuAuction;
import com.alttd.util.Util;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.GenericSelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.requests.RestAction;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
import java.util.List;
import java.util.Optional;
@ -22,7 +19,7 @@ public class SelectMenuManager extends ListenerAdapter {
}
@Override
public void onSelectMenuInteraction(@NotNull SelectMenuInteractionEvent event) {
public void onGenericSelectMenuInteraction(@NotNull GenericSelectMenuInteractionEvent event) {
String selectMenuId = event.getSelectMenu().getId();
Optional<DiscordSelectMenu> first = buttons.stream()
.filter(discordModal -> discordModal.getSelectMenuId().equalsIgnoreCase(selectMenuId))
@ -37,16 +34,15 @@ public class SelectMenuManager extends ListenerAdapter {
// .queue(RestAction.getDefaultSuccess(), Util::handleFailure);
return;
}
first.get().execute(event);
if (event instanceof StringSelectInteractionEvent stringSelectInteractionEvent)
first.get().execute(stringSelectInteractionEvent);
}
public @Nullable DiscordSelectMenu getDiscordSelectMenuFor(String buttonId) {
Optional<DiscordSelectMenu> first = buttons.stream()
.filter(discordSelectMenu -> discordSelectMenu.getSelectMenuId().equalsIgnoreCase(buttonId))
.findFirst();
if (first.isEmpty())
return null;
return first.get();
return first.orElse(null);
}
}

View File

@ -10,9 +10,10 @@ import com.alttd.util.Util;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
import net.dv8tion.jda.api.interactions.components.selections.SelectOption;
import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu;
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
import java.time.Instant;
@ -34,7 +35,7 @@ public class SelectMenuAuction extends DiscordSelectMenu {
}
@Override
public void execute(SelectMenuInteractionEvent event) {
public void execute(StringSelectInteractionEvent event) {
Member member = event.getMember();
if (member == null) {
event.replyEmbeds(Util.genericErrorEmbed("Error", "This can only be used in a guild"))
@ -136,7 +137,7 @@ public class SelectMenuAuction extends DiscordSelectMenu {
error -> replyCallbackAction.setEmbeds(Util.genericErrorEmbed("Error", "Unable to finish your bid")).queue());
}
private MessageEmbed getMessageEmbed(List<MessageEmbed> embeds, SelectMenuInteractionEvent event) {
private MessageEmbed getMessageEmbed(List<MessageEmbed> embeds, StringSelectInteractionEvent event) {
if (embeds.isEmpty()) {
event.replyEmbeds(Util.genericErrorEmbed("Error", "Input came from message with no embeds"))
.setEphemeral(true).queue();
@ -147,7 +148,7 @@ public class SelectMenuAuction extends DiscordSelectMenu {
@Override
public SelectMenu getSelectMenu(List<SelectOption> selectOptions) {
SelectMenu.Builder builder = SelectMenu.create(getSelectMenuId());
StringSelectMenu.Builder builder = StringSelectMenu.create(getSelectMenuId());
if (selectOptions != null)
builder.addOptions(selectOptions);
return builder.build();