public async Task GlobalTop(CommandContext ctx, int?page = null) { if (page == null || page <= 0) { page = 1; } DiscordMessage TopMessage = await new DiscordMessageBuilder() .WithContent(CustomMethod.GetGlobalTop(ctx, (int)page)) .WithReply(ctx.Message.Id, true) .SendAsync(ctx.Channel); DiscordEmoji left = DiscordEmoji.FromName(ctx.Client, ":arrow_left:"); DiscordEmoji right = DiscordEmoji.FromName(ctx.Client, ":arrow_right:"); await TopMessage.CreateReactionAsync(left); await Task.Delay(300).ContinueWith(t => TopMessage.CreateReactionAsync(right)); bool end = false; do { var result = TopMessage.WaitForReactionAsync(ctx.User, TimeSpan.FromSeconds(30)); if (result.Result.TimedOut) { end = result.Result.TimedOut; } else if (result.Result.Result.Emoji == left) { await TopMessage.DeleteReactionAsync(result.Result.Result.Emoji, ctx.User); if (page > 1) { page--; await TopMessage.ModifyAsync(CustomMethod.GetGlobalTop(ctx, (int)page)); } } else if (result.Result.Result.Emoji == right) { await TopMessage.DeleteReactionAsync(result.Result.Result.Emoji, ctx.User); page++; try { await TopMessage.ModifyAsync(CustomMethod.GetGlobalTop(ctx, (int)page)); } catch (Exception) { page--; } } } while (!end); await TopMessage.DeleteAllReactionsAsync(); }