addressed sonar code smells

This commit is contained in:
Sheldan
2020-05-27 19:32:19 +02:00
parent 175a92408c
commit 3fa5edf67a
77 changed files with 164 additions and 243 deletions

View File

@@ -2,7 +2,6 @@ package dev.sheldan.abstracto.experience.config;
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.ConfigService;
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -162,7 +162,7 @@ public class AUserExperienceServiceBean implements AUserExperienceService {
if(!roleService.hasAnyOfTheRoles(member, disabledRoles)) {
log.trace("Handling {}. The user gains {}", userInAServer.getUserReference().getId(), gainedExperience);
AUserExperience aUserExperience = userExperienceManagementService.incrementExpForUser(userInAServer, gainedExperience.longValue(), 1L);
if(!aUserExperience.getExperienceGainDisabled()) {
if(Boolean.FALSE.equals(aUserExperience.getExperienceGainDisabled())) {
updateUserlevel(aUserExperience, levels);
updateUserRole(aUserExperience, roles);
userExperienceManagementService.saveUser(aUserExperience);

View File

@@ -61,7 +61,7 @@ public class UserExperienceManagementServiceBean implements UserExperienceManage
Optional<AUserExperience> byId = repository.findById(user.getUserInServerId());
if(byId.isPresent()) {
AUserExperience userExperience = byId.get();
if(!userExperience.getExperienceGainDisabled()) {
if(Boolean.FALSE.equals(userExperience.getExperienceGainDisabled())) {
userExperience.setMessageCount(userExperience.getMessageCount() + messageCount);
userExperience.setExperience(userExperience.getExperience() + experience);
}

View File

@@ -25,7 +25,7 @@ public class DecayAllWarnings extends AbstractConditionableCommand {
@Override
public CommandResult execute(CommandContext commandContext) {
List<Object> parameters = commandContext.getParameters().getParameters();
Boolean logWarnings = !parameters.isEmpty() ? (Boolean) parameters.get(0) : Boolean.FALSE;
boolean logWarnings = !parameters.isEmpty() ? (Boolean) parameters.get(0) : Boolean.FALSE;
warnService.decayAllWarningsForServer(commandContext.getUserInitiatedContext().getServer(), logWarnings);
return CommandResult.fromSuccess();
}

View File

@@ -7,13 +7,10 @@ import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
import dev.sheldan.abstracto.moderation.config.ModerationModule;
import dev.sheldan.abstracto.moderation.config.features.ModerationFeatures;
import dev.sheldan.abstracto.moderation.service.management.UserNoteManagementService;
import dev.sheldan.abstracto.templating.service.TemplateService;
import net.dv8tion.jda.api.entities.Member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

View File

@@ -55,7 +55,7 @@ public class Warnings extends AbstractConditionableCommand {
@Override
public CommandResult execute(CommandContext commandContext) {
List<Warning> warnsToDisplay;
if(commandContext.getParameters().getParameters().size() > 0) {
if(!commandContext.getParameters().getParameters().isEmpty()) {
Member member = (Member) commandContext.getParameters().getParameters().get(0);
warnsToDisplay = warnManagementService.getAllWarnsForUser(userInServerManagementService.loadUser(member));
} else {

View File

@@ -23,7 +23,6 @@ import java.util.HashMap;
public class JoinLogger implements JoinListener {
private static final String USER_JOIN_TEMPLATE = "user_join";
private static final String JOIN_LOG_TARGET = "joinLog";
@Autowired
private TemplateService templateService;

View File

@@ -19,7 +19,6 @@ import org.springframework.stereotype.Component;
@Slf4j
public class MessageDeleteLogListener implements MessageDeletedListener {
private static final String DELETE_LOG_TARGET = "deleteLog";
private static final String MESSAGE_DELETED_TEMPLATE = "message_deleted";
private static final String MESSAGE_DELETED_ATTACHMENT_TEMPLATE = "message_deleted_attachment";

View File

@@ -80,7 +80,6 @@ public class MuteServiceBean implements MuteService {
private static final String MUTE_LOG_TEMPLATE = "mute_log";
private static final String UNMUTE_LOG_TEMPLATE = "unmute_log";
private static final String MUTE_LOG_TARGET = "muteLog";
private static final String MUTE_NOTIFICATION_TEMPLATE = "mute_notification";
@Override
@@ -225,7 +224,7 @@ public class MuteServiceBean implements MuteService {
// but if the person gets unmuted immediately, via command, this might still execute of the instant unmute
// so we need to load the mute, and check if the mute was unmuted already, because the mute object we have at
// hand was loaded earlier, and does not reflect the true state
if(updatedMute.getMuteEnded()) {
if(Boolean.TRUE.equals(updatedMute.getMuteEnded())) {
log.info("Mute {} has ended already, {} does not need to be unmuted anymore.", mute.getId(), mute.getMutedUser().getUserReference().getId());
return;
}

View File

@@ -148,7 +148,7 @@ public class WarnServiceBean implements WarnService {
}
@Override
public void decayAllWarningsForServer(AServer server, Boolean logWarnings) {
public void decayAllWarningsForServer(AServer server, boolean logWarnings) {
List<Warning> warningsToDecay = warnManagementService.getActiveWarningsInServerOlderThan(server, Instant.now());
decayWarnings(warningsToDecay);
if(logWarnings) {

View File

@@ -15,5 +15,5 @@ public interface WarnService {
Warning warnUser(FullUser warnedUser, FullUser warningUser, String reason, TextChannel feedbackChannel);
void warnUserWithLog(Member warnedMember, Member warningMember, String reason, WarnLog warnLog, TextChannel feedbackChannel);
void decayWarningsForServer(AServer server);
void decayAllWarningsForServer(AServer server, Boolean logWarnings);
void decayAllWarningsForServer(AServer server, boolean logWarnings);
}

View File

@@ -25,7 +25,7 @@ public class ModMailMessageServiceBean implements ModMailMessageService {
@Override
public List<CompletableFuture<Message>> loadModMailMessages(List<ModMailMessage> modMailMessages) {
if(modMailMessages.size() == 0) {
if(modMailMessages.isEmpty()) {
return new ArrayList<>();
}
ModMailThread thread = modMailMessages.get(0).getThreadReference();
@@ -34,7 +34,7 @@ public class ModMailMessageServiceBean implements ModMailMessageService {
ServerChannelMessage.ServerChannelMessageBuilder serverChannelMessageBuilder = ServerChannelMessage
.builder()
.messageId(modMailMessage.getMessageId());
if(!modMailMessage.getDmChannel()) {
if(Boolean.FALSE.equals(modMailMessage.getDmChannel())) {
serverChannelMessageBuilder
.channelId(modMailMessage.getThreadReference().getChannel().getId())
.serverId(modMailMessage.getThreadReference().getServer().getId());
@@ -42,9 +42,7 @@ public class ModMailMessageServiceBean implements ModMailMessageService {
messageIds.add(serverChannelMessageBuilder.build());
});
List<CompletableFuture<Message>> messageFutures = new ArrayList<>();
modMailMessages.forEach(modMailMessage -> {
messageFutures.add(new CompletableFuture<>());
});
modMailMessages.forEach(modMailMessage -> messageFutures.add(new CompletableFuture<>()));
Optional<TextChannel> textChannelFromServer = botService.getTextChannelFromServer(thread.getServer().getId(), thread.getChannel().getId());
if(textChannelFromServer.isPresent()) {
TextChannel modMailThread = textChannelFromServer.get();
@@ -52,16 +50,12 @@ public class ModMailMessageServiceBean implements ModMailMessageService {
Iterator<CompletableFuture<Message>> iterator = messageFutures.iterator();
messageIds.forEach(serverChannelMessage -> {
if(serverChannelMessage.getChannelId() == null){
privateChannel.retrieveMessageById(serverChannelMessage.getMessageId()).queue(message -> {
iterator.next().complete(message);
}, throwable -> {
privateChannel.retrieveMessageById(serverChannelMessage.getMessageId()).queue(message -> iterator.next().complete(message), throwable -> {
log.info("Failed to load message in private channel with user {}", thread.getUser().getUserReference().getId());
iterator.next().complete(null);
});
} else {
modMailThread.retrieveMessageById(serverChannelMessage.getMessageId()).queue(message -> {
iterator.next().complete(message);
}, throwable -> {
modMailThread.retrieveMessageById(serverChannelMessage.getMessageId()).queue(message -> iterator.next().complete(message), throwable -> {
log.info("Failed to load message {} in thread {}", serverChannelMessage.getMessageId(), modMailThread.getIdLong());
iterator.next().complete(null);
});

View File

@@ -110,7 +110,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
@Override
public void createModMailThreadForUser(FullUser aUserInAServer, Message initialMessage, MessageChannel feedBackChannel, Boolean userInitiated) {
public void createModMailThreadForUser(FullUser aUserInAServer, Message initialMessage, MessageChannel feedBackChannel, boolean userInitiated) {
Long categoryId = configService.getLongValue(MODMAIL_CATEGORY, aUserInAServer.getAUserInAServer().getServerReference().getId());
User user = aUserInAServer.getMember().getUser();
CompletableFuture<TextChannel> textChannel = channelService.createTextChannel(user.getName() + user.getDiscriminator(), aUserInAServer.getAUserInAServer().getServerReference(), categoryId);
@@ -127,7 +127,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
}
@Transactional
public void performModMailThreadSetup(FullUser aUserInAServer, Message initialMessage, TextChannel channel, Boolean userInitiated, List<UndoActionInstance> undoActions) {
public void performModMailThreadSetup(FullUser aUserInAServer, Message initialMessage, TextChannel channel, boolean userInitiated, List<UndoActionInstance> undoActions) {
try {
ModMailThread thread = createThreadObject(channel, aUserInAServer);
sendModMailHeader(channel, aUserInAServer, undoActions);
@@ -191,7 +191,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
@Override
public void createModMailPrompt(AUser user, Message initialMessage) {
List<AUserInAServer> knownServers = userInServerManagementService.getUserInAllServers(user.getId());
if(knownServers.size() > 0) {
if(!knownServers.isEmpty()) {
List<ServerChoice> availableGuilds = new ArrayList<>();
HashMap<String, AUserInAServer> choices = new HashMap<>();
for (int i = 0; i < knownServers.size(); i++) {
@@ -209,7 +209,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
availableGuilds.add(serverChoice);
}
}
if(availableGuilds.size() > 0) {
if(availableGuilds.size() > 1) {
ModMailServerChooserModel modMailServerChooserModel = ModMailServerChooserModel
.builder()
.commonGuilds(availableGuilds)
@@ -294,9 +294,9 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
.build();
MessageToSend messageToSend = templateService.renderEmbedTemplate("modmail_user_message", modMailUserReplyModel);
List<CompletableFuture<Message>> completableFutures = channelService.sendMessageToSendToChannel(messageToSend, textChannel);
return CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).thenAccept(aVoid -> {
self.postProcessSendMessages(modMailThreadId, message, completableFutures);
});
return CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).thenAccept(aVoid ->
self.postProcessSendMessages(modMailThreadId, message, completableFutures)
);
}
@@ -324,15 +324,15 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
}
@Override
public void relayMessageToDm(ModMailThread modMailThread, String text, Message message, Boolean anonymous, MessageChannel feedBack) {
public void relayMessageToDm(ModMailThread modMailThread, String text, Message message, boolean anonymous, MessageChannel feedBack) {
Long modMailThreadId = modMailThread.getId();
User userById = botService.getInstance().getUserById(modMailThread.getUser().getUserReference().getId());
if(userById != null) {
userById.openPrivateChannel().queue(privateChannel -> {
self.sendReply(modMailThreadId, text, message, privateChannel, anonymous, feedBack);
}, throwable -> {
log.warn("Failed to open private channel with user {}", userById.getIdLong());
});
userById.openPrivateChannel().queue(privateChannel ->
self.sendReply(modMailThreadId, text, message, privateChannel, anonymous, feedBack)
,throwable ->
log.warn("Failed to open private channel with user {}", userById.getIdLong())
);
}
}
@@ -363,14 +363,14 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
}
@Override
public synchronized void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, Boolean notifyUser) {
public synchronized void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, boolean notifyUser) {
AFeatureMode aFeatureMode = featureModeService.getFeatureMode(ModMailFeatures.MOD_MAIL, modMailThread.getServer());
boolean loggingMode = aFeatureMode.getMode().equalsIgnoreCase(ModMailMode.LOGGING.getKey());
closeModMailThread(modMailThread, feedBack, note, notifyUser, loggingMode);
}
@Override
public void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, Boolean notifyUser, Boolean logThread) {
public void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, boolean notifyUser, boolean logThread) {
Long modMailThreadId = modMailThread.getId();
log.info("Starting closing procedure for thread {}", modMailThread.getId());
List<ModMailMessage> modMailMessages = modMailThread.getMessages();
@@ -612,9 +612,9 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
ModMailModeratorReplyModel modMailUserReplyModel = modMailModeratorReplyModelBuilder.build();
MessageToSend messageToSend = templateService.renderEmbedTemplate("modmail_staff_message", modMailUserReplyModel);
List<CompletableFuture<Message>> completableFutures = channelService.sendMessageToSendToChannel(messageToSend, privateChannel);
CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).thenAccept(aVoid -> {
self.saveSendMessagesAndUpdateState(modMailThreadId, anonymous, moderator, completableFutures);
}).exceptionally(throwable -> {
CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).thenAccept(aVoid ->
self.saveSendMessagesAndUpdateState(modMailThreadId, anonymous, moderator, completableFutures)
).exceptionally(throwable -> {
log.error("Failed to send message to user {}", modMailThread.getUser().getUserReference().getId());
sendModMailFailure("modmail_exception_cannot_message_user", modMailThread.getUser(), modMailThread.getId(), feedBack, throwable);
return null;
@@ -650,8 +650,8 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
}
public void saveMessageIds(List<Message> messages, ModMailThread modMailThread, AUserInAServer author, Boolean anonymous, Boolean inDmChannel) {
messages.forEach(message -> {
modMailMessageManagementService.addMessageToThread(modMailThread, message, author, anonymous, inDmChannel);
});
messages.forEach(message ->
modMailMessageManagementService.addMessageToThread(modMailThread, message, author, anonymous, inDmChannel)
);
}
}

View File

@@ -1,6 +1,5 @@
package dev.sheldan.abstracto.modmail.setup;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.exception.ChannelNotFoundException;
import dev.sheldan.abstracto.core.interactive.*;
import dev.sheldan.abstracto.core.models.AServerChannelUserId;
@@ -94,7 +93,7 @@ public class ModMailCategorySetupBean implements ModMailCategorySetup {
Guild guild = botService.getGuildByIdNullable(user.getGuildId());
FeatureValidationResult featureValidationResult = FeatureValidationResult.builder().validationResult(true).build();
modMailFeatureValidator.validateModMailCategory(featureValidationResult, guild, categoryId);
if(featureValidationResult.getValidationResult()) {
if(Boolean.FALSE.equals(featureValidationResult.getValidationResult())) {
AConfig fakeValue = configService.getFakeConfigForValue(ModMailThreadServiceBean.MODMAIL_CATEGORY, user.getGuildId(), messageContent);
ModMailCategoryDelayedActionConfig build = ModMailCategoryDelayedActionConfig
.builder()
@@ -128,9 +127,7 @@ public class ModMailCategorySetupBean implements ModMailCategorySetup {
}
protected Runnable getTimeoutRunnable(Long serverId, Long channelId) {
return () -> {
interactiveUtils.sendTimeoutMessage(serverId, channelId);
};
return () -> interactiveUtils.sendTimeoutMessage(serverId, channelId);
}
protected boolean checkForExit(Message message) {

View File

@@ -7,7 +7,7 @@ import java.util.HashMap;
public class ModMailThreadNotFoundException extends AbstractoRunTimeException implements Templatable {
private Long modMailThreadId;
private final Long modMailThreadId;
public ModMailThreadNotFoundException(Long modMailThreadId) {
super("");

View File

@@ -2,7 +2,6 @@ package dev.sheldan.abstracto.modmail.models.database;
import dev.sheldan.abstracto.core.models.database.*;
import lombok.*;
import net.dv8tion.jda.api.entities.ChannelType;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;

View File

@@ -10,13 +10,13 @@ import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.MessageChannel;
public interface ModMailThreadService {
void createModMailThreadForUser(FullUser userInAServer, Message initialMessage, MessageChannel feedBackChannel, Boolean userInitiated);
void createModMailThreadForUser(FullUser userInAServer, Message initialMessage, MessageChannel feedBackChannel, boolean userInitiated);
boolean hasOpenThread(AUserInAServer aUserInAServer);
boolean hasOpenThread(AUser user);
void setModMailCategoryTo(AServer server, Long categoryId);
void createModMailPrompt(AUser user, Message initialMessage);
void relayMessageToModMailThread(ModMailThread modMailThread, Message message);
void relayMessageToDm(ModMailThread modMailThread, String text, Message message, Boolean anonymous, MessageChannel feedBack);
void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, Boolean notifyUser);
void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, Boolean notifyUser, Boolean logThread);
void relayMessageToDm(ModMailThread modMailThread, String text, Message message, boolean anonymous, MessageChannel feedBack);
void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, boolean notifyUser);
void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, boolean notifyUser, boolean logThread);
}

View File

@@ -40,9 +40,7 @@ public class MessageEmbedListener implements MessageReceivedListener {
for (MessageEmbedLink messageEmbedLink : links) {
messageRaw = messageRaw.replace(messageEmbedLink.getWholeUrl(), "");
Long userEmbeddingUserInServerId = userInServerManagementService.loadUser(message.getMember()).getUserInServerId();
Consumer<CachedMessage> cachedMessageConsumer = cachedMessage -> {
self.loadUserAndEmbed(message, userEmbeddingUserInServerId, cachedMessage);
};
Consumer<CachedMessage> cachedMessageConsumer = cachedMessage ->self.loadUserAndEmbed(message, userEmbeddingUserInServerId, cachedMessage);
messageCache.getMessageFromCache(messageEmbedLink.getServerId(), messageEmbedLink.getChannelId(), messageEmbedLink.getMessageId()).thenAccept(cachedMessageConsumer)
.exceptionally(throwable -> {
log.error("Error when embedding link for message {}", message.getId(), throwable);

View File

@@ -98,16 +98,15 @@ public class MessageEmbedServiceBean implements MessageEmbedService {
@Override
public void embedLinks(List<MessageEmbedLink> linksToEmbed, TextChannel target, Long userEmbeddingUserInServerId, Message embeddingMessage) {
linksToEmbed.forEach(messageEmbedLink -> {
linksToEmbed.forEach(messageEmbedLink ->
messageCache.getMessageFromCache(messageEmbedLink.getServerId(), messageEmbedLink.getChannelId(), messageEmbedLink.getMessageId())
.thenAccept(cachedMessage -> {
self.embedLink(cachedMessage, target, userEmbeddingUserInServerId, embeddingMessage);
}
.thenAccept(cachedMessage -> self.embedLink(cachedMessage, target, userEmbeddingUserInServerId, embeddingMessage)
).exceptionally(throwable -> {
log.error("Message retrieval from cache failed for message {}.", messageEmbedLink.getMessageId(), throwable);
return null;
});
});
})
);
}
@Override

View File

@@ -83,18 +83,16 @@ public class StarboardServiceBean implements StarboardService {
public void createStarboardPost(CachedMessage message, List<AUserInAServer> userExceptAuthor, AUserInAServer userReacting, AUserInAServer starredUser) {
StarboardPostModel starboardPostModel = buildStarboardPostModel(message, userExceptAuthor.size());
List<Long> userExceptAuthorIds = new ArrayList<>();
userExceptAuthor.forEach(aUserInAServer -> {
userExceptAuthorIds.add(aUserInAServer.getUserInServerId());
});
userExceptAuthor.forEach(aUserInAServer -> userExceptAuthorIds.add(aUserInAServer.getUserInServerId()));
MessageToSend messageToSend = templateService.renderEmbedTemplate(STARBOARD_POST_TEMPLATE, starboardPostModel);
PostTarget starboard = postTargetManagement.getPostTarget(StarboardPostTarget.STARBOARD.getKey(), message.getServerId());
List<CompletableFuture<Message>> completableFutures = postTargetService.sendEmbedInPostTarget(messageToSend, StarboardPostTarget.STARBOARD, message.getServerId());
Long starboardChannelId = starboard.getChannelReference().getId();
Long starredUserId = starredUser.getUserInServerId();
Long userReactingId = userReacting.getUserInServerId();
CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).thenAccept(aVoid -> {
self.persistPost(message, userExceptAuthorIds, completableFutures, starboardChannelId, starredUserId, userReactingId);
}) .exceptionally(throwable -> {
CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).thenAccept(aVoid ->
self.persistPost(message, userExceptAuthorIds, completableFutures, starboardChannelId, starredUserId, userReactingId)
) .exceptionally(throwable -> {
log.error("Failed to create starboard post for message {} in channel {} in server {}", message.getMessageId(), message.getChannelId(), message.getServerId(), throwable);
return null;
});