mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-16 04:21:49 +00:00
[AB-11] fixing still considering bots when calculating the star amount
fixes #11
This commit is contained in:
@@ -299,7 +299,12 @@ public class InviteLinkFilterServiceBean implements InviteLinkFilterService {
|
|||||||
list.getMainFuture().whenComplete((unused, throwable) -> {
|
list.getMainFuture().whenComplete((unused, throwable) -> {
|
||||||
List<Invite> invites = list.getObjects();
|
List<Invite> invites = list.getObjects();
|
||||||
Long serverId = message.getGuild().getIdLong();
|
Long serverId = message.getGuild().getIdLong();
|
||||||
ServerUser author = ServerUser.builder().userId(message.getAuthor().getIdLong()).serverId(message.getGuild().getIdLong()).build();
|
ServerUser author = ServerUser
|
||||||
|
.builder()
|
||||||
|
.userId(message.getAuthor().getIdLong())
|
||||||
|
.serverId(message.getGuild().getIdLong())
|
||||||
|
.isBot(message.getAuthor().isBot())
|
||||||
|
.build();
|
||||||
boolean toDelete = false;
|
boolean toDelete = false;
|
||||||
Map<Long, String> targetServers = new HashMap<>();
|
Map<Long, String> targetServers = new HashMap<>();
|
||||||
List<InviteToDelete> deletedInvites = new ArrayList<>();
|
List<InviteToDelete> deletedInvites = new ArrayList<>();
|
||||||
|
|||||||
@@ -159,10 +159,15 @@ public abstract class StarboardListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected List<AUserInAServer> getUsersExcept(List<ServerUser> users, AUserInAServer author) {
|
protected List<AUserInAServer> getUsersExcept(List<ServerUser> users, AUserInAServer author) {
|
||||||
return users.stream().filter(user -> !(user.getServerId().equals(author.getServerReference().getId()) && user.getUserId().equals(author.getUserReference().getId()))).map(serverUser -> {
|
return users
|
||||||
|
.stream()
|
||||||
|
.filter(serverUser -> !serverUser.getIsBot())
|
||||||
|
.filter(user -> !(user.getServerId().equals(author.getServerReference().getId()) && user.getUserId().equals(author.getUserReference().getId())))
|
||||||
|
.map(serverUser -> {
|
||||||
Optional<AUserInAServer> aUserInAServer = userInServerManagementService.loadUserOptional(serverUser.getServerId(), serverUser.getUserId());
|
Optional<AUserInAServer> aUserInAServer = userInServerManagementService.loadUserOptional(serverUser.getServerId(), serverUser.getUserId());
|
||||||
return aUserInAServer.orElse(null);
|
return aUserInAServer.orElse(null);
|
||||||
}).filter(Objects::nonNull).collect(Collectors.toList());
|
}).filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
|
|||||||
@@ -33,7 +33,11 @@ public class StarboardPostCreatedListenerManager {
|
|||||||
if(listeners == null || listeners.isEmpty()) {
|
if(listeners == null || listeners.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ServerUser userReactingServerUser = ServerUser.builder().serverId(post.getServer().getId()).userId(userReactingId).build();
|
ServerUser userReactingServerUser = ServerUser
|
||||||
|
.builder()
|
||||||
|
.serverId(post.getServer().getId())
|
||||||
|
.userId(userReactingId)
|
||||||
|
.build();
|
||||||
StarboardPostCreatedModel model = createStarboardStatusModel(post, userReactingServerUser);
|
StarboardPostCreatedModel model = createStarboardStatusModel(post, userReactingServerUser);
|
||||||
listeners.forEach(listener -> listenerService.executeFeatureAwareListener(listener, model, starboardCreatedExecutor));
|
listeners.forEach(listener -> listenerService.executeFeatureAwareListener(listener, model, starboardCreatedExecutor));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ public class AsyncJoinListenerBean extends ListenerAdapter {
|
|||||||
.builder()
|
.builder()
|
||||||
.serverId(event.getGuild().getIdLong())
|
.serverId(event.getGuild().getIdLong())
|
||||||
.userId(event.getUser().getIdLong())
|
.userId(event.getUser().getIdLong())
|
||||||
|
.isBot(event.getUser().isBot())
|
||||||
.build();
|
.build();
|
||||||
return MemberJoinModel
|
return MemberJoinModel
|
||||||
.builder()
|
.builder()
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ public class AsyncLeaveListenerBean extends ListenerAdapter {
|
|||||||
.builder()
|
.builder()
|
||||||
.serverId(event.getGuild().getIdLong())
|
.serverId(event.getGuild().getIdLong())
|
||||||
.userId(event.getUser().getIdLong())
|
.userId(event.getUser().getIdLong())
|
||||||
|
.isBot(event.getUser().isBot())
|
||||||
.build();
|
.build();
|
||||||
return MemberLeaveModel
|
return MemberLeaveModel
|
||||||
.builder()
|
.builder()
|
||||||
|
|||||||
@@ -87,7 +87,12 @@ public class AsyncReactionAddedListenerBean extends ListenerAdapter {
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void callAddedListeners(MessageReactionAddEvent event, CachedMessage cachedMessage, CachedReactions reaction, Member member) {
|
public void callAddedListeners(MessageReactionAddEvent event, CachedMessage cachedMessage, CachedReactions reaction, Member member) {
|
||||||
ServerUser serverUser = ServerUser.builder().serverId(event.getGuild().getIdLong()).userId(event.getUserIdLong()).build();
|
ServerUser serverUser = ServerUser
|
||||||
|
.builder()
|
||||||
|
.serverId(event.getGuild().getIdLong())
|
||||||
|
.userId(event.getUserIdLong())
|
||||||
|
.isBot(event.getUser() != null ? event.getUser().isBot() : null)
|
||||||
|
.build();
|
||||||
addReactionIfNotThere(cachedMessage, reaction, serverUser);
|
addReactionIfNotThere(cachedMessage, reaction, serverUser);
|
||||||
ReactionAddedModel model = getModel(event, cachedMessage, serverUser, member);
|
ReactionAddedModel model = getModel(event, cachedMessage, serverUser, member);
|
||||||
messageCache.putMessageInCache(cachedMessage);
|
messageCache.putMessageInCache(cachedMessage);
|
||||||
|
|||||||
@@ -83,7 +83,12 @@ public class AsyncReactionRemovedListenerBean extends ListenerAdapter {
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void callRemoveListeners(MessageReactionRemoveEvent event, CachedMessage cachedMessage, CachedReactions reaction) {
|
public void callRemoveListeners(MessageReactionRemoveEvent event, CachedMessage cachedMessage, CachedReactions reaction) {
|
||||||
ServerUser serverUser = ServerUser.builder().serverId(cachedMessage.getServerId()).userId(event.getUserIdLong()).build();
|
ServerUser serverUser = ServerUser
|
||||||
|
.builder()
|
||||||
|
.serverId(cachedMessage.getServerId())
|
||||||
|
.userId(event.getUserIdLong())
|
||||||
|
.isBot(event.getUser() != null ? event.getUser().isBot() : null)
|
||||||
|
.build();
|
||||||
removeReactionIfThere(cachedMessage, reaction, serverUser);
|
removeReactionIfThere(cachedMessage, reaction, serverUser);
|
||||||
ReactionRemovedModel model = getModel(event, cachedMessage, serverUser);
|
ReactionRemovedModel model = getModel(event, cachedMessage, serverUser);
|
||||||
reactionRemovedListeners.forEach(asyncReactionRemovedListener -> listenerServiceBean.executeFeatureAwareListener(asyncReactionRemovedListener, model, reactionRemovedExecutor));
|
reactionRemovedListeners.forEach(asyncReactionRemovedListener -> listenerServiceBean.executeFeatureAwareListener(asyncReactionRemovedListener, model, reactionRemovedExecutor));
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public class AsyncUserBannedListenerBean extends ListenerAdapter {
|
|||||||
.builder()
|
.builder()
|
||||||
.serverId(event.getGuild().getIdLong())
|
.serverId(event.getGuild().getIdLong())
|
||||||
.userId(event.getUser().getIdLong())
|
.userId(event.getUser().getIdLong())
|
||||||
|
.isBot(event.getUser().isBot())
|
||||||
.build();
|
.build();
|
||||||
return UserBannedModel
|
return UserBannedModel
|
||||||
.builder()
|
.builder()
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public class AsyncUserUnBannedListenerBean extends ListenerAdapter {
|
|||||||
.builder()
|
.builder()
|
||||||
.serverId(event.getGuild().getIdLong())
|
.serverId(event.getGuild().getIdLong())
|
||||||
.userId(event.getUser().getIdLong())
|
.userId(event.getUser().getIdLong())
|
||||||
|
.isBot(event.getUser().isBot())
|
||||||
.build();
|
.build();
|
||||||
return UserUnBannedModel
|
return UserUnBannedModel
|
||||||
.builder()
|
.builder()
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ public class JoinListenerBean extends ListenerAdapter {
|
|||||||
.builder()
|
.builder()
|
||||||
.serverId(event.getGuild().getIdLong())
|
.serverId(event.getGuild().getIdLong())
|
||||||
.userId(event.getUser().getIdLong())
|
.userId(event.getUser().getIdLong())
|
||||||
|
.isBot(event.getUser().isBot())
|
||||||
.build();
|
.build();
|
||||||
return MemberJoinModel
|
return MemberJoinModel
|
||||||
.builder()
|
.builder()
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class LeaveListenerBean extends ListenerAdapter {
|
|||||||
.builder()
|
.builder()
|
||||||
.serverId(event.getGuild().getIdLong())
|
.serverId(event.getGuild().getIdLong())
|
||||||
.userId(event.getUser().getIdLong())
|
.userId(event.getUser().getIdLong())
|
||||||
|
.isBot(event.getUser().isBot())
|
||||||
.build();
|
.build();
|
||||||
return MemberLeaveModel
|
return MemberLeaveModel
|
||||||
.builder()
|
.builder()
|
||||||
|
|||||||
@@ -94,7 +94,12 @@ public class ReactionAddedListenerBean extends ListenerAdapter {
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void callAddedListeners(@Nonnull MessageReactionAddEvent event, CachedMessage cachedMessage, CachedReactions reaction, Member member) {
|
public void callAddedListeners(@Nonnull MessageReactionAddEvent event, CachedMessage cachedMessage, CachedReactions reaction, Member member) {
|
||||||
ServerUser serverUser = ServerUser.builder().serverId(cachedMessage.getServerId()).userId(event.getUserIdLong()).build();
|
ServerUser serverUser = ServerUser
|
||||||
|
.builder()
|
||||||
|
.serverId(cachedMessage.getServerId())
|
||||||
|
.userId(event.getUserIdLong())
|
||||||
|
.isBot(event.getUser() != null ? event.getUser().isBot() : null)
|
||||||
|
.build();
|
||||||
addReactionIfNotThere(cachedMessage, reaction, serverUser);
|
addReactionIfNotThere(cachedMessage, reaction, serverUser);
|
||||||
ReactionAddedModel model = getModel(event, cachedMessage, serverUser, member);
|
ReactionAddedModel model = getModel(event, cachedMessage, serverUser, member);
|
||||||
addedListenerList.forEach(reactedAddedListener -> listenerService.executeFeatureAwareListener(reactedAddedListener, model));
|
addedListenerList.forEach(reactedAddedListener -> listenerService.executeFeatureAwareListener(reactedAddedListener, model));
|
||||||
|
|||||||
@@ -87,7 +87,12 @@ public class ReactionRemovedListenerBean extends ListenerAdapter {
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void callRemoveListeners(@Nonnull MessageReactionRemoveEvent event, CachedMessage cachedMessage, CachedReactions reaction) {
|
public void callRemoveListeners(@Nonnull MessageReactionRemoveEvent event, CachedMessage cachedMessage, CachedReactions reaction) {
|
||||||
ServerUser serverUser = ServerUser.builder().serverId(event.getGuild().getIdLong()).userId(event.getUserIdLong()).build();
|
ServerUser serverUser = ServerUser
|
||||||
|
.builder()
|
||||||
|
.serverId(event.getGuild().getIdLong())
|
||||||
|
.userId(event.getUserIdLong())
|
||||||
|
.isBot(event.getUser() != null ? event.getUser().isBot() : null)
|
||||||
|
.build();
|
||||||
removeReactionIfThere(cachedMessage, reaction, serverUser);
|
removeReactionIfThere(cachedMessage, reaction, serverUser);
|
||||||
ReactionRemovedModel model = getModel(event, cachedMessage, serverUser);
|
ReactionRemovedModel model = getModel(event, cachedMessage, serverUser);
|
||||||
reactionRemovedListeners.forEach(reactionRemovedListener -> listenerService.executeFeatureAwareListener(reactionRemovedListener, model));
|
reactionRemovedListeners.forEach(reactionRemovedListener -> listenerService.executeFeatureAwareListener(reactionRemovedListener, model));
|
||||||
|
|||||||
@@ -172,7 +172,12 @@ public class CacheEntityServiceBean implements CacheEntityService {
|
|||||||
users.forEachAsync(user -> {
|
users.forEachAsync(user -> {
|
||||||
log.debug("Loading user {} for reaction.", user.getIdLong());
|
log.debug("Loading user {} for reaction.", user.getIdLong());
|
||||||
if(reaction.getGuild() != null) {
|
if(reaction.getGuild() != null) {
|
||||||
aUsers.add(ServerUser.builder().userId(user.getIdLong()).serverId(reaction.getGuild().getIdLong()).build());
|
aUsers.add(ServerUser
|
||||||
|
.builder()
|
||||||
|
.userId(user.getIdLong())
|
||||||
|
.isBot(user.isBot())
|
||||||
|
.serverId(reaction.getGuild().getIdLong())
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}).whenComplete((o, throwable) -> {
|
}).whenComplete((o, throwable) -> {
|
||||||
@@ -223,7 +228,11 @@ public class CacheEntityServiceBean implements CacheEntityService {
|
|||||||
allFutures.add(referencedMessageFuture);
|
allFutures.add(referencedMessageFuture);
|
||||||
FutureUtils.toSingleFuture(allFutures).thenAccept(aVoid ->
|
FutureUtils.toSingleFuture(allFutures).thenAccept(aVoid ->
|
||||||
{
|
{
|
||||||
CachedAuthor cachedAuthor = CachedAuthor.builder().authorId(message.getAuthor().getIdLong()).isBot(message.getAuthor().isBot()).build();
|
CachedAuthor cachedAuthor = CachedAuthor
|
||||||
|
.builder()
|
||||||
|
.authorId(message.getAuthor().getIdLong())
|
||||||
|
.isBot(message.getAuthor().isBot())
|
||||||
|
.build();
|
||||||
CachedMessage.CachedMessageBuilder builder = CachedMessage.builder()
|
CachedMessage.CachedMessageBuilder builder = CachedMessage.builder()
|
||||||
.author(cachedAuthor)
|
.author(cachedAuthor)
|
||||||
.messageId(message.getIdLong())
|
.messageId(message.getIdLong())
|
||||||
@@ -271,7 +280,10 @@ public class CacheEntityServiceBean implements CacheEntityService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<CachedReactions> convertReactionFuturesToCachedReactions(List<CompletableFuture<CachedReactions>> futures) {
|
private List<CachedReactions> convertReactionFuturesToCachedReactions(List<CompletableFuture<CachedReactions>> futures) {
|
||||||
return futures.stream().map(CompletableFuture::join).collect(Collectors.toList());
|
return futures
|
||||||
|
.stream()
|
||||||
|
.map(CompletableFuture::join)
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,7 +120,11 @@ public class EmoteServiceBean implements EmoteService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<CachedReactions> getReactionFromMessageByEmote(CachedMessage message, AEmote emote) {
|
public Optional<CachedReactions> getReactionFromMessageByEmote(CachedMessage message, AEmote emote) {
|
||||||
return message.getReactions().stream().filter(reaction -> compareCachedEmoteWithAEmote(reaction.getEmote(), emote)).findFirst();
|
return message
|
||||||
|
.getReactions()
|
||||||
|
.stream()
|
||||||
|
.filter(reaction -> compareCachedEmoteWithAEmote(reaction.getEmote(), emote))
|
||||||
|
.findFirst();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import java.io.Serializable;
|
|||||||
public class ServerUser implements Serializable {
|
public class ServerUser implements Serializable {
|
||||||
private Long serverId;
|
private Long serverId;
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
private Boolean isBot;
|
||||||
|
|
||||||
public static ServerUser fromAUserInAServer(AUserInAServer aUserInAServer) {
|
public static ServerUser fromAUserInAServer(AUserInAServer aUserInAServer) {
|
||||||
return ServerUser
|
return ServerUser
|
||||||
@@ -29,6 +30,7 @@ public class ServerUser implements Serializable {
|
|||||||
.builder()
|
.builder()
|
||||||
.serverId(member.getGuild().getIdLong())
|
.serverId(member.getGuild().getIdLong())
|
||||||
.userId(member.getIdLong())
|
.userId(member.getIdLong())
|
||||||
|
.isBot(member.getUser().isBot())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,10 @@ public class CachedMessage implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ServerUser getAuthorAsServerUser() {
|
public ServerUser getAuthorAsServerUser() {
|
||||||
return ServerUser.builder().serverId(serverId).userId(author.getAuthorId()).build();
|
return ServerUser
|
||||||
|
.builder()
|
||||||
|
.serverId(serverId)
|
||||||
|
.userId(author.getAuthorId())
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,16 @@ public class CachedReactions implements Serializable {
|
|||||||
private List<ServerUser> users;
|
private List<ServerUser> users;
|
||||||
|
|
||||||
public CachedReaction getReactionForSpecificUser(ServerUser serverUser) {
|
public CachedReaction getReactionForSpecificUser(ServerUser serverUser) {
|
||||||
ServerUser matchingUser = users.stream().filter(serverUser1 -> serverUser1.equals(serverUser)).findAny().orElseThrow(() -> new AbstractoRunTimeException("Server user not found."));
|
ServerUser matchingUser = users
|
||||||
return CachedReaction.builder().self(self).emote(emote).user(matchingUser).build();
|
.stream()
|
||||||
|
.filter(serverUser1 -> serverUser1.equals(serverUser))
|
||||||
|
.findAny()
|
||||||
|
.orElseThrow(() -> new AbstractoRunTimeException("Server user not found."));
|
||||||
|
return CachedReaction
|
||||||
|
.builder()
|
||||||
|
.self(self)
|
||||||
|
.emote(emote)
|
||||||
|
.user(matchingUser)
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user