[FEAT] Update Embed Lists to use Buttons instead of reactions
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
version_major=0
|
||||
version_minor=0
|
||||
version_patch=40
|
||||
version_patch=49
|
||||
|
||||
shade_group=com.hypherionmc.sdlink.shaded.
|
||||
|
||||
|
@@ -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)));
|
||||
|
@@ -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) {
|
||||
|
@@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user