mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-07 16:35:08 +00:00
[AB-xxx] reworking ban logging to use audit log instead of actively logging or using the banned event
partially fixing broken infraction handling adding CompletableFutureMap to handle futures easier updating user display object to also hold name replaced some references to UserObjects in models with UserDisplay objects
This commit is contained in:
@@ -1,21 +1,51 @@
|
||||
package dev.sheldan.abstracto.core.models.frontend;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.ServerUser;
|
||||
import dev.sheldan.abstracto.core.utils.MemberUtils;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
public class UserDisplay {
|
||||
private String avatarUrl;
|
||||
private String name;
|
||||
private String id;
|
||||
private String discriminator;
|
||||
private String userMention;
|
||||
private Long id;
|
||||
|
||||
public static UserDisplay fromMember(Member member) {
|
||||
return builder()
|
||||
.avatarUrl(member.getEffectiveAvatarUrl())
|
||||
.name(member.getEffectiveName())
|
||||
.id(member.getId())
|
||||
.userMention(MemberUtils.getUserAsMention(member.getIdLong()))
|
||||
.id(member.getIdLong())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static UserDisplay fromUser(User user) {
|
||||
return builder()
|
||||
.discriminator(user.getDiscriminator())
|
||||
.avatarUrl(user.getEffectiveAvatarUrl())
|
||||
.name(user.getEffectiveName())
|
||||
.userMention(MemberUtils.getUserAsMention(user.getIdLong()))
|
||||
.id(user.getIdLong())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static UserDisplay fromServerUser(ServerUser user) {
|
||||
return builder()
|
||||
.userMention(MemberUtils.getUserAsMention(user.getUserId()))
|
||||
.id(user.getUserId())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static UserDisplay fromId(Long id) {
|
||||
return builder()
|
||||
.userMention(MemberUtils.getUserAsMention(id))
|
||||
.id(id)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,9 +12,12 @@ import net.dv8tion.jda.api.entities.User;
|
||||
@Setter
|
||||
@Builder
|
||||
public class UserBannedModel implements FeatureAwareListenerModel {
|
||||
private ServerUser bannedUser;
|
||||
private User user;
|
||||
private ServerUser bannedServerUser;
|
||||
private ServerUser banningServerUser;
|
||||
private User bannedUser;
|
||||
private User banningUser;
|
||||
private Guild guild;
|
||||
private String reason;
|
||||
@Override
|
||||
public Long getServerId() {
|
||||
return guild.getIdLong();
|
||||
|
||||
@@ -12,9 +12,12 @@ import net.dv8tion.jda.api.entities.User;
|
||||
@Setter
|
||||
@Builder
|
||||
public class UserUnBannedModel implements FeatureAwareListenerModel {
|
||||
private ServerUser unbannedUser;
|
||||
private User user;
|
||||
private ServerUser unBannedServerUser;
|
||||
private ServerUser unBanningServerUser;
|
||||
private User unBannedUser;
|
||||
private User unBanningUser;
|
||||
private Guild guild;
|
||||
private String reason;
|
||||
@Override
|
||||
public Long getServerId() {
|
||||
return guild.getIdLong();
|
||||
|
||||
@@ -11,14 +11,18 @@ import net.dv8tion.jda.api.entities.User;
|
||||
@Setter
|
||||
@Builder
|
||||
public class UserDisplay {
|
||||
private Long userId;
|
||||
private Long id;
|
||||
private String userMention;
|
||||
private String discriminator;
|
||||
private String name;
|
||||
|
||||
public static UserDisplay fromUser(User user) {
|
||||
return UserDisplay
|
||||
.builder()
|
||||
.userMention(MemberUtils.getUserAsMention(user.getIdLong()))
|
||||
.userId(user.getIdLong())
|
||||
.name(user.getEffectiveName())
|
||||
.discriminator(user.getDiscriminator())
|
||||
.id(user.getIdLong())
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -26,7 +30,7 @@ public class UserDisplay {
|
||||
return UserDisplay
|
||||
.builder()
|
||||
.userMention(MemberUtils.getUserAsMention(serverUser.getUserId()))
|
||||
.userId(serverUser.getUserId())
|
||||
.id(serverUser.getUserId())
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -34,7 +38,7 @@ public class UserDisplay {
|
||||
return UserDisplay
|
||||
.builder()
|
||||
.userMention(MemberUtils.getUserAsMention(id))
|
||||
.userId(id)
|
||||
.id(id)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.utils.CompletableFutureList;
|
||||
import dev.sheldan.abstracto.core.utils.CompletableFutureMap;
|
||||
import net.dv8tion.jda.api.entities.SelfUser;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
|
||||
@@ -10,5 +11,6 @@ import java.util.concurrent.CompletableFuture;
|
||||
public interface UserService {
|
||||
CompletableFuture<User> retrieveUserForId(Long id);
|
||||
CompletableFutureList<User> retrieveUsers(List<Long> ids);
|
||||
CompletableFutureMap<Long, User> retrieveUsersMapped(List<Long> ids);
|
||||
SelfUser getSelfUser();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package dev.sheldan.abstracto.core.utils;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@Getter
|
||||
@Slf4j
|
||||
public class CompletableFutureMap<L, T> {
|
||||
private final CompletableFuture<Void> mainFuture;
|
||||
private final Map<L, CompletableFuture<T>> futures;
|
||||
|
||||
public CompletableFutureMap(Map<L ,CompletableFuture<T>> futures) {
|
||||
this.mainFuture = CompletableFuture.allOf(futures.values().toArray(new CompletableFuture[0]));
|
||||
this.futures = futures;
|
||||
}
|
||||
|
||||
public List<T> getObjects() {
|
||||
List<T> result = new ArrayList<>();
|
||||
futures.values().forEach(future -> {
|
||||
if(!future.isCompletedExceptionally()) {
|
||||
result.add(future.join());
|
||||
} else {
|
||||
try {
|
||||
future.join();
|
||||
} catch (Exception exception) {
|
||||
log.warn("Future completed with exception.", exception);
|
||||
}
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
public T getElement(L key) {
|
||||
if(!getFutures().containsKey(key)) {
|
||||
return null;
|
||||
}
|
||||
CompletableFuture<T> future = getFutures().get(key);
|
||||
if(!future.isCompletedExceptionally()) {
|
||||
return future.join();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user