mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-20 05:24:09 +00:00
[AB-281] adding ban and unban command
removing banId command in favor of the normal ban command removing various feature modes for moderation for clearer configuration
This commit is contained in:
@@ -2,9 +2,7 @@ package dev.sheldan.abstracto.moderation.config.feature;
|
||||
|
||||
import dev.sheldan.abstracto.core.config.FeatureConfig;
|
||||
import dev.sheldan.abstracto.core.config.FeatureDefinition;
|
||||
import dev.sheldan.abstracto.core.config.FeatureMode;
|
||||
import dev.sheldan.abstracto.core.config.PostTargetEnum;
|
||||
import dev.sheldan.abstracto.moderation.config.feature.mode.ModerationMode;
|
||||
import dev.sheldan.abstracto.moderation.config.posttarget.ModerationPostTarget;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -21,11 +19,7 @@ public class ModerationFeatureConfig implements FeatureConfig {
|
||||
|
||||
@Override
|
||||
public List<PostTargetEnum> getRequiredPostTargets() {
|
||||
return Arrays.asList(ModerationPostTarget.BAN_LOG, ModerationPostTarget.KICK_LOG);
|
||||
return Arrays.asList(ModerationPostTarget.BAN_LOG, ModerationPostTarget.KICK_LOG, ModerationPostTarget.UN_BAN_LOG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FeatureMode> getAvailableModes() {
|
||||
return Arrays.asList(ModerationMode.BAN_LOG, ModerationMode.KICK_LOG);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,6 @@ public class MutingFeatureConfig implements FeatureConfig {
|
||||
|
||||
@Override
|
||||
public List<FeatureMode> getAvailableModes() {
|
||||
return Arrays.asList(MutingMode.MANUAL_UN_MUTE_LOGGING, MutingMode.MUTE_LOGGING, MutingMode.UN_MUTE_LOGGING);
|
||||
return Arrays.asList(MutingMode.MANUAL_UN_MUTE_LOGGING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,6 @@ public class WarningFeatureConfig implements FeatureConfig {
|
||||
|
||||
@Override
|
||||
public List<FeatureMode> getAvailableModes() {
|
||||
return Arrays.asList(WarningMode.WARN_DECAY_LOG, WarningMode.WARN_LOG);
|
||||
return Arrays.asList(WarningMode.WARN_DECAY_LOG);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package dev.sheldan.abstracto.moderation.config.feature.mode;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum MutingMode implements FeatureMode {
|
||||
MUTE_LOGGING("muteLogging"), UN_MUTE_LOGGING("unMuteLogging"), MANUAL_UN_MUTE_LOGGING("manualUnMuteLogging");
|
||||
MANUAL_UN_MUTE_LOGGING("manualUnMuteLogging");
|
||||
|
||||
private final String key;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum WarningMode implements FeatureMode {
|
||||
WARN_LOG("warnLogging"), WARN_DECAY_LOG("warnDecayLogging");
|
||||
WARN_DECAY_LOG("warnDecayLogging");
|
||||
|
||||
private final String key;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum ModerationPostTarget implements PostTargetEnum {
|
||||
KICK_LOG("kickLog"), BAN_LOG("banLog");
|
||||
KICK_LOG("kickLog"), BAN_LOG("banLog"), UN_BAN_LOG("unBanLog");
|
||||
|
||||
private String key;
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
/**
|
||||
* Used when rendering the notification when a member was banned by ID. The template is: "banid_log_embed"
|
||||
*/
|
||||
@Getter
|
||||
@SuperBuilder
|
||||
@Setter
|
||||
public class BanIdLog extends UserInitiatedServerContext {
|
||||
/**
|
||||
* The reason of the ban
|
||||
*/
|
||||
private String reason;
|
||||
|
||||
/**
|
||||
* The member executing the ban
|
||||
*/
|
||||
private Member banningUser;
|
||||
|
||||
/**
|
||||
* The Discord Snowflake of the user being banned.
|
||||
*/
|
||||
private Long bannedUserId;
|
||||
|
||||
}
|
||||
@@ -1,19 +1,20 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
|
||||
import lombok.Builder;
|
||||
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 net.dv8tion.jda.api.entities.User;
|
||||
|
||||
|
||||
/**
|
||||
* Used when rendering the notification when a member was banned. The template is: "ban_log_embed"
|
||||
*/
|
||||
@Getter
|
||||
@SuperBuilder
|
||||
@Builder
|
||||
@Setter
|
||||
public class BanLog extends UserInitiatedServerContext {
|
||||
public class BanLog {
|
||||
/**
|
||||
* The reason of the ban
|
||||
*/
|
||||
@@ -21,9 +22,10 @@ public class BanLog extends UserInitiatedServerContext {
|
||||
/**
|
||||
* The member executing the ban
|
||||
*/
|
||||
private Member banningUser;
|
||||
private Member banningMember;
|
||||
/**
|
||||
* The member being banned
|
||||
* The user being banned
|
||||
*/
|
||||
private Member bannedUser;
|
||||
private User bannedUser;
|
||||
private Message commandMessage;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
|
||||
|
||||
/**
|
||||
* Used when rendering the notification when a member was banned. The template is: "ban_log_embed"
|
||||
*/
|
||||
@Getter
|
||||
@Builder
|
||||
@Setter
|
||||
public class UnBanLog {
|
||||
/**
|
||||
* The member executing the unban
|
||||
*/
|
||||
private Member unBanningMember;
|
||||
/**
|
||||
* The user being unbanned
|
||||
*/
|
||||
private User bannedUser;
|
||||
private Message commandMessage;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.listener;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public class UserBannedListenerModel {
|
||||
private User bannedUser;
|
||||
private String reason;
|
||||
private User banningUser;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.listener;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public class UserUnBannedListenerModel {
|
||||
private User unBannedUser;
|
||||
private User unBanningUser;
|
||||
}
|
||||
@@ -1,12 +1,14 @@
|
||||
package dev.sheldan.abstracto.moderation.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.context.ServerContext;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public interface BanService {
|
||||
String BAN_EFFECT_KEY = "ban";
|
||||
CompletableFuture<Void> banMember(Member member, String reason, ServerContext banLog);
|
||||
CompletableFuture<Void> banUserViaId(Long guildId, Long userId, String reason, ServerContext banIdLog);
|
||||
CompletableFuture<Void> banMember(Member member, String reason, Member banningMember, Message message);
|
||||
CompletableFuture<Void> banUser(User user, String reason, Member banningMember, Message message);
|
||||
CompletableFuture<Void> unBanUser(User user, Member unBanningUser);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user