[AB-73] adding different feature modes to define whether or not certain actions should be logged, changing name of setup, disable and enable command to show that they are supposed to be for features

This commit is contained in:
Sheldan
2020-10-17 16:35:20 +02:00
parent 44dfdca6e6
commit 1b98436736
53 changed files with 525 additions and 165 deletions
@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.moderation.config.posttargets.ModerationPostTarget;
import org.springframework.stereotype.Component;
@@ -21,4 +22,9 @@ public class ModerationFeature implements FeatureConfig {
public List<PostTargetEnum> getRequiredPostTargets() {
return Arrays.asList(ModerationPostTarget.BAN_LOG, ModerationPostTarget.KICK_LOG);
}
@Override
public List<FeatureMode> getAvailableModes() {
return Arrays.asList(ModerationMode.BAN_LOG, ModerationMode.KICK_LOG);
}
}
@@ -7,7 +7,7 @@ import lombok.Getter;
public enum ModerationFeatures implements FeatureEnum {
MODERATION("moderation"), WARNING("warnings"), LOGGING("logging"), MUTING("muting"), AUTOMATIC_WARN_DECAY("warnDecay"), USER_NOTES("userNotes");
private String key;
private final String key;
ModerationFeatures(String key) {
this.key = key;
@@ -0,0 +1,16 @@
package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureMode;
import lombok.Getter;
@Getter
public enum ModerationMode implements FeatureMode {
BAN_LOG("banLogging"), KICK_LOG("kickLogging");
private final String key;
ModerationMode(String key) {
this.key = key;
}
}
@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.moderation.config.posttargets.MutingPostTarget;
import org.springframework.stereotype.Component;
@@ -21,4 +22,9 @@ public class MutingFeature implements FeatureConfig {
public List<PostTargetEnum> getRequiredPostTargets() {
return Arrays.asList(MutingPostTarget.MUTE_LOG);
}
@Override
public List<FeatureMode> getAvailableModes() {
return Arrays.asList(MutingMode.MANUAL_UN_MUTE_LOGGING, MutingMode.MUTE_LOGGING, MutingMode.UN_MUTE_LOGGING);
}
}
@@ -0,0 +1,16 @@
package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureMode;
import lombok.Getter;
@Getter
public enum MutingMode implements FeatureMode {
MUTE_LOGGING("muteLogging"), UN_MUTE_LOGGING("unMuteLogging"), MANUAL_UN_MUTE_LOGGING("manualUnMuteLogging");
private final String key;
MutingMode(String key) {
this.key = key;
}
}
@@ -0,0 +1,17 @@
package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureMode;
import lombok.Getter;
@Getter
public enum WarnDecayMode implements FeatureMode {
AUTOMATIC_WARN_DECAY_LOG("automaticWarnDecayLogging");
private final String key;
WarnDecayMode(String key) {
this.key = key;
}
}
@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.moderation.config.posttargets.WarnDecayPostTarget;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,4 +39,8 @@ public class WarningDecayFeature implements FeatureConfig {
return Arrays.asList(WarnDecayPostTarget.DECAY_LOG);
}
@Override
public List<FeatureMode> getAvailableModes() {
return Arrays.asList(WarnDecayMode.AUTOMATIC_WARN_DECAY_LOG);
}
}
@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.moderation.config.posttargets.WarningPostTarget;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,4 +31,9 @@ public class WarningFeature implements FeatureConfig {
public List<PostTargetEnum> getRequiredPostTargets() {
return Arrays.asList(WarningPostTarget.WARN_LOG);
}
@Override
public List<FeatureMode> getAvailableModes() {
return Arrays.asList(WarningMode.WARN_DECAY_LOG, WarningMode.WARN_LOG);
}
}
@@ -0,0 +1,16 @@
package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureMode;
import lombok.Getter;
@Getter
public enum WarningMode implements FeatureMode {
WARN_LOG("warnLogging"), WARN_DECAY_LOG("warnDecayLogging");
private final String key;
WarningMode(String key) {
this.key = key;
}
}
@@ -7,5 +7,5 @@ import java.util.concurrent.CompletableFuture;
public interface BanService {
CompletableFuture<Void> banMember(Member member, String reason, ServerContext banLog);
CompletableFuture<Void> banMember(Long guildId, Long userId, String reason, ServerContext banIdLog);
CompletableFuture<Void> banUserViaId(Long guildId, Long userId, String reason, ServerContext banIdLog);
}
@@ -13,5 +13,5 @@ public interface WarnService {
CompletableFuture<Void> warnUserWithLog(WarnContext context);
void decayWarning(Warning warning, Instant decayDate);
CompletableFuture<Void> decayWarningsForServer(AServer server);
CompletableFuture<Void> decayAllWarningsForServer(AServer server, boolean logWarnings);
CompletableFuture<Void> decayAllWarningsForServer(AServer server);
}