[FEAT] Update Embed Lists to use Buttons instead of reactions

This commit is contained in:
2023-11-11 16:36:11 +02:00
parent 15b2796206
commit 3be9495ade
4 changed files with 12 additions and 25 deletions

View File

@@ -1,6 +1,6 @@
version_major=0 version_major=0
version_minor=0 version_minor=0
version_patch=40 version_patch=49
shade_group=com.hypherionmc.sdlink.shaded. shade_group=com.hypherionmc.sdlink.shaded.

View File

@@ -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.services.SDLinkPlatform;
import com.hypherionmc.sdlink.core.util.MessageUtil; import com.hypherionmc.sdlink.core.util.MessageUtil;
import com.jagrosh.jdautilities.command.SlashCommandEvent; 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.EmbedBuilder;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
@@ -50,7 +50,7 @@ public class PlayerListSlashCommand extends SDLinkSlashCommand {
return; return;
} }
EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event); ButtonEmbedPaginator.Builder paginator = MessageUtil.defaultPaginator();
/** /**
* Use Pagination to avoid message limits * Use Pagination to avoid message limits
@@ -76,7 +76,7 @@ public class PlayerListSlashCommand extends SDLinkSlashCommand {
}); });
paginator.setItems(pages); paginator.setItems(pages);
EmbedPaginator embedPaginator = paginator.build(); ButtonEmbedPaginator embedPaginator = paginator.build();
event.replyEmbeds(pages.get(0)).setEphemeral(false).queue(success -> event.replyEmbeds(pages.get(0)).setEphemeral(false).queue(success ->
success.retrieveOriginal().queue(msg -> embedPaginator.paginate(msg, 1))); success.retrieveOriginal().queue(msg -> embedPaginator.paginate(msg, 1)));

View File

@@ -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.discord.commands.slash.SDLinkSlashCommand;
import com.hypherionmc.sdlink.core.util.MessageUtil; import com.hypherionmc.sdlink.core.util.MessageUtil;
import com.jagrosh.jdautilities.command.SlashCommandEvent; 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.EmbedBuilder;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
@@ -37,7 +37,7 @@ public class ViewVerifiedAccounts extends SDLinkSlashCommand {
@Override @Override
protected void execute(SlashCommandEvent event) { protected void execute(SlashCommandEvent event) {
try { try {
EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event); ButtonEmbedPaginator.Builder paginator = MessageUtil.defaultPaginator();
sdlinkDatabase.reloadCollection("verifiedaccounts"); sdlinkDatabase.reloadCollection("verifiedaccounts");
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class); List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
@@ -72,7 +72,7 @@ public class ViewVerifiedAccounts extends SDLinkSlashCommand {
}); });
paginator.setItems(pages); 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))); event.replyEmbeds(pages.get(0)).setEphemeral(false).queue(success -> success.retrieveOriginal().queue(msg -> embedPaginator.paginate(msg, 1)));
} catch (Exception e) { } catch (Exception e) {

View File

@@ -7,14 +7,11 @@ package com.hypherionmc.sdlink.core.util;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.hypherionmc.sdlink.core.discord.BotController; import com.hypherionmc.sdlink.core.discord.BotController;
import com.jagrosh.jdautilities.command.SlashCommandEvent; import com.jagrosh.jdautilities.menu.ButtonEmbedPaginator;
import com.jagrosh.jdautilities.menu.EmbedPaginator;
import net.dv8tion.jda.api.exceptions.PermissionException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.BiFunction;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import java.util.stream.Stream; import java.util.stream.Stream;
@@ -27,23 +24,13 @@ public class MessageUtil {
/** /**
* Create an Embed Paginator for use with Slash Commands * Create an Embed Paginator for use with Slash Commands
* @param event The event of the executed command
*/ */
public static EmbedPaginator.Builder defaultPaginator(SlashCommandEvent event) { public static ButtonEmbedPaginator.Builder defaultPaginator() {
return new EmbedPaginator.Builder() return new ButtonEmbedPaginator.Builder()
.setTimeout(1, TimeUnit.MINUTES) .setTimeout(1, TimeUnit.MINUTES)
.setEventWaiter(BotController.INSTANCE.getEventWaiter()) .setEventWaiter(BotController.INSTANCE.getEventWaiter())
.waitOnSinglePage(true) .waitOnSinglePage(false)
.setFinalAction(m -> { .setFinalAction(m -> m.editMessageComponents().queue());
try {
m.clearReactions().queue();
m.delete().queue();
} catch(PermissionException ex) {
ex.printStackTrace();
event.reply(ex.getMessage()).setEphemeral(true).queue();
}
})
.setText((BiFunction<Integer, Integer, String>) null);
} }
/** /**