[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:
Sheldan
2025-01-31 19:03:38 +01:00
parent e952727849
commit 77b97507b3
15 changed files with 120 additions and 364 deletions

View File

@@ -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