private async Task RunAsync([NotNull] MessageUpdatePayload messageUpdate)
        {
            // Instantiate CoreMessage for usage everywhere
            var previousMessage = await Client.Cache.Messages.GetAsync(messageUpdate.Id, messageUpdate.ChannelId);

            var message = previousMessage == null
                                ? Message.From(Client, messageUpdate)
                                : previousMessage.Clone().Patch(messageUpdate);

            await message.CacheAsync();

            // Handle the message
            await Client.EventHandler.OnMessageUpdateAsync(previousMessage, message);
        }
        public async Task RunAsync([NotNull] Message message, [Argument(Minimum = 1)] int page = 1)
        {
            var richDisplay = new RichDisplay(message.AuthorId, message.Id);

            foreach (var(key, value) in Client.Commands)
            {
                richDisplay.AddPage(embed => embed.SetTitle(key).SetDescription(value.Name));
            }

            await richDisplay.SetUpAsync(message, new RichDisplayRunOptions
            {
                StartPage      = page - 1,
                MessageContent = new SendableMessage
                {
                    Content = "Loading..."
                }
            });
        }