diff --git a/src/main/java/net/discordjug/javabot/RuntimeHintsConfiguration.java b/src/main/java/net/discordjug/javabot/RuntimeHintsConfiguration.java index 3ece8c1a1..3fb5f6c57 100644 --- a/src/main/java/net/discordjug/javabot/RuntimeHintsConfiguration.java +++ b/src/main/java/net/discordjug/javabot/RuntimeHintsConfiguration.java @@ -2,6 +2,7 @@ import java.nio.channels.Channel; +import club.minnced.discord.webhook.send.WebhookEmbed; import net.discordjug.javabot.data.config.BotConfig; import net.discordjug.javabot.data.config.GuildConfig; import net.discordjug.javabot.data.config.GuildConfigItem; @@ -48,7 +49,9 @@ //ensure JDA can create necessary caches User[].class, Guild[].class, Member[].class, Role[].class, Channel[].class, AudioManager[].class, ScheduledEvent[].class, ThreadMember[].class, ForumTag[].class, RichCustomEmoji[].class, GuildSticker[].class, MemberPresenceImpl[].class, //needs to be serialized for channel managers etc - PermOverrideData.class + PermOverrideData.class, + //ensure that webhook embed authors can be serialized + WebhookEmbed.EmbedAuthor.class }) public class RuntimeHintsConfiguration implements RuntimeHintsRegistrar { diff --git a/src/main/java/net/discordjug/javabot/util/WebhookUtil.java b/src/main/java/net/discordjug/javabot/util/WebhookUtil.java index bdad5a4aa..a93e8ff92 100644 --- a/src/main/java/net/discordjug/javabot/util/WebhookUtil.java +++ b/src/main/java/net/discordjug/javabot/util/WebhookUtil.java @@ -91,7 +91,13 @@ public static void ensureWebhookExists(@NotNull IWebhookContainer channel, @NotN * the message */ public static CompletableFuture mirrorMessageToWebhook(@NotNull Webhook webhook, @NotNull Message originalMessage, String newMessageContent, long threadId, @Nullable List components, @Nullable List embeds) { - return originalMessage.getGuild().retrieveMember(originalMessage.getAuthor()).submit().thenCompose(member -> mirrorMessageToWebhook(webhook, originalMessage, newMessageContent, threadId, components, embeds, member)); + return originalMessage + .getGuild() + .retrieveMember(originalMessage.getAuthor()) + .submit() + .exceptionally(e -> null)//if the member cannot be found, use no member information + .thenCompose(member -> + mirrorMessageToWebhook(webhook, originalMessage, newMessageContent, threadId, components, embeds, member)); } private static CompletableFuture mirrorMessageToWebhook(@NotNull Webhook webhook, Message originalMessage, String newMessageContent, long threadId,