From 39fc21d41ce8288f6fc14a4b419caf1daff4820a Mon Sep 17 00:00:00 2001 From: Kwoth Date: Fri, 22 Jul 2022 16:54:58 +0200 Subject: [PATCH] Added error logging to pagination as there seems to be an issue --- .../_Extensions/IMessageChannelExtensions.cs | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/src/NadekoBot/_Extensions/IMessageChannelExtensions.cs b/src/NadekoBot/_Extensions/IMessageChannelExtensions.cs index 4f78073d2..6496ae98a 100644 --- a/src/NadekoBot/_Extensions/IMessageChannelExtensions.cs +++ b/src/NadekoBot/_Extensions/IMessageChannelExtensions.cs @@ -228,40 +228,47 @@ public static class MessageChannelExtensions { _ = Task.Run(async () => { - if (si is not SocketMessageComponent smc) - return; - - if (smc.Message.Id != msg.Id) - return; - - if (smc.Data.CustomId != BUTTON_LEFT && smc.Data.CustomId != BUTTON_RIGHT) - return; - - await si.DeferAsync(); - if (smc.User.Id != ctx.User.Id) - return; - - if (smc.Data.CustomId == BUTTON_LEFT) + try { - if (currentPage == 0) + if (si is not SocketMessageComponent smc) return; - var toSend = await pageFunc(--currentPage); - if (addPaginatedFooter) - toSend.AddPaginatedFooter(currentPage, lastPage); + if (smc.Message.Id != msg.Id) + return; - await smc.ModifyOriginalResponseAsync(x => x.Embed = toSend.Build()); - } - else if (smc.Data.CustomId == BUTTON_RIGHT) - { - if (lastPage > currentPage) + if (smc.Data.CustomId != BUTTON_LEFT && smc.Data.CustomId != BUTTON_RIGHT) + return; + + await si.DeferAsync(); + if (smc.User.Id != ctx.User.Id) + return; + + if (smc.Data.CustomId == BUTTON_LEFT) { - var toSend = await pageFunc(++currentPage); + if (currentPage == 0) + return; + + var toSend = await pageFunc(--currentPage); if (addPaginatedFooter) toSend.AddPaginatedFooter(currentPage, lastPage); await smc.ModifyOriginalResponseAsync(x => x.Embed = toSend.Build()); } + else if (smc.Data.CustomId == BUTTON_RIGHT) + { + if (lastPage > currentPage) + { + var toSend = await pageFunc(++currentPage); + if (addPaginatedFooter) + toSend.AddPaginatedFooter(currentPage, lastPage); + + await smc.ModifyOriginalResponseAsync(x => x.Embed = toSend.Build()); + } + } + } + catch (Exception ex) + { + Log.Error(ex, "Error in pagination: {ErrorMessage}", ex.Message); } });