[FEAT] Update Embed Lists to use Buttons instead of reactions
This commit is contained in:
@@ -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.
|
||||||
|
|
||||||
|
@@ -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)));
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user