mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-04 16:45:44 +00:00
[AB-203] restructuring listeners to use more common code and common interfaces for listeners and models
restructuring entity listener to be async and added models fixing usage of repository save method adding interface dependencies to bundle dependency management
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
package dev.sheldan.abstracto.starboard.listener;
|
||||
|
||||
public enum StarboardPostState {
|
||||
CREATED, UPDATED, UPDATED_CHANGED_THRESHOLD, DELETED
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package dev.sheldan.abstracto.starboard.listener;
|
||||
|
||||
import dev.sheldan.abstracto.core.listener.DefaultListenerResult;
|
||||
import dev.sheldan.abstracto.core.listener.FeatureAwareListener;
|
||||
import dev.sheldan.abstracto.starboard.model.StarboardPostUpdatedModel;
|
||||
|
||||
public interface StarboardPostUpdatedListener extends FeatureAwareListener<StarboardPostUpdatedModel, DefaultListenerResult> {
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package dev.sheldan.abstracto.starboard.model;
|
||||
|
||||
import dev.sheldan.abstracto.core.listener.FeatureAwareListenerModel;
|
||||
import dev.sheldan.abstracto.core.models.ServerChannelMessage;
|
||||
import dev.sheldan.abstracto.core.models.ServerUser;
|
||||
import dev.sheldan.abstracto.starboard.listener.StarboardPostState;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public class StarboardPostUpdatedModel implements FeatureAwareListenerModel {
|
||||
private ServerChannelMessage starredMessage;
|
||||
private ServerChannelMessage starboardMessage;
|
||||
private ServerUser starredUser;
|
||||
private ServerUser lastStarrer;
|
||||
private Long starboardPostId;
|
||||
private List<Long> allStarrer;
|
||||
private StarboardPostState newState;
|
||||
|
||||
@Override
|
||||
public Long getServerId() {
|
||||
return starredUser.getServerId();
|
||||
}
|
||||
}
|
||||
@@ -2,22 +2,19 @@ package dev.sheldan.abstracto.starboard.model.template;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||
import dev.sheldan.abstracto.core.models.context.ServerContext;
|
||||
import dev.sheldan.abstracto.core.models.database.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@SuperBuilder
|
||||
public class StarboardPostModel extends ServerContext {
|
||||
private Member author;
|
||||
private User author;
|
||||
private TextChannel channel;
|
||||
private AUser user;
|
||||
private AChannel aChannel;
|
||||
private Long sourceChannelId;
|
||||
private CachedMessage message;
|
||||
private Integer starCount;
|
||||
private String starLevelEmote;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.starboard.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.ServerUser;
|
||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.starboard.model.database.StarboardPost;
|
||||
@@ -18,4 +19,5 @@ public interface StarboardService {
|
||||
CompletableFuture<GuildStarStatsModel> retrieveStarStats(Long serverId);
|
||||
MemberStarStatsModel retrieveStarStatsForMember(Member member);
|
||||
StarStatsPost fromStarboardPost(StarboardPost starboardPost);
|
||||
void deleteStarboardPost(StarboardPost starboardPost, ServerUser userReacting);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user