[AB-85] adding feature mode to automatically create a thread for suggestions

reworking post target service to function with optionals
fixing trying to add reactions for suggestions if there was no message created
not showing votes in case the buttons feature mode is active
This commit is contained in:
Sheldan
2023-02-26 10:50:36 +01:00
parent 97895f5c56
commit 9d184ff560
8 changed files with 211 additions and 120 deletions

View File

@@ -6,8 +6,10 @@ import dev.sheldan.abstracto.core.models.database.PostTarget;
import dev.sheldan.abstracto.core.templating.model.MessageToSend;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
public interface PostTargetService {
@@ -23,14 +25,15 @@ public interface PostTargetService {
List<CompletableFuture<Message>> editEmbedInPostTarget(Long messageId, MessageToSend message, PostTargetEnum postTargetName, Long serverId);
List<CompletableFuture<Message>> editOrCreatedInPostTarget(Long messageId, MessageToSend messageToSend, PostTarget target);
List<CompletableFuture<Message>> editOrCreatedInPostTarget(Long messageId, MessageToSend messageToSend, PostTargetEnum postTarget, Long serverId);
void throwIfPostTargetIsNotDefined(PostTargetEnum name, Long serverId);
boolean postTargetDefinedInServer(PostTargetEnum name, Long serverId);
void throwIfPostTargetIsNotDefined(PostTargetEnum targetEnum, Long serverId);
boolean postTargetDefinedInServer(PostTargetEnum targetEnum, Long serverId);
boolean validPostTarget(String name);
void validatePostTarget(PostTargetEnum name, Long serverId);
boolean postTargetUsableInServer(PostTargetEnum name, Long serverId);
void validatePostTarget(PostTargetEnum targetEnum, Long serverId);
boolean postTargetUsableInServer(PostTargetEnum targetEnum, Long serverId);
List<PostTarget> getPostTargets(AServer server);
List<String> getAvailablePostTargets();
List<String> getPostTargetsOfEnabledFeatures(AServer server);
void disablePostTarget(String name, Long serverId);
void enablePostTarget(String name, Long serverId);
Optional<GuildMessageChannel> getPostTargetChannel(PostTargetEnum postTargetEnum, Long serverId);
}