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`.
This commit is contained in:
parent
b917a8c18f
commit
e9db832901
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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(":");
|
||||
|
|
|
|||
|
|
@ -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<DiscordSelectMenu> 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) {
|
||||
|
|
|
|||
|
|
@ -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<MessageEmbed> embeds, StringSelectInteractionEvent event) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user