mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-05 00:53:04 +00:00
[AB-xxx] adding paginators to emote stats
adding handling for emotes which are only provided as ID to command inputs removing message commands from emote statistic related commands
This commit is contained in:
@@ -14,6 +14,7 @@ import dev.sheldan.abstracto.core.templating.model.EmbedFooter;
|
||||
import dev.sheldan.abstracto.core.templating.model.MessageToSend;
|
||||
import dev.sheldan.abstracto.core.templating.service.TemplateService;
|
||||
import dev.sheldan.abstracto.core.templating.service.TemplateServiceBean;
|
||||
import dev.sheldan.abstracto.core.utils.CompletableFutureList;
|
||||
import dev.sheldan.abstracto.core.utils.FutureUtils;
|
||||
import dev.sheldan.abstracto.scheduling.model.JobParameters;
|
||||
import dev.sheldan.abstracto.scheduling.service.SchedulerService;
|
||||
@@ -23,6 +24,7 @@ import lombok.Setter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.interactions.callbacks.IReplyCallback;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -138,6 +140,16 @@ public class PaginatorServiceBean implements PaginatorService {
|
||||
.thenAccept(message -> self.setupButtonPayloads(message, setup, serverId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> sendPaginatorToInteraction(String templateKey, Object model, InteractionHook interactionHook) {
|
||||
Long serverId = interactionHook.getInteraction().getGuild().getIdLong();
|
||||
PaginatorSetup setup = getPaginatorSetup(templateKey, model, interactionHook.getInteraction().getUser().getIdLong(), serverId);
|
||||
CompletableFutureList<Message> futures =
|
||||
new CompletableFutureList<>(interactionService.sendMessageToInteraction(setup.getMessageToSend(), interactionHook));
|
||||
return futures
|
||||
.getMainFuture().thenAccept(aVoid -> self.setupButtonPayloads(futures.getFutures().get(0).join(), setup, serverId));
|
||||
}
|
||||
|
||||
private void setupFooters(PaginatorConfiguration configuration, Long serverId) {
|
||||
for (int i = 0; i < configuration.getEmbedConfigs().size(); i++) {
|
||||
PaginatorFooterModel paginatorModel = PaginatorFooterModel
|
||||
|
||||
@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.core.service;
|
||||
|
||||
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.interactions.callbacks.IReplyCallback;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -9,4 +10,5 @@ import java.util.concurrent.CompletableFuture;
|
||||
public interface PaginatorService {
|
||||
CompletableFuture<Void> createPaginatorFromTemplate(String templateKey, Object model, GuildMessageChannel textChannel, Long userId);
|
||||
CompletableFuture<Void> createPaginatorFromTemplate(String templateKey, Object model, IReplyCallback callback);
|
||||
CompletableFuture<Void> sendPaginatorToInteraction(String templateKey, Object model, InteractionHook interactionHook);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user