[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:
Sheldan
2024-05-06 00:07:24 +02:00
parent 234aae3783
commit a01a5055a0
32 changed files with 440 additions and 136 deletions

View File

@@ -0,0 +1,8 @@
package dev.sheldan.abstracto.core.listener.async.jda;
import dev.sheldan.abstracto.core.listener.DefaultListenerResult;
import dev.sheldan.abstracto.core.listener.FeatureAwareListener;
import dev.sheldan.abstracto.core.models.listener.MemberKickedModel;
public interface AsyncMemberKickedListener extends FeatureAwareListener<MemberKickedModel, DefaultListenerResult> {
}

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.listener.async.jda;
import dev.sheldan.abstracto.core.listener.DefaultListenerResult;
import dev.sheldan.abstracto.core.listener.FeatureAwareListener;
import dev.sheldan.abstracto.core.models.listener.UserBannedModel;
import dev.sheldan.abstracto.core.models.listener.UserBannedListenerModel;
public interface AsyncUserBannedListener extends FeatureAwareListener<UserBannedModel, DefaultListenerResult> {
public interface AsyncUserBannedListener extends FeatureAwareListener<UserBannedListenerModel, DefaultListenerResult> {
}

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.listener.async.jda;
import dev.sheldan.abstracto.core.listener.DefaultListenerResult;
import dev.sheldan.abstracto.core.listener.FeatureAwareListener;
import dev.sheldan.abstracto.core.models.listener.UserUnBannedModel;
import dev.sheldan.abstracto.core.models.listener.UserUnBannedListenerModel;
public interface AsyncUserUnBannedListener extends FeatureAwareListener<UserUnBannedModel, DefaultListenerResult> {
public interface AsyncUserUnBannedListener extends FeatureAwareListener<UserUnBannedListenerModel, DefaultListenerResult> {
}

View File

@@ -0,0 +1,26 @@
package dev.sheldan.abstracto.core.models.listener;
import dev.sheldan.abstracto.core.listener.FeatureAwareListenerModel;
import dev.sheldan.abstracto.core.models.ServerUser;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.User;
@Getter
@Setter
@Builder
public class MemberKickedModel implements FeatureAwareListenerModel {
private ServerUser kickedServerUser;
private ServerUser kickingServerUser;
private Guild guild;
private String reason;
private Long responsibleUserId;
private User kickedUser;
private User kickingUser;
@Override
public Long getServerId() {
return guild.getIdLong();
}
}

View File

@@ -7,7 +7,6 @@ import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.User;
import java.time.OffsetDateTime;
@@ -15,14 +14,15 @@ import java.time.OffsetDateTime;
@Setter
@Builder
public class MemberTimeoutUpdatedModel implements FeatureAwareListenerModel {
private ServerUser timeoutUser;
private User user;
private ServerUser mutedUser;
private ServerUser mutingUser;
private Guild guild;
private String reason;
private Long responsibleUserId;
private OffsetDateTime oldTimeout;
private OffsetDateTime newTimeout;
private Member member;
private Member mutedMember;
private Member mutingMember;
@Override
public Long getServerId() {
return guild.getIdLong();

View File

@@ -11,7 +11,7 @@ import net.dv8tion.jda.api.entities.User;
@Getter
@Setter
@Builder
public class UserBannedModel implements FeatureAwareListenerModel {
public class UserBannedListenerModel implements FeatureAwareListenerModel {
private ServerUser bannedServerUser;
private ServerUser banningServerUser;
private User bannedUser;

View File

@@ -11,7 +11,7 @@ import net.dv8tion.jda.api.entities.User;
@Getter
@Setter
@Builder
public class UserUnBannedModel implements FeatureAwareListenerModel {
public class UserUnBannedListenerModel implements FeatureAwareListenerModel {
private ServerUser unBannedServerUser;
private ServerUser unBanningServerUser;
private User unBannedUser;

View File

@@ -15,6 +15,7 @@ public class MemberDisplay {
private String memberMention;
private String name;
private Long userId;
private String discriminator;
private Long serverId;
public static MemberDisplay fromMember(Member member) {
@@ -22,6 +23,7 @@ public class MemberDisplay {
.builder()
.memberMention(member.getAsMention())
.name(member.getEffectiveName())
.discriminator(member.getUser().getDiscriminator())
.serverId(member.getGuild().getIdLong())
.userId(member.getIdLong())
.build();