mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-14 03:45:57 +00:00
[AB-90] adding poll functionality
adding select menu functionality not automatically acknowledging button interactions adding ability to define positions for components adding method to remove components to channel service always replacing message contents with edit message in a channel adding ability to reply a modal to a button interaction moving post target specific methods from server management service to post target management
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.core.interaction;
|
||||
|
||||
import dev.sheldan.abstracto.core.interaction.menu.SelectMenuConfigModel;
|
||||
import dev.sheldan.abstracto.core.interaction.modal.ModalConfigPayload;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import dev.sheldan.abstracto.core.models.database.ComponentPayload;
|
||||
@@ -14,6 +15,8 @@ public interface ComponentPayloadManagementService {
|
||||
void updatePayload(String id, String payload);
|
||||
ComponentPayload createButtonPayload(ButtonConfigModel buttonConfigModel, AServer server);
|
||||
ComponentPayload createButtonPayload(ButtonConfigModel buttonConfigModel, Long serverId);
|
||||
ComponentPayload createStringSelectMenuPayload(SelectMenuConfigModel selectMenuConfigModel, Long serverId);
|
||||
ComponentPayload createStringSelectMenuPayload(SelectMenuConfigModel selectMenuConfigModel, AServer server);
|
||||
ComponentPayload createModalPayload(ModalConfigPayload payloadConfig, Long serverId);
|
||||
Optional<ComponentPayload> findPayload(String id);
|
||||
List<ComponentPayload> findPayloadsOfOriginInServer(String buttonOrigin, AServer server);
|
||||
|
||||
@@ -12,9 +12,10 @@ public interface InteractionService {
|
||||
List<CompletableFuture<Message>> sendMessageToInteraction(MessageToSend messageToSend, InteractionHook interactionHook);
|
||||
List<CompletableFuture<Message>> sendMessageToInteraction(String templateKey, Object model, InteractionHook interactionHook);
|
||||
CompletableFuture<InteractionHook> replyEmbed(String templateKey, Object model, IReplyCallback callback);
|
||||
CompletableFuture<InteractionHook> replyString(String text, IReplyCallback callback);
|
||||
CompletableFuture<InteractionHook> replyString(String text, IReplyCallback callback);
|
||||
CompletableFuture<InteractionHook> replyEmbed(String templateKey, IReplyCallback callback);
|
||||
CompletableFuture<Message> editOriginal(MessageToSend messageToSend, InteractionHook interactionHook);
|
||||
CompletableFuture<InteractionHook> replyMessageToSend(MessageToSend messageToSend, IReplyCallback callback);
|
||||
CompletableFuture<InteractionHook> replyMessage(String templateKey, Object model, IReplyCallback callback);
|
||||
CompletableFuture<Message> replyString(String content, InteractionHook interactionHook);
|
||||
}
|
||||
|
||||
@@ -6,4 +6,7 @@ import dev.sheldan.abstracto.core.listener.FeatureAwareListener;
|
||||
|
||||
public interface ButtonClickedListener extends FeatureAwareListener<ButtonClickedListenerModel, ButtonClickedListenerResult>, Prioritized, InteractionListener {
|
||||
Boolean handlesEvent(ButtonClickedListenerModel model);
|
||||
default Boolean autoAcknowledgeEvent() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.sheldan.abstracto.core.interaction.menu;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public class SelectMenuConfigModel {
|
||||
private String selectMenuId;
|
||||
private SelectMenuPayload selectMenuPayload;
|
||||
private Class payloadType;
|
||||
private String origin;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package dev.sheldan.abstracto.core.interaction.menu;
|
||||
|
||||
public interface SelectMenuPayload {
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package dev.sheldan.abstracto.core.interaction.menu.listener;
|
||||
|
||||
import dev.sheldan.abstracto.core.Prioritized;
|
||||
import dev.sheldan.abstracto.core.interaction.InteractionListener;
|
||||
import dev.sheldan.abstracto.core.listener.FeatureAwareListener;
|
||||
|
||||
public interface StringSelectMenuListener extends FeatureAwareListener<StringSelectMenuListenerModel, StringSelectMenuListenerResult>, Prioritized, InteractionListener {
|
||||
Boolean handlesEvent(StringSelectMenuListenerModel model);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package dev.sheldan.abstracto.core.interaction.menu.listener;
|
||||
|
||||
import dev.sheldan.abstracto.core.interaction.menu.SelectMenuPayload;
|
||||
import dev.sheldan.abstracto.core.listener.FeatureAwareListenerModel;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public class StringSelectMenuListenerModel implements FeatureAwareListenerModel {
|
||||
|
||||
private StringSelectInteractionEvent event;
|
||||
private String payload;
|
||||
private String origin;
|
||||
private SelectMenuPayload deserializedPayload;
|
||||
|
||||
@Override
|
||||
public Long getServerId() {
|
||||
return event.isFromGuild() ? event.getGuild().getIdLong() : null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.interaction.menu.listener;
|
||||
|
||||
import dev.sheldan.abstracto.core.listener.ListenerExecutionResult;
|
||||
|
||||
public enum StringSelectMenuListenerResult implements ListenerExecutionResult {
|
||||
ACKNOWLEDGED, IGNORED
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
package dev.sheldan.abstracto.core.interaction.modal;
|
||||
|
||||
import net.dv8tion.jda.api.events.interaction.command.GenericCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public interface ModalService {
|
||||
CompletableFuture<Void> replyModal(GenericCommandInteractionEvent event, String templateKey, Object model);
|
||||
CompletableFuture<Void> replyModal(ButtonInteractionEvent event, String templateKey, Object model);
|
||||
Modal createModalFromTemplate(String templateKey, Object model, Long serverId);
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ public interface ChannelService {
|
||||
CompletableFuture<Message> removeFieldFromMessage(MessageChannel channel, Long messageId, Integer index);
|
||||
CompletableFuture<Message> editFieldValueInMessage(MessageChannel channel, Long messageId, Integer index, String newValue);
|
||||
CompletableFuture<Message> removeFieldFromMessage(MessageChannel channel, Long messageId, Integer index, Integer embedIndex);
|
||||
CompletableFuture<Message> removeComponents(MessageChannel channel, Long messageId);
|
||||
CompletableFuture<Void> deleteTextChannel(AChannel channel);
|
||||
CompletableFuture<Void> deleteTextChannel(Long serverId, Long channelId);
|
||||
List<CompletableFuture<Message>> sendEmbedTemplateInTextChannelList(String templateKey, Object model, MessageChannel channel);
|
||||
|
||||
@@ -20,6 +20,10 @@ public interface PostTargetManagement {
|
||||
Optional<PostTarget> getPostTargetOptional(PostTargetEnum postTargetEnum, Long serverId);
|
||||
Boolean postTargetExists(String name, AServer server);
|
||||
boolean postTargetExists(String name, Long serverId);
|
||||
AChannel getPostTarget(Long serverId, String name);
|
||||
AChannel getPostTarget(Long serverId, PostTarget target);
|
||||
AChannel getPostTarget(AServer server, PostTarget target);
|
||||
AChannel getPostTarget(AServer server, String name);
|
||||
PostTarget updatePostTarget(PostTarget target, AChannel newTargetChannel);
|
||||
List<PostTarget> getPostTargetsInServer(AServer server);
|
||||
}
|
||||
|
||||
@@ -15,9 +15,5 @@ public interface ServerManagementService {
|
||||
void addChannelToServer(AServer server, AChannel channel);
|
||||
AUserInAServer addUserToServer(AServer server, AUser user);
|
||||
AUserInAServer addUserToServer(Long serverId, Long userId);
|
||||
AChannel getPostTarget(Long serverId, String name);
|
||||
AChannel getPostTarget(Long serverId, PostTarget target);
|
||||
AChannel getPostTarget(AServer server, PostTarget target);
|
||||
AChannel getPostTarget(AServer server, String name);
|
||||
List<AServer> getAllServers();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user