mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-07 00:30:50 +00:00
[AB-xxx] adding ability to add additional channels to a post target
adding auto complete to post target command
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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]));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user