public async Task ListRequestQuotes() { if (QuoteHandler.RequestQuoteList.Any()) { StringBuilder sb = new StringBuilder() .Append("**Request Quote List** : *Page 1*\nTo accept a quote, type **" + Guild.Load(Context.Guild.Id).Prefix + "acceptquote [id]**.\nTo reject a quote, type **" + Guild.Load(Context.Guild.Id).Prefix + "denyquote [id]**.\n```"); QuoteHandler.SpliceRequestQuotes(); List <string> requestQuotes = QuoteHandler.GetRequestQuotes(1); for (int i = 0; i < requestQuotes.Count; i++) { sb.Append((i + 1) + ": " + requestQuotes[i] + "\n"); } sb.Append("```"); IUserMessage msg = await ReplyAsync(sb.ToString()); QuoteHandler.RequestQuoteMessages.Add(msg.Id); QuoteHandler.RequestPageNumber.Add(1); if (QuoteHandler.RequestQuoteList.Count > 10) { await msg.AddReactionAsync(Extensions.Extensions.ArrowRight); } } else { await ReplyAsync("There are currently 0 pending request quotes."); } }
private static async Task HandleRequestQuoteReactions(Cacheable <IUserMessage, ulong> message, ISocketMessageChannel channel, SocketReaction reaction) { // Check to see if the next page or previous page was clicked. if (reaction.Emote.Name == Extensions.Extensions.ArrowLeft.Name) { if (QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)] == 1) { return; } QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)]--; } else if (reaction.Emote.Name == Extensions.Extensions.ArrowRight.Name) { if (QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)] == QuoteHandler.GetRequestQuotesListLength) { return; } QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)]++; } StringBuilder sb = new StringBuilder() .Append("**Request Quote List** : *Page " + QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)] + "*\nTo accept a quote, type **" + Guild.Load(channel.GetGuild().Id).Prefix + "acceptquote[id]**.\nTo reject a quote, type **" + Guild.Load(channel.GetGuild().Id).Prefix + "denyquote[id]**.\n```"); List <string> requestQuotes = QuoteHandler.GetRequestQuotes(QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)]); for (int i = 0; i < requestQuotes.Count; i++) { sb.Append(((i + 1) + ((QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)] - 1) * 10)) + ": " + requestQuotes[i] + "\n"); } sb.Append("```"); await message.Value.ModifyAsync(msg => msg.Content = sb.ToString()); await message.Value.RemoveAllReactionsAsync(); if (QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)] == 1) { await message.Value.AddReactionAsync(Extensions.Extensions.ArrowRight); } else if (QuoteHandler.RequestPageNumber[QuoteHandler.RequestQuoteMessages.IndexOf(message.Id)] == QuoteHandler.GetRequestQuotesListLength) { await message.Value.AddReactionAsync(Extensions.Extensions.ArrowLeft); } else { await message.Value.AddReactionAsync(Extensions.Extensions.ArrowLeft); await message.Value.AddReactionAsync(Extensions.Extensions.ArrowRight); } }