public async Task RandomQuote() { if (GetQuotesCount() == 0) { await NoQuotes(); return; } var embed = new EmbedBuilder(); embed.WithColor(Colors.Get("Iodem")); QuoteStruct q = quoteList[(new Random()).Next(0, quoteList.Count)]; q.name = Utilities.ToCaps(q.name); embed.WithAuthor(q.name); embed.WithThumbnailUrl(Sprites.GetImageFromName(q.name)); embed.WithDescription(q.quote); if (q.quote.Contains(@"#^@%!")) { var userAccount = UserAccounts.GetAccount(Context.User); userAccount.ServerStats.HasQuotedMatthew = true; UserAccounts.SaveAccounts(); await ServerGames.UserHasCursed((SocketGuildUser)Context.User, (SocketTextChannel)Context.Channel); } await Context.Channel.SendMessageAsync("", false, embed.Build()); //await embed.WithDescription(Utilities.GetAlert("quote")); }
public override async Task ReactAsync(SocketUserMessage msg) { await base.ReactAsync(msg); var userAccount = UserAccounts.GetAccount(msg.Author); userAccount.ServerStats.HasWrittenCurse = true; UserAccounts.SaveAccounts(); await ServerGames.UserHasCursed((SocketGuildUser)msg.Author, (SocketTextChannel)msg.Channel); }
public async Task RandomQuote([Remainder] string name) { name = name.ToLower(); if (GetQuotesCount() == 0) { await NoQuotes(); return; } var embed = new EmbedBuilder(); embed.WithColor(Colors.Get("Iodem")); //TODO: Optimize this. This is ugly. List <QuoteStruct> QuotesFromName = new List <QuoteStruct>(); foreach (QuoteStruct q in quoteList) { if (q.name.Equals(name)) { QuotesFromName.Add(q); } } if (QuotesFromName.Count == 0) { embed.WithDescription(Utilities.GetAlert("No_Quote_From_Name")); } else { var quote = QuotesFromName[(new Random()).Next(0, QuotesFromName.Count)]; embed.WithThumbnailUrl(Sprites.GetImageFromName(quote.name)); embed.WithAuthor(Utilities.ToCaps(quote.name)); embed.WithDescription(quote.quote); if (quote.quote.Contains(@"#^@%!")) { var userAccount = UserAccounts.GetAccount(Context.User); userAccount.ServerStats.HasQuotedMatthew = true; UserAccounts.SaveAccounts(); await ServerGames.UserHasCursed((SocketGuildUser)Context.User, (SocketTextChannel)Context.Channel); } } await Context.Channel.SendMessageAsync("", false, embed.Build()); }