[AB-xxx] adding ability to add additional channels to a post target

adding auto complete to post target command
This commit is contained in:
Sheldan
2025-12-17 23:54:54 +01:00
parent 0f6adacd90
commit 274dd77eeb
31 changed files with 287 additions and 83 deletions

View File

@@ -1,16 +1,26 @@
package dev.sheldan.abstracto.core.models.template.commands;
import dev.sheldan.abstracto.core.models.database.PostTarget;
import dev.sheldan.abstracto.core.models.template.display.ChannelDisplay;
import java.util.List;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
@Getter
@Setter
@Builder
public class PostTargetModelEntry {
private PostTarget postTarget;
private MessageChannel channel;
private String name;
private ChannelDisplay channel;
private PostTargetChannelGroup channelGroup;
private Boolean disabled;
@Getter
@Builder
public static class PostTargetChannelGroup {
private String name;
private Boolean disabled;
private List<ChannelDisplay> additionalChannels;
}
}

View File

@@ -13,14 +13,15 @@ import java.util.Optional;
import java.util.concurrent.CompletableFuture;
public interface PostTargetService {
CompletableFuture<Message> sendTextInPostTarget(String text, PostTarget target);
CompletableFuture<Message> sendEmbedInPostTarget(MessageEmbed embed, PostTarget target);
CompletableFuture<Message> sendTextInPostTarget(String text, PostTargetEnum postTargetName, Long serverId);
CompletableFuture<Message> sendEmbedInPostTarget(MessageEmbed embed, PostTargetEnum postTargetName, Long serverId);
CompletableFuture<Message> sendMessageInPostTarget(Message message, PostTargetEnum postTargetName, Long serverId);
CompletableFuture<Message> sendMessageInPostTarget(Message message, PostTarget target);
List<CompletableFuture<Message>> sendEmbedInPostTarget(MessageToSend message, PostTargetEnum postTargetName, Long serverId);
List<CompletableFuture<Message>> sendEmbedInPostTarget(MessageToSend message, PostTarget target);
List<CompletableFuture<Message>> sendTextInPostTarget(String text, PostTarget target);
List<CompletableFuture<Message>> sendEmbedInPostTarget(MessageEmbed embed, PostTarget target);
List<CompletableFuture<Message>> sendTextInPostTarget(String text, PostTargetEnum postTargetName, Long serverId);
List<CompletableFuture<Message>> sendEmbedInPostTarget(MessageEmbed embed, PostTargetEnum postTargetName, Long serverId);
List<CompletableFuture<Message>> sendMessageInPostTarget(Message message, PostTargetEnum postTargetName, Long serverId);
List<CompletableFuture<Message>> sendMessageInPostTarget(Message message, PostTarget target);
List<List<CompletableFuture<Message>>> sendEmbedInPostTarget(MessageToSend message, PostTargetEnum postTargetName, Long serverId);
List<List<CompletableFuture<Message>>> sendEmbedInPostTarget(List<MessageToSend> messages, PostTargetEnum postTargetName, Long serverId);
List<List<CompletableFuture<Message>>> sendEmbedInPostTarget(MessageToSend message, PostTarget target);
List<CompletableFuture<Message>> editEmbedInPostTarget(Long messageId, MessageToSend message, PostTarget target);
List<CompletableFuture<Message>> editEmbedInPostTarget(Long messageId, MessageToSend message, PostTargetEnum postTargetName, Long serverId);
List<CompletableFuture<Message>> editOrCreatedInPostTarget(Long messageId, MessageToSend messageToSend, PostTarget target);

View File

@@ -19,6 +19,7 @@ public interface ChannelGroupManagementService {
AChannelGroup findByNameAndServer(String name, AServer server);
Optional<AChannelGroup> findByNameAndServerOptional(String name, AServer server);
AChannelGroup findByNameAndServerAndType(String name, AServer server, String expectedType);
Optional<AChannelGroup> findByNameAndServerAndTypeOptional(String name, AServer server, String expectedType);
List<AChannelGroup> findAllInServer(AServer server);
List<String> getAllAvailableAsString(AServer server);
List<AChannelGroup> findAllInServer(Long serverId);

View File

@@ -12,6 +12,11 @@ public class FutureUtils {
return CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
}
public static <T> CompletableFuture<Void> toSingleFutureGenericList(List<List<CompletableFuture<T>>> futures) {
List<CompletableFuture<T>> allFutures = futures.stream().flatMap(List::stream).toList();
return toSingleFutureGeneric(allFutures);
}
public static CompletableFuture<Void> toSingleFuture(List<CompletableFuture<?>> futures) {
return CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
}