mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-01-26 05:44:42 +00:00
[AB-167] adding warning created events and infraction counter
adding disabling of post targets adding some logging for message sending failure consumer
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package dev.sheldan.abstracto.core.exception;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.exception.PostTargetNotValidExceptionModel;
|
||||
import dev.sheldan.abstracto.core.templating.Templatable;
|
||||
|
||||
public class PostTargetNotUsableException extends AbstractoRunTimeException implements Templatable {
|
||||
|
||||
private final PostTargetNotValidExceptionModel model;
|
||||
|
||||
public PostTargetNotUsableException(String key) {
|
||||
super("The post target is not setup or has been disabled.");
|
||||
this.model = PostTargetNotValidExceptionModel
|
||||
.builder()
|
||||
.postTargetKey(key)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTemplateName() {
|
||||
return "post_target_not_usable_exception";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getTemplateModel() {
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,11 @@ public class PostTarget implements Serializable {
|
||||
@Setter
|
||||
private AServer serverReference;
|
||||
|
||||
@Column(name = "disabled")
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean disabled;
|
||||
|
||||
@Column(name = "created", nullable = false, insertable = false, updatable = false)
|
||||
private Instant created;
|
||||
|
||||
|
||||
@@ -12,4 +12,5 @@ import net.dv8tion.jda.api.entities.TextChannel;
|
||||
public class PostTargetModelEntry {
|
||||
private PostTarget postTarget;
|
||||
private TextChannel channel;
|
||||
private Boolean disabled;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.models.template.display;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.core.utils.MemberUtils;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -21,4 +23,13 @@ public class MemberDisplay {
|
||||
.userId(member.getIdLong())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static MemberDisplay fromAUserInAServer(AUserInAServer aUserInAServer) {
|
||||
return MemberDisplay
|
||||
.builder()
|
||||
.memberMention(MemberUtils.getAUserInAServerAsMention(aUserInAServer))
|
||||
.serverId(aUserInAServer.getServerReference().getId())
|
||||
.userId(aUserInAServer.getUserReference().getId())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,11 @@ public interface PostTargetService {
|
||||
void throwIfPostTargetIsNotDefined(PostTargetEnum name, Long serverId);
|
||||
boolean postTargetDefinedInServer(PostTargetEnum name, Long serverId);
|
||||
boolean validPostTarget(String name);
|
||||
void validatePostTarget(PostTargetEnum name, Long serverId);
|
||||
boolean postTargetUsableInServer(PostTargetEnum name, 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);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package dev.sheldan.abstracto.core.utils;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
|
||||
public class MemberUtils {
|
||||
public static String getAUserInAServerAsMention(AUserInAServer aUserInAServer) {
|
||||
return "<@" + aUserInAServer.getUserReference().getId() + ">";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user