[AB-111] adding ability to perform moderation actions on various logging/report messages

This commit is contained in:
Sheldan
2024-03-17 12:37:30 +01:00
parent f45721ba42
commit dbf5d99622
76 changed files with 1663 additions and 648 deletions

View File

@@ -22,7 +22,16 @@ public class ServerUser implements Serializable {
return ServerUser
.builder()
.serverId(aUserInAServer.getServerReference().getId())
.userId(aUserInAServer.getUserReference().getId()).build();
.userId(aUserInAServer.getUserReference().getId())
.build();
}
public static ServerUser fromId(Long serverId, Long userId) {
return ServerUser
.builder()
.serverId(serverId)
.userId(userId)
.build();
}
public static ServerUser fromMember(Member member) {

View File

@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.core.models.template.display;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.core.utils.MemberUtils;
import lombok.Builder;
@@ -12,6 +13,7 @@ import net.dv8tion.jda.api.entities.Member;
@Builder
public class MemberDisplay {
private String memberMention;
private String name;
private Long userId;
private Long serverId;
@@ -19,6 +21,7 @@ public class MemberDisplay {
return MemberDisplay
.builder()
.memberMention(member.getAsMention())
.name(member.getEffectiveName())
.serverId(member.getGuild().getIdLong())
.userId(member.getIdLong())
.build();
@@ -41,4 +44,13 @@ public class MemberDisplay {
.userId(userId)
.build();
}
public static MemberDisplay fromServerUser(ServerUser serverUser) {
return MemberDisplay
.builder()
.memberMention(MemberUtils.getUserAsMention(serverUser.getUserId()))
.serverId(serverUser.getServerId())
.userId(serverUser.getUserId())
.build();
}
}

View File

@@ -0,0 +1,41 @@
package dev.sheldan.abstracto.core.models.template.display;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.core.utils.MemberUtils;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.User;
@Getter
@Setter
@Builder
public class UserDisplay {
private Long userId;
private String userMention;
public static UserDisplay fromUser(User user) {
return UserDisplay
.builder()
.userMention(MemberUtils.getUserAsMention(user.getIdLong()))
.userId(user.getIdLong())
.build();
}
public static UserDisplay fromServerUser(ServerUser serverUser) {
return UserDisplay
.builder()
.userMention(MemberUtils.getUserAsMention(serverUser.getUserId()))
.userId(serverUser.getUserId())
.build();
}
public static UserDisplay fromId(Long id) {
return UserDisplay
.builder()
.userMention(MemberUtils.getUserAsMention(id))
.userId(id)
.build();
}
}

View File

@@ -25,8 +25,10 @@ public interface MemberService {
boolean isUserInGuild(AUserInAServer aUserInAServer);
boolean isUserInGuild(Guild guild, AUserInAServer aUserInAServer);
Member getMemberInServer(AUserInAServer aUserInAServer);
Member getMemberInServer(ServerUser serverUser);
CompletableFuture<Member> getMemberInServerAsync(ServerUser serverUser);
CompletableFuture<Member> getMemberInServerAsync(AUserInAServer aUserInAServer);
Member getMemberInServer(AServer server, AUser member);
Member getMemberInServerAsync(AServer server, AUser member);
CompletableFuture<Member> forceReloadMember(Member member);
Member getBotInGuild(AServer server);
CompletableFuture<User> getUserViaId(Long userId);
@@ -35,5 +37,7 @@ public interface MemberService {
CompletableFuture<Void> timeoutUserMaxDuration(Member member);
CompletableFuture<Void> timeoutUser(Member member, Instant target);
CompletableFuture<Void> timeoutUser(Member member, Instant target, String reason);
CompletableFuture<Void> timeoutMember(Guild guild, ServerUser serverUser, Duration duration, String reason);
CompletableFuture<Void> removeTimeout(Guild guild, ServerUser serverUser, String reason);
CompletableFuture<Void> removeTimeout(Member member);
}

View File

@@ -1,6 +1,7 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.models.ServerChannelMessage;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
@@ -25,6 +26,7 @@ public interface MessageService {
void updateStatusMessage(AChannel channel, Long messageId, MessageToSend messageToSend);
void updateStatusMessage(MessageChannel channel, Long messageId, MessageToSend messageToSend);
CompletableFuture<Message> sendMessageToUser(AUserInAServer userInAServer, String text);
CompletableFuture<Message> sendMessageToUser(ServerUser serverUser, String text);
CompletableFuture<Message> sendSimpleTemplateToUser(Long userId, String templateKey);
List<CompletableFuture<Message>> retrieveMessages(List<ServerChannelMessage> messages);
CompletableFuture<Message> sendTemplateToUser(User user, String template, Object model);