diff --git a/Numerous/Discord/Commands/UnDeleteCommandModule.cs b/Numerous/Discord/Commands/UnDeleteCommandModule.cs index d215db4..c644ff1 100644 --- a/Numerous/Discord/Commands/UnDeleteCommandModule.cs +++ b/Numerous/Discord/Commands/UnDeleteCommandModule.cs @@ -32,6 +32,8 @@ public async Task UnDelete() .SortByDescending(m => m.DeletedAt) .ToListAsync(); + await RemoveForbiddenMessages(messages); + _messageCache[Context.Channel.Id] = messages; var message = messages.FirstOrDefault(); @@ -79,6 +81,9 @@ private async Task AddComponentsToMessage(IUserMessage target, DiscordMessage ms .Build(); var messages = _messageCache[Context.Channel.Id]; + + await RemoveForbiddenMessages(messages, messages.IndexOf(msg)); + var prevDisabled = messages.IndexOf(msg) == messages.Count - 1; var nextDisabled = messages.IndexOf(msg) == 0; var prevMsg = prevDisabled ? null : messages[messages.IndexOf(msg) + 1]; @@ -139,4 +144,15 @@ public async Task Next(string responseMsgId, string nextMsgId) await RespondAsync(); } + + private async Task RemoveForbiddenMessages(IList messages, int index = 0) + { + for (var i = index; i <= index + 1; i++) + { + while (messages.Count > i && await Context.Guild.GetBanAsync(messages[i].AuthorId) is not null) + { + messages.RemoveAt(i); + } + } + } }