From e9db832901883ceac897e1b7699c13a0f744a053 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 14 Jan 2024 13:26:43 +0100 Subject: [PATCH] Refactor code to replace GenericSelectMenuInteraction with StringSelectInteraction The commit replaces instances of `GenericSelectMenuInteractionEvent` with `StringSelectInteractionEvent` to enhance type safety. This renaming results in a more specific interaction event and eliminates the need to check for type instantiation. In addition, a modification has been made to ensure a bid finishes properly in the `SelectMenuAuction` class with `deferEdit`. --- src/main/java/com/alttd/listeners/JDAListener.java | 6 +++--- src/main/java/com/alttd/request/RequestManager.java | 4 +--- .../java/com/alttd/selectMenuManager/SelectMenuManager.java | 5 ++--- .../selectMenuManager/selectMenus/SelectMenuAuction.java | 5 +++-- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/alttd/listeners/JDAListener.java b/src/main/java/com/alttd/listeners/JDAListener.java index c9c324a..917861e 100644 --- a/src/main/java/com/alttd/listeners/JDAListener.java +++ b/src/main/java/com/alttd/listeners/JDAListener.java @@ -59,10 +59,10 @@ public class JDAListener extends ListenerAdapter { } @Override - public void onGenericSelectMenuInteraction(@NotNull GenericSelectMenuInteractionEvent event) { + public void onStringSelectInteraction(@NotNull StringSelectInteractionEvent event) { String s = event.getComponentId(); - if (s.startsWith("request:") && event instanceof StringSelectInteractionEvent stringSelectInteractionEvent) { - RequestManager.onGenericSelectMenuInteraction(stringSelectInteractionEvent); + if (s.startsWith("request:")) { + RequestManager.onStringSelectInteraction(event); } } diff --git a/src/main/java/com/alttd/request/RequestManager.java b/src/main/java/com/alttd/request/RequestManager.java index e67bd04..b17fbb3 100644 --- a/src/main/java/com/alttd/request/RequestManager.java +++ b/src/main/java/com/alttd/request/RequestManager.java @@ -7,9 +7,7 @@ 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.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.*; @@ -58,7 +56,7 @@ public class RequestManager { return RequestConfig.requests.stream().filter(request -> request.getId().equalsIgnoreCase(id)).findFirst().orElse(null); } - public static void onGenericSelectMenuInteraction(StringSelectInteractionEvent event) { + public static void onStringSelectInteraction(StringSelectInteractionEvent event) { String[] actions = event.getComponentId().split(":"); if (actions[1].equals("create")) { String[] selection = event.getSelectedOptions().get(0).getValue().split(":"); diff --git a/src/main/java/com/alttd/selectMenuManager/SelectMenuManager.java b/src/main/java/com/alttd/selectMenuManager/SelectMenuManager.java index 83137a7..64d9240 100644 --- a/src/main/java/com/alttd/selectMenuManager/SelectMenuManager.java +++ b/src/main/java/com/alttd/selectMenuManager/SelectMenuManager.java @@ -19,7 +19,7 @@ public class SelectMenuManager extends ListenerAdapter { } @Override - public void onGenericSelectMenuInteraction(@NotNull GenericSelectMenuInteractionEvent event) { + public void onStringSelectInteraction(@NotNull StringSelectInteractionEvent event) { String selectMenuId = event.getSelectMenu().getId(); Optional first = buttons.stream() .filter(discordModal -> discordModal.getSelectMenuId().equalsIgnoreCase(selectMenuId)) @@ -34,8 +34,7 @@ public class SelectMenuManager extends ListenerAdapter { // .queue(RestAction.getDefaultSuccess(), Util::handleFailure); return; } - if (event instanceof StringSelectInteractionEvent stringSelectInteractionEvent) - first.get().execute(stringSelectInteractionEvent); + first.get().execute(event); } public @Nullable DiscordSelectMenu getDiscordSelectMenuFor(String buttonId) { diff --git a/src/main/java/com/alttd/selectMenuManager/selectMenus/SelectMenuAuction.java b/src/main/java/com/alttd/selectMenuManager/selectMenus/SelectMenuAuction.java index e040828..bd8799c 100644 --- a/src/main/java/com/alttd/selectMenuManager/selectMenus/SelectMenuAuction.java +++ b/src/main/java/com/alttd/selectMenuManager/selectMenus/SelectMenuAuction.java @@ -120,7 +120,7 @@ public class SelectMenuAuction extends DiscordSelectMenu { embedBuilder.addField("Current Bid", "$" + Util.formatNumber(currentBid) + " by " + event.getMember().getAsMention(), false); ReplyCallbackAction replyCallbackAction = event.deferReply(true); - event.getMessage().editMessageEmbeds(embedBuilder.build()).queue( + event.deferEdit().queue(edit -> edit.editOriginalEmbeds(embedBuilder.build()).queue( success -> { if (auction.updateExpiry()) auctionScheduler.updateAuction(auction); @@ -134,7 +134,8 @@ public class SelectMenuAuction extends DiscordSelectMenu { .queue(); success.editMessageComponents().setActionRow(auction.getSelectMenu(selectMenuManager, true)).queue(); }, - error -> replyCallbackAction.setEmbeds(Util.genericErrorEmbed("Error", "Unable to finish your bid")).queue()); + error -> replyCallbackAction.setEmbeds(Util.genericErrorEmbed("Error", "Unable to finish your bid")).queue()) + ); } private MessageEmbed getMessageEmbed(List embeds, StringSelectInteractionEvent event) {