[SONAR] fixing major sonar issues

This commit is contained in:
Sheldan
2020-09-30 01:31:21 +02:00
parent 8e05bc90ea
commit f0d517af22
3 changed files with 26 additions and 36 deletions

View File

@@ -685,35 +685,29 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic
@Transactional
public CompletableFuture<Void> addEmotes(List<CompletableFuture<Message>> assignablePlacePostsMessageFutures, String placeKey) {
try {
Message firstMessage = assignablePlacePostsMessageFutures.get(0).get();
Long serverId = firstMessage.getGuild().getIdLong();
Message firstMessage = assignablePlacePostsMessageFutures.get(0).join();
Long serverId = firstMessage.getGuild().getIdLong();
AServer innerServer = serverManagementService.loadOrCreate(serverId);
AssignableRolePlace innerRolePlace = rolePlaceManagementService.findByServerAndKey(innerServer, placeKey);
AServer innerServer = serverManagementService.loadOrCreate(serverId);
AssignableRolePlace innerRolePlace = rolePlaceManagementService.findByServerAndKey(innerServer, placeKey);
List<AssignableRole> roleStream = innerRolePlace.getAssignableRoles().stream().sorted(Comparator.comparingInt(AssignableRole::getPosition)).collect(Collectors.toList());
List<CompletableFuture<Void>> reactionFutures = new ArrayList<>();
int usedEmotes = 0;
for (CompletableFuture<Message> messageCompletableFuture : assignablePlacePostsMessageFutures) {
Message sentMessage = messageCompletableFuture.get();
// this uses the actual embed count as a limit, so this relies on fields to be used for description, if this changes, this needs to be changed
MessageEmbed embed = sentMessage.getEmbeds().get(0);
List<AssignableRole> firstRoles = roleStream.subList(usedEmotes, usedEmotes + embed.getFields().size());
usedEmotes += embed.getFields().size();
List<Integer> usedEmoteIds = firstRoles.stream().map(assignableRole -> assignableRole.getEmote().getId()).collect(Collectors.toList());
CompletableFuture<Void> firstMessageFuture = createAssignableRolePlacePost(sentMessage, serverId, usedEmoteIds);
reactionFutures.add(firstMessageFuture);
}
return CompletableFuture.allOf(reactionFutures.toArray(new CompletableFuture[0])).thenCompose(aVoid -> {
self.storeCreatedAssignableRolePlacePosts(placeKey, serverId, assignablePlacePostsMessageFutures);
return CompletableFuture.completedFuture(null);
});
} catch (InterruptedException | ExecutionException e) {
log.error("Failed to process future from sending assignable place posts messages.", e);
throw new AbstractoRunTimeException(e);
List<AssignableRole> roleStream = innerRolePlace.getAssignableRoles().stream().sorted(Comparator.comparingInt(AssignableRole::getPosition)).collect(Collectors.toList());
List<CompletableFuture<Void>> reactionFutures = new ArrayList<>();
int usedEmotes = 0;
for (CompletableFuture<Message> messageCompletableFuture : assignablePlacePostsMessageFutures) {
Message sentMessage = messageCompletableFuture.join();
// this uses the actual embed count as a limit, so this relies on fields to be used for description, if this changes, this needs to be changed
MessageEmbed embed = sentMessage.getEmbeds().get(0);
List<AssignableRole> firstRoles = roleStream.subList(usedEmotes, usedEmotes + embed.getFields().size());
usedEmotes += embed.getFields().size();
List<Integer> usedEmoteIds = firstRoles.stream().map(assignableRole -> assignableRole.getEmote().getId()).collect(Collectors.toList());
CompletableFuture<Void> firstMessageFuture = createAssignableRolePlacePost(sentMessage, serverId, usedEmoteIds);
reactionFutures.add(firstMessageFuture);
}
return CompletableFuture.allOf(reactionFutures.toArray(new CompletableFuture[0])).thenCompose(aVoid -> {
self.storeCreatedAssignableRolePlacePosts(placeKey, serverId, assignablePlacePostsMessageFutures);
return CompletableFuture.completedFuture(null);
});
}
@Transactional

View File

@@ -30,11 +30,8 @@ public class ServerManagementServiceBean implements ServerManagementService {
@Override
public AServer loadOrCreate(Long id) {
if(repository.existsById(id)) {
return repository.findById(id).get();
} else {
return createServer(id);
}
Optional<AServer> optional = repository.findById(id);
return optional.orElseGet(() -> createServer(id));
}
@Override

View File

@@ -7,6 +7,8 @@ import net.dv8tion.jda.api.entities.Member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Optional;
@Component
@Slf4j
public class UserManagementServiceBean implements UserManagementService {
@@ -29,10 +31,7 @@ public class UserManagementServiceBean implements UserManagementService {
@Override
public AUser loadUser(Long userId) {
if(userRepository.existsById(userId)) {
return userRepository.findById(userId).get();
} else {
return this.createUser(userId);
}
Optional<AUser> optional = userRepository.findById(userId);
return optional.orElseGet(() -> this.createUser(userId));
}
}