From 8db1cead57850849545a2089c993d0008e5eb835 Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Sat, 9 May 2020 01:32:09 +0200 Subject: [PATCH] fixed some catch blocks to include all exceptions fixed message sending undo action --- .../modmail/service/ModMailThreadServiceBean.java | 8 +++++++- .../abstracto/core/service/BotServiceBean.java | 11 +++++++++++ .../abstracto/core/service/UndoActionServiceBean.java | 4 ++-- .../abstracto/core/models/UndoActionInstance.java | 4 ++-- .../sheldan/abstracto/core/service/BotService.java | 1 + 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/service/ModMailThreadServiceBean.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/service/ModMailThreadServiceBean.java index 08cfdae94..e2bd77dd2 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/service/ModMailThreadServiceBean.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/service/ModMailThreadServiceBean.java @@ -357,9 +357,11 @@ public class ModMailThreadServiceBean implements ModMailThreadService { list.getFutures().forEach(messageCompletableFuture -> { try { Message message = messageCompletableFuture.get(); - undoActions.add(UndoActionInstance.getMessageDeleteAction(message.getGuild().getIdLong(), message.getChannel().getIdLong(), message.getIdLong())); + undoActions.add(UndoActionInstance.getMessageDeleteAction(message.getChannel().getIdLong(), message.getIdLong())); } catch (InterruptedException | ExecutionException e) { log.error("Failed to post logging messages.", e); + } catch (Exception e) { + log.error("Failed to handle the mod mail log messages.", e); } }); self.afterSuccessfulLog(modMailThreadId, feedBack, notifyUser, undoActions); @@ -463,6 +465,8 @@ public class ModMailThreadServiceBean implements ModMailThreadService { } } catch (InterruptedException | ExecutionException e) { log.error("Error while executing future to retrieve reaction.", e); + } catch (Exception e) { + log.error("Failed handle the loaded messages.", e); } }); List> completableFutures = new ArrayList<>(); @@ -535,6 +539,8 @@ public class ModMailThreadServiceBean implements ModMailThreadService { messages.add(messageToAdd); } catch (InterruptedException | ExecutionException e) { log.error("A future when sending the message to the user was interrupted.", e); + } catch (Exception e) { + log.error("Failed to handle the send staff message.", e); } }); self.saveMessageIds(messages, modMailThread, moderator, anonymous, true); diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/BotServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/BotServiceBean.java index 27a0eed50..62be1b48e 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/BotServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/BotServiceBean.java @@ -110,6 +110,17 @@ public class BotServiceBean implements BotService { return CompletableFuture.completedFuture(null); } + @Override + public CompletableFuture deleteMessage(Long channelId, Long messageId) { + TextChannel textChannel = getInstance().getTextChannelById(channelId); + if(textChannel != null) { + return textChannel.deleteMessageById(messageId).submit(); + } else { + log.warn("Could not find channel {} to delete message {} in.", channelId, messageId); + } + return CompletableFuture.completedFuture(null); + } + @Override public Optional getEmote(Long serverId, AEmote emote) { if(!emote.getCustom()) { diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/UndoActionServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/UndoActionServiceBean.java index ff872cc0f..3eea62964 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/UndoActionServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/UndoActionServiceBean.java @@ -33,11 +33,11 @@ public class UndoActionServiceBean implements UndoActionService { deleteChannel(ids.get(0), ids.get(1)); break; case DELETE_MESSAGE: - if(ids.size() != 3) { + if(ids.size() != 2) { log.error("Not the correct amount of ids provided for the message deletion undo action."); break; } - botService.deleteMessage(ids.get(0), ids.get(1), ids.get(2)); + botService.deleteMessage(ids.get(0), ids.get(1)); } }); } diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/UndoActionInstance.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/UndoActionInstance.java index e5544c449..663f0ae98 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/UndoActionInstance.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/UndoActionInstance.java @@ -22,11 +22,11 @@ public class UndoActionInstance { .build(); } - public static UndoActionInstance getMessageDeleteAction(Long serverId, Long channelId, Long messageId) { + public static UndoActionInstance getMessageDeleteAction(Long channelId, Long messageId) { return UndoActionInstance .builder() .action(UndoAction.DELETE_MESSAGE) - .ids(Arrays.asList(serverId, channelId, messageId)) + .ids(Arrays.asList(channelId, messageId)) .build(); } } diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/BotService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/BotService.java index 87a41675d..e114ee1df 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/BotService.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/BotService.java @@ -24,6 +24,7 @@ public interface BotService { Member getMemberInServer(AUserInAServer aUserInAServer); Member getMemberInServer(AServer server, AUser member); CompletableFuture deleteMessage(Long serverId, Long channelId, Long messageId); + CompletableFuture deleteMessage(Long channelId, Long messageId); Optional getEmote(Long serverId, AEmote emote); Optional getTextChannelFromServer(Guild serverId, Long textChannelId); Optional getTextChannelFromServer(Long serverId, Long textChannelId);