mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-25 22:58:12 +00:00
[AB-111] adding ability to perform moderation actions on various logging/report messages
This commit is contained in:
@@ -87,7 +87,7 @@ public class ModalInteractionListenerBean extends ListenerAdapter {
|
||||
postInteractionExecution.execute(model, result, listener);
|
||||
}
|
||||
} else {
|
||||
log.warn("No listener found for button event for id {}.", event.getModalId());
|
||||
log.warn("No listener found for modal event for id {}.", event.getModalId());
|
||||
}
|
||||
} else {
|
||||
log.warn("No callback found for id {}.", event.getModalId());
|
||||
|
||||
@@ -117,13 +117,23 @@ public class MemberServiceBean implements MemberService {
|
||||
return getMemberInServer(aUserInAServer.getServerReference().getId(), aUserInAServer.getUserReference().getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Member getMemberInServer(ServerUser serverUser) {
|
||||
return getMemberInServer(serverUser.getServerId(), serverUser.getUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Member> getMemberInServerAsync(ServerUser serverUser) {
|
||||
return getMemberInServerAsync(serverUser.getServerId(), serverUser.getUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Member> getMemberInServerAsync(AUserInAServer aUserInAServer) {
|
||||
return getMemberInServerAsync(aUserInAServer.getServerReference().getId(), aUserInAServer.getUserReference().getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Member getMemberInServer(AServer server, AUser member) {
|
||||
public Member getMemberInServerAsync(AServer server, AUser member) {
|
||||
return getMemberInServer(server.getId(), member.getId());
|
||||
}
|
||||
|
||||
@@ -151,8 +161,7 @@ public class MemberServiceBean implements MemberService {
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> timeoutUser(Member member, Duration duration, String reason) {
|
||||
log.info("Applying timeout for user {} in guild {} for {}", member.getId(), member.getGuild().getIdLong(), duration);
|
||||
return member.timeoutFor(duration).reason(reason).submit();
|
||||
return timeoutMember(member.getGuild(), ServerUser.fromMember(member), duration, reason);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -171,9 +180,19 @@ public class MemberServiceBean implements MemberService {
|
||||
return timeoutUser(member, muteDuration, reason);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> timeoutMember(Guild guild, ServerUser serverUser, Duration duration, String reason) {
|
||||
return guild.timeoutFor(UserSnowflake.fromId(serverUser.getUserId()), duration).reason(reason).submit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> removeTimeout(Guild guild, ServerUser serverUser, String reason) {
|
||||
log.info("Removing timeout for user {} in guild {}.", serverUser.getUserId(), guild.getIdLong());
|
||||
return guild.removeTimeout(UserSnowflake.fromId(serverUser.getUserId())).reason(reason).submit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> removeTimeout(Member member) {
|
||||
log.info("Removing timeout for user {} in guild {}.", member.getId(), member.getGuild().getIdLong());
|
||||
return member.removeTimeout().submit();
|
||||
return removeTimeout(member.getGuild(), ServerUser.fromMember(member), null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import dev.sheldan.abstracto.core.metric.service.CounterMetric;
|
||||
import dev.sheldan.abstracto.core.metric.service.MetricService;
|
||||
import dev.sheldan.abstracto.core.metric.service.MetricTag;
|
||||
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;
|
||||
@@ -130,6 +131,13 @@ public class MessageServiceBean implements MessageService {
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Message> sendMessageToUser(ServerUser serverUser, String text) {
|
||||
return memberService.getMemberInServerAsync(serverUser).thenCompose(member ->
|
||||
sendMessageToUser(member.getUser(), text)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Message> sendSimpleTemplateToUser(Long userId, String templateKey) {
|
||||
String text = templateService.renderSimpleTemplate(templateKey);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user