mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-15 12:10:21 +00:00
[AB-xxx] refactoring handling of bans and mutes: commands actively log, the reason for this is that the command is the only place who actually knows how executed the command. the event itself only sees the bot performing the action
adding event based logging of kicks
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package dev.sheldan.abstracto.moderation.model.template.command;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.template.display.MemberDisplay;
|
||||
import dev.sheldan.abstracto.core.models.template.display.UserDisplay;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -13,6 +13,6 @@ import lombok.Setter;
|
||||
@Setter
|
||||
public class KickLogModel {
|
||||
private String reason;
|
||||
private MemberDisplay kickedMember;
|
||||
private MemberDisplay kickingMember;
|
||||
private UserDisplay kickedUser;
|
||||
private UserDisplay kickingUser;
|
||||
}
|
||||
|
||||
@@ -10,15 +10,15 @@ import java.time.Instant;
|
||||
|
||||
@Getter
|
||||
@SuperBuilder
|
||||
public class MuteListenerModel {
|
||||
public class MuteLogModel {
|
||||
/**
|
||||
* The {@link Member} being muted
|
||||
*/
|
||||
private MemberDisplay mutedUser;
|
||||
private MemberDisplay mutedMember;
|
||||
/**
|
||||
* The {@link Member} executing the mute
|
||||
*/
|
||||
private MemberDisplay mutingUser;
|
||||
private MemberDisplay mutingMember;
|
||||
/**
|
||||
* The persisted mute object from the database containing the information about the mute
|
||||
*/
|
||||
@@ -8,7 +8,7 @@ import lombok.Setter;
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public class UserBannedListenerLogModel {
|
||||
public class UserBannedLogModel {
|
||||
private UserDisplay bannedUser;
|
||||
private String reason;
|
||||
private UserDisplay banningUser;
|
||||
@@ -8,7 +8,7 @@ import lombok.Setter;
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public class UserUnBannedListenerLogModel {
|
||||
public class UserUnBannedLogModel {
|
||||
private UserDisplay unBannedUser;
|
||||
private String reason;
|
||||
private UserDisplay unBanningUser;
|
||||
@@ -2,6 +2,8 @@ package dev.sheldan.abstracto.moderation.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.ServerUser;
|
||||
import dev.sheldan.abstracto.moderation.model.BanResult;
|
||||
import dev.sheldan.abstracto.moderation.model.template.listener.UserBannedLogModel;
|
||||
import dev.sheldan.abstracto.moderation.model.template.listener.UserUnBannedLogModel;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
|
||||
import java.time.Duration;
|
||||
@@ -13,6 +15,7 @@ public interface BanService {
|
||||
String INFRACTION_PARAMETER_DELETION_DURATION_KEY = "DELETION_DURATION";
|
||||
CompletableFuture<BanResult> banUserWithNotification(ServerUser userToBeBanned, String reason, ServerUser banningUser, Guild guild, Duration deletionDuration);
|
||||
CompletableFuture<Void> banUser(Guild guild, ServerUser userToBeBanned, Duration deletionDuration, String reason);
|
||||
CompletableFuture<Void> unbanUser(Guild guild, Long userId);
|
||||
CompletableFuture<Void> softBanUser(Guild guild, ServerUser user, Duration delDays);
|
||||
CompletableFuture<Void> unbanUser(Guild guild, User user, Member memberPerforming);
|
||||
CompletableFuture<Void> sendBanLogMessage(UserBannedLogModel model, Long serverId);
|
||||
CompletableFuture<Void> sendUnBanLogMessage(UserUnBannedLogModel model, Long serverId);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package dev.sheldan.abstracto.moderation.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.ServerUser;
|
||||
import dev.sheldan.abstracto.moderation.model.template.command.KickLogModel;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@@ -11,4 +13,5 @@ public interface KickService {
|
||||
String KICK_INFRACTION_TYPE = "kick";
|
||||
CompletableFuture<Void> kickMember(Member kickedMember, Member kickingMember, String reason);
|
||||
CompletableFuture<Void> kickMember(Guild guild, ServerUser kickedUser, String reason, ServerUser kickingUser);
|
||||
CompletableFuture<Message> sendKicklog(KickLogModel kickLogModel, Long serverId);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import dev.sheldan.abstracto.core.models.ServerUser;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.moderation.model.MuteResult;
|
||||
import dev.sheldan.abstracto.moderation.model.database.Mute;
|
||||
import dev.sheldan.abstracto.moderation.model.template.command.MuteLogModel;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
|
||||
import java.time.Duration;
|
||||
@@ -17,11 +18,13 @@ public interface MuteService {
|
||||
String INFRACTION_PARAMETER_DURATION_KEY = "DURATION";
|
||||
CompletableFuture<MuteResult> muteUserInServer(Guild guild, ServerUser userBeingMuted, String reason, Duration duration);
|
||||
CompletableFuture<MuteResult> muteMemberWithLog(ServerUser userToMute, ServerUser mutingUser, String reason, Duration duration, Guild guild, ServerChannelMessage origin);
|
||||
CompletableFuture<MuteResult> muteMemberWithLog(ServerUser userToMute, ServerUser mutingUser, String reason, Duration duration, Guild guild, ServerChannelMessage origin, Instant oldTimeout);
|
||||
String startUnMuteJobFor(Instant unMuteDate, Long muteId, Long serverId);
|
||||
void cancelUnMuteJob(Mute mute);
|
||||
CompletableFuture<Void> unMuteUser(ServerUser userToUnMute, ServerUser memberUnMuting, Guild guild);
|
||||
CompletableFuture<Void> endMute(Mute mute, Guild guild);
|
||||
CompletableFuture<Void> endMute(Long muteId, Long serverId);
|
||||
CompletableFuture<Void> sendMuteLogMessage(MuteLogModel model, Long serverId);
|
||||
void completelyUnMuteUser(AUserInAServer aUserInAServer);
|
||||
void completelyUnMuteMember(ServerUser serverUser);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user