[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_minor=0
version_patch=40
version_patch=49
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.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)));

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.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<SDLinkAccount> 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) {

View File

@@ -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<Integer, Integer, String>) null);
.waitOnSinglePage(false)
.setFinalAction(m -> m.editMessageComponents().queue());
}
/**