mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-15 20:16:34 +00:00
added message to user initiated context
fixed templates for ban and kick logging refactored kicking service fixed guild not found exception template added command validator to be used for unit testing commands added default values for command configuration changed some interfaces to message channel instead of text channel added separate executor service for un-mutes, which is shared updated spring boot version to 2.3.1 removed database connection string from properties added logback configuration changed some future logic in purge refactored error message for un mute, when there is no active mute refactored listener interface and removed usage of context utils added tests for moderation services
This commit is contained in:
@@ -13,6 +13,7 @@ import java.util.List;
|
||||
@Component
|
||||
public class WarningDecayFeature implements FeatureConfig {
|
||||
|
||||
public static final String DECAY_DAYS_KEY = "decayDays";
|
||||
@Autowired
|
||||
private WarningFeature warningFeature;
|
||||
|
||||
@@ -24,7 +25,7 @@ public class WarningDecayFeature implements FeatureConfig {
|
||||
|
||||
@Override
|
||||
public List<String> getRequiredSystemConfigKeys() {
|
||||
return Arrays.asList("decayDays");
|
||||
return Arrays.asList(DECAY_DAYS_KEY);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,10 +2,21 @@ package dev.sheldan.abstracto.moderation.exception;
|
||||
|
||||
|
||||
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
|
||||
import dev.sheldan.abstracto.templating.Templatable;
|
||||
|
||||
public class MuteException extends AbstractoRunTimeException {
|
||||
public class MuteException extends AbstractoRunTimeException implements Templatable {
|
||||
public MuteException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTemplateName() {
|
||||
return "unMute_has_no_active_mute";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getTemplateModel() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -93,6 +93,7 @@ public class Mute {
|
||||
@PrePersist
|
||||
private void onInsert() {
|
||||
this.created = Instant.now();
|
||||
this.muteDate = Instant.now();
|
||||
}
|
||||
|
||||
@Column(name = "updated")
|
||||
|
||||
@@ -29,6 +29,7 @@ public class Warning {
|
||||
* The {@link AUserInAServer} which was warned
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "warnedUserId", nullable = false)
|
||||
private AUserInAServer warnedUser;
|
||||
@@ -37,6 +38,7 @@ public class Warning {
|
||||
* The {@link AUserInAServer} which gave the warning
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "warningUserId", nullable = false)
|
||||
private AUserInAServer warningUser;
|
||||
@@ -45,12 +47,14 @@ public class Warning {
|
||||
* The reason why this warning was cast
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
private String reason;
|
||||
|
||||
/**
|
||||
* The date at which the warning was cast
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
private Instant warnDate;
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,7 +6,6 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
@@ -26,10 +25,6 @@ public class MuteLog extends UserInitiatedServerContext {
|
||||
* The {@link Member} executing the mute
|
||||
*/
|
||||
private Member mutingUser;
|
||||
/**
|
||||
* The {@link Message} triggering the command to mute
|
||||
*/
|
||||
private Message message;
|
||||
/**
|
||||
* The persisted mute object from the database containing the information about the mute
|
||||
*/
|
||||
|
||||
@@ -6,7 +6,6 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
/**
|
||||
* Used when rendering the notification when a member was warned. The template is: "warn_log_embed"
|
||||
@@ -27,10 +26,6 @@ public class WarnLog extends UserInitiatedServerContext {
|
||||
* The {@link Member} casting the warn
|
||||
*/
|
||||
private Member warningUser;
|
||||
/**
|
||||
* The {@link Message} which contained the command triggering the warn
|
||||
*/
|
||||
private Message message;
|
||||
/**
|
||||
* The persisted {@link Warning} object from the database containing the information about the warning
|
||||
*/
|
||||
|
||||
@@ -16,5 +16,5 @@ public class MessageDeletedLog extends UserInitiatedServerContext {
|
||||
/**
|
||||
* A {@link CachedMessage} representing the deleted message
|
||||
*/
|
||||
private CachedMessage message;
|
||||
private CachedMessage cachedMessage;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.time.Instant;
|
||||
|
||||
public interface MuteService {
|
||||
Mute muteMember(Member memberToMute, Member userMuting, String reason, Instant unmuteDate, Message message);
|
||||
Mute muteMember(AUserInAServer member, AUserInAServer userMuting, String reason, Instant unmuteDate, Message message);
|
||||
Mute muteAUserInAServer(AUserInAServer member, AUserInAServer userMuting, String reason, Instant unmuteDate, Message message);
|
||||
Mute muteUser(FullUser userToMute, FullUser userMuting, String reason, Instant unmuteDate, Message message);
|
||||
void applyMuteRole(AUserInAServer aUserInAServer);
|
||||
void muteMemberWithLog(Member memberToMute, Member memberMuting, String reason, Instant unmuteDate, MuteLog log, Message message);
|
||||
@@ -19,6 +19,6 @@ public interface MuteService {
|
||||
void cancelUnmuteJob(Mute mute);
|
||||
void unmuteUser(Mute mute);
|
||||
void endMute(Long muteId);
|
||||
void completelyUnmuteUser(AUserInAServer aUserInAServer);
|
||||
void completelyUnmuteUser(Member member);
|
||||
void completelyUnMuteUser(AUserInAServer aUserInAServer);
|
||||
void completelyUnMuteMember(Member member);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@ import java.time.Duration;
|
||||
|
||||
public interface SlowModeService {
|
||||
void setSlowMode(TextChannel channel, Duration duration);
|
||||
void disableSlowMOde(TextChannel channel);
|
||||
void disableSlowMode(TextChannel channel);
|
||||
void setSlowMode(AChannel channel, Duration duration);
|
||||
}
|
||||
|
||||
@@ -6,14 +6,17 @@ import dev.sheldan.abstracto.moderation.models.database.Warning;
|
||||
import dev.sheldan.abstracto.moderation.models.template.commands.WarnLog;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.MessageChannel;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
|
||||
public interface WarnService {
|
||||
Warning warnUser(AUserInAServer warnedAUser, AUserInAServer warningAUser, String reason, TextChannel feedbackChannel);
|
||||
Warning warnUser(Member warnedMember, Member warningMember, String reason, TextChannel feedbackChannel);
|
||||
Warning warnUser(FullUser warnedUser, FullUser warningUser, String reason, TextChannel feedbackChannel);
|
||||
void warnUserWithLog(Member warnedMember, Member warningMember, String reason, WarnLog warnLog, TextChannel feedbackChannel);
|
||||
Warning warnUser(AUserInAServer warnedAUser, AUserInAServer warningAUser, String reason, MessageChannel feedbackChannel);
|
||||
Warning warnMember(Member warnedMember, Member warningMember, String reason, MessageChannel feedbackChannel);
|
||||
Warning warnFullUser(FullUser warnedUser, FullUser warningUser, String reason, MessageChannel feedbackChannel);
|
||||
Warning warnUserWithLog(Member warnedMember, Member warningMember, String reason, WarnLog warnLog, MessageChannel feedbackChannel);
|
||||
void decayWarning(Warning warning, Instant decayDate);
|
||||
void decayWarningsForServer(AServer server);
|
||||
void decayAllWarningsForServer(AServer server, boolean logWarnings);
|
||||
}
|
||||
|
||||
@@ -45,6 +45,13 @@ public interface MuteManagementService {
|
||||
*/
|
||||
boolean hasActiveMute(AUserInAServer userInAServer);
|
||||
|
||||
/**
|
||||
* Returns if the given {@link AUserInAServer} has an active mute which has not yet been ended yet.
|
||||
* @param member The {@link Member} to check for
|
||||
* @return Whether or not the userInAServer has an active mute
|
||||
*/
|
||||
boolean hasActiveMute(Member member);
|
||||
|
||||
/**
|
||||
* Returns any active {@link Mute} of this {@link AUserInAServer} in the database
|
||||
* @param userInAServer The {@link AUserInAServer} to search a mute for
|
||||
|
||||
Reference in New Issue
Block a user