From 3be9495aded9d01e75b118b6f2f3cff0b0282731 Mon Sep 17 00:00:00 2001 From: HypherionMC Date: Sat, 11 Nov 2023 16:36:11 +0200 Subject: [PATCH] [FEAT] Update Embed Lists to use Buttons instead of reactions --- gradle.properties | 2 +- .../slash/general/PlayerListSlashCommand.java | 6 ++--- .../verification/ViewVerifiedAccounts.java | 6 ++--- .../sdlink/core/util/MessageUtil.java | 23 ++++--------------- 4 files changed, 12 insertions(+), 25 deletions(-) diff --git a/gradle.properties b/gradle.properties index 738ccf0..fa5b9fa 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ version_major=0 version_minor=0 -version_patch=40 +version_patch=49 shade_group=com.hypherionmc.sdlink.shaded. diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/general/PlayerListSlashCommand.java b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/general/PlayerListSlashCommand.java index bfabd56..5391c77 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/general/PlayerListSlashCommand.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/general/PlayerListSlashCommand.java @@ -10,7 +10,7 @@ import com.hypherionmc.sdlink.core.discord.commands.slash.SDLinkSlashCommand; import com.hypherionmc.sdlink.core.services.SDLinkPlatform; import com.hypherionmc.sdlink.core.util.MessageUtil; import com.jagrosh.jdautilities.command.SlashCommandEvent; -import com.jagrosh.jdautilities.menu.EmbedPaginator; +import com.jagrosh.jdautilities.menu.ButtonEmbedPaginator; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -50,7 +50,7 @@ public class PlayerListSlashCommand extends SDLinkSlashCommand { return; } - EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event); + ButtonEmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(); /** * Use Pagination to avoid message limits @@ -76,7 +76,7 @@ public class PlayerListSlashCommand extends SDLinkSlashCommand { }); paginator.setItems(pages); - EmbedPaginator embedPaginator = paginator.build(); + ButtonEmbedPaginator embedPaginator = paginator.build(); event.replyEmbeds(pages.get(0)).setEphemeral(false).queue(success -> success.retrieveOriginal().queue(msg -> embedPaginator.paginate(msg, 1))); diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/verification/ViewVerifiedAccounts.java b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/verification/ViewVerifiedAccounts.java index 5174432..062ad1f 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/verification/ViewVerifiedAccounts.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/verification/ViewVerifiedAccounts.java @@ -9,7 +9,7 @@ import com.hypherionmc.sdlink.core.database.SDLinkAccount; import com.hypherionmc.sdlink.core.discord.commands.slash.SDLinkSlashCommand; import com.hypherionmc.sdlink.core.util.MessageUtil; import com.jagrosh.jdautilities.command.SlashCommandEvent; -import com.jagrosh.jdautilities.menu.EmbedPaginator; +import com.jagrosh.jdautilities.menu.ButtonEmbedPaginator; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -37,7 +37,7 @@ public class ViewVerifiedAccounts extends SDLinkSlashCommand { @Override protected void execute(SlashCommandEvent event) { try { - EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event); + ButtonEmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(); sdlinkDatabase.reloadCollection("verifiedaccounts"); List accounts = sdlinkDatabase.findAll(SDLinkAccount.class); @@ -72,7 +72,7 @@ public class ViewVerifiedAccounts extends SDLinkSlashCommand { }); paginator.setItems(pages); - EmbedPaginator embedPaginator = paginator.build(); + ButtonEmbedPaginator embedPaginator = paginator.build(); event.replyEmbeds(pages.get(0)).setEphemeral(false).queue(success -> success.retrieveOriginal().queue(msg -> embedPaginator.paginate(msg, 1))); } catch (Exception e) { diff --git a/src/main/java/com/hypherionmc/sdlink/core/util/MessageUtil.java b/src/main/java/com/hypherionmc/sdlink/core/util/MessageUtil.java index 51607e6..99b2c19 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/util/MessageUtil.java +++ b/src/main/java/com/hypherionmc/sdlink/core/util/MessageUtil.java @@ -7,14 +7,11 @@ package com.hypherionmc.sdlink.core.util; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.hypherionmc.sdlink.core.discord.BotController; -import com.jagrosh.jdautilities.command.SlashCommandEvent; -import com.jagrosh.jdautilities.menu.EmbedPaginator; -import net.dv8tion.jda.api.exceptions.PermissionException; +import com.jagrosh.jdautilities.menu.ButtonEmbedPaginator; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; -import java.util.function.BiFunction; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; @@ -27,23 +24,13 @@ public class MessageUtil { /** * Create an Embed Paginator for use with Slash Commands - * @param event The event of the executed command */ - public static EmbedPaginator.Builder defaultPaginator(SlashCommandEvent event) { - return new EmbedPaginator.Builder() + public static ButtonEmbedPaginator.Builder defaultPaginator() { + return new ButtonEmbedPaginator.Builder() .setTimeout(1, TimeUnit.MINUTES) .setEventWaiter(BotController.INSTANCE.getEventWaiter()) - .waitOnSinglePage(true) - .setFinalAction(m -> { - try { - m.clearReactions().queue(); - m.delete().queue(); - } catch(PermissionException ex) { - ex.printStackTrace(); - event.reply(ex.getMessage()).setEphemeral(true).queue(); - } - }) - .setText((BiFunction) null); + .waitOnSinglePage(false) + .setFinalAction(m -> m.editMessageComponents().queue()); } /**