public async Task CreatePasta(EventContext e) { if (e.Arguments.Count < 2) { e.ErrorEmbed(e.Locale.GetString("createpasta_error_no_content")) .ToEmbed().QueueToChannel(e.Channel); return; } ArgObject arg = e.Arguments.FirstOrDefault(); string id = arg.Argument; arg = arg.Next(); string text = arg.TakeUntilEnd().Argument; if (Regex.IsMatch(text, "(http[s]://)?((discord.gg)|(discordapp.com/invite))/([A-Za-z0-9]+)", RegexOptions.IgnoreCase)) { throw new Exception("You can't add discord invites!"); } using (var context = new MikiContext()) { await GlobalPasta.AddAsync(context, id, text, (long)e.Author.Id); await context.SaveChangesAsync(); } e.SuccessEmbed(e.Locale.GetString("miki_module_pasta_create_success", id)) .QueueToChannel(e.Channel); }
public async Task GetPasta(EventContext e) { Locale locale = Locale.GetEntity(e.Guild.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await e.Channel.SendMessage(Utils.ErrorEmbed(locale, "Please enter one of the tags, or commands.")); return; } List <string> arguments = e.arguments.Split(' ').ToList(); using (var context = MikiContext.CreateNoCache()) { context.Set <GlobalPasta>().AsNoTracking(); GlobalPasta pasta = await context.Pastas.FindAsync(arguments[0]); if (pasta == null) { await e.Channel.SendMessage(Utils.ErrorEmbed(locale, $"No pasta found with the name `{e.arguments}`")); return; } pasta.TimesUsed++; await e.Channel.SendMessage(pasta.Text); await context.SaveChangesAsync(); } }
public async Task EditPasta(EventContext e) { if (e.Arguments.Pack.Length < 2) { await e.ErrorEmbed(e.Locale.GetString("miki_module_pasta_error_specify", e.Locale.GetString("miki_module_pasta_error_specify_edit"))) .ToEmbed().QueueToChannelAsync(e.Channel); return; } using (var context = new MikiContext()) { e.Arguments.Take(out string tag); GlobalPasta p = await context.Pastas.FindAsync(tag); if (p.CreatorId == e.Author.Id.ToDbLong()) { p.Text = e.Arguments.Pack.TakeAll(); await context.SaveChangesAsync(); await e.SuccessEmbed($"Edited `{tag}`!") .QueueToChannelAsync(e.Channel); } else { await e.ErrorEmbed($"You cannot edit pastas you did not create. Baka!") .ToEmbed().QueueToChannelAsync(e.Channel); } } }
public async Task CreatePasta(EventContext e) { if (e.Arguments.Pack.Length < 2) { await e.ErrorEmbed(e.Locale.GetString("createpasta_error_no_content")) .ToEmbed().QueueToChannelAsync(e.Channel); return; } e.Arguments.Take(out string id); string text = e.Arguments.Pack.TakeAll(); if (Regex.IsMatch(text, "(http[s]://)?((discord.gg)|(discordapp.com/invite))/([A-Za-z0-9]+)", RegexOptions.IgnoreCase)) { throw new PastaInviteException(); } using (var context = new MikiContext()) { await GlobalPasta.AddAsync(context, id, text, (long)e.Author.Id); await context.SaveChangesAsync(); } await e.SuccessEmbed(e.Locale.GetString("miki_module_pasta_create_success", id)) .QueueToChannelAsync(e.Channel); }
public async Task GetPasta(EventContext e) { if (string.IsNullOrWhiteSpace(e.Arguments.ToString())) { await e.ErrorEmbed(e.Locale.GetString("pasta_error_no_arg")).ToEmbed().QueueToChannelAsync(e.Channel); return; } using (var context = new MikiContext()) { GlobalPasta pasta = await context.Pastas.FindAsync(e.Arguments.ToString()); if (pasta == null) { await e.ErrorEmbed(e.Locale.GetString("miki_module_pasta_search_error_no_results", e.Arguments.ToString())) .ToEmbed().QueueToChannelAsync(e.Channel); return; } pasta.TimesUsed++; var sanitizedText = Utils.EscapeEveryone(pasta.Text); e.Channel.QueueMessage(sanitizedText); await context.SaveChangesAsync(); } }
public async Task CreatePasta(EventContext e) { if (e.Arguments.Count < 2) { e.ErrorEmbed(e.GetResource("createpasta_error_no_content")) .ToEmbed().QueueToChannel(e.Channel); return; } ArgObject arg = e.Arguments.FirstOrDefault(); string id = arg.Argument; arg = arg.Next(); string text = arg.TakeUntilEnd().Argument; using (var context = new MikiContext()) { await GlobalPasta.AddAsync(context, id, text, (long)e.Author.Id); await context.SaveChangesAsync(); } Utils.SuccessEmbed(e.Channel.Id, e.GetResource("miki_module_pasta_create_success", id)) .QueueToChannel(e.Channel); }
public async Task GetPasta(CommandContext e) { string pastaArg = e.Arguments.Pack.TakeAll(); if (string.IsNullOrWhiteSpace(pastaArg)) { await e.ErrorEmbed(e.Locale.GetString("pasta_error_no_arg")).ToEmbed().QueueToChannelAsync(e.Channel); return; } var context = e.GetService <MikiDbContext>(); GlobalPasta pasta = await context.Pastas.FindAsync(pastaArg); if (pasta == null) { await e.ErrorEmbed(e.Locale.GetString("miki_module_pasta_search_error_no_results", pastaArg)) .ToEmbed().QueueToChannelAsync(e.Channel); return; } pasta.TimesUsed++; var sanitizedText = Utils.EscapeEveryone(pasta.Text); e.Channel.QueueMessage(sanitizedText); await context.SaveChangesAsync(); }
public async Task EditPasta(EventContext e) { if (e.Arguments.Count < 2) { e.ErrorEmbed(e.GetResource("miki_module_pasta_error_specify", e.GetResource("miki_module_pasta_error_specify_edit"))) .Build().QueueToChannel(e.Channel); return; } using (var context = new MikiContext()) { ArgObject arg = e.Arguments.FirstOrDefault(); string tag = arg.Argument; arg = arg.Next(); GlobalPasta p = await context.Pastas.FindAsync(tag); if (p.CreatorId == e.Author.Id.ToDbLong()) { p.Text = arg.TakeUntilEnd().Argument; await context.SaveChangesAsync(); e.Channel.QueueMessageAsync($"Edited `{tag}`!"); } else { e.Channel.QueueMessageAsync($@"You cannot edit pastas you did not create. Baka!"); } } }
public async Task GetPasta(EventContext e) { Locale locale = Locale.GetEntity(e.Channel.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await Utils.ErrorEmbed(locale, e.GetResource("pasta_error_no_arg")).QueueToChannel(e.Channel); return; } List <string> arguments = e.arguments.Split(' ').ToList(); using (var context = new MikiContext()) { GlobalPasta pasta = await context.Pastas.FindAsync(arguments[0]); if (pasta == null) { await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_search_error_no_results", e.arguments)).QueueToChannel(e.Channel); return; } pasta.TimesUsed++; await e.Channel.QueueMessageAsync(pasta.Text); await context.SaveChangesAsync(); } }
public async Task IdentifyPasta(EventContext e) { Locale locale = Locale.GetEntity(e.Channel.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await Utils.ErrorEmbed(locale, e.GetResource("infopasta_error_no_arg")) .SendToChannel(e.Channel.Id); return; } using (var context = MikiContext.CreateNoCache()) { context.Set <GlobalPasta>().AsNoTracking(); try { GlobalPasta pasta = await context.Pastas.FindAsync(e.arguments); if (pasta == null) { await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_error_null")).SendToChannel(e.Channel); return; } User creator = await context.Users.FindAsync(pasta.creator_id); IDiscordEmbed b = Utils.Embed; b.SetAuthor(pasta.Id.ToUpper(), "", ""); b.Color = new IA.SDK.Color(47, 208, 192); if (creator != null) { b.AddInlineField(e.GetResource("miki_module_pasta_identify_created_by"), $"{ creator.Name} [{creator.Id}]"); } b.AddInlineField(e.GetResource("miki_module_pasta_identify_date_created"), pasta.date_created.ToShortDateString()); b.AddInlineField(e.GetResource("miki_module_pasta_identify_times_used"), pasta.TimesUsed.ToString()); VoteCount v = pasta.GetVotes(context); b.AddInlineField(e.GetResource("infopasta_rating"), $"⬆️ { v.Upvotes} ⬇️ {v.Downvotes}"); await b.SendToChannel(e.Channel); } catch (Exception ex) { Log.ErrorAt("IdentifyPasta", ex.Message); } } }
public async Task CreatePasta(EventContext e) { List <string> arguments = e.arguments.Split(' ').ToList(); Locale locale = Locale.GetEntity(e.Guild.Id.ToDbLong()); if (arguments.Count < 2) { await Utils.ErrorEmbed(locale, "I couldn't find any content for this pasta, please specify what you want to make.").SendToChannel(e.Channel.Id); return; } string id = arguments[0]; arguments.RemoveAt(0); using (var context = MikiContext.CreateNoCache()) { context.Set <GlobalPasta>().AsNoTracking(); try { GlobalPasta pasta = await context.Pastas.FindAsync(id); if (pasta != null) { await e.Channel.SendMessage(Utils.ErrorEmbed(locale, "This pasta already exists! Try a different tag!")); return; } context.Pastas.Add(new GlobalPasta() { Id = id, Text = string.Join(" ", arguments), CreatorId = e.Author.Id, date_created = DateTime.Now }); await context.SaveChangesAsync(); await e.Channel.SendMessage(Utils.SuccessEmbed(locale, $"Created pasta `{id}`!")); } catch (Exception ex) { Log.ErrorAt("IdentifyPasta", ex.Message); } } }
public async Task IdentifyPasta(EventContext e) { string pastaArg = e.Arguments.Pack.TakeAll(); if (string.IsNullOrWhiteSpace(pastaArg)) { await e.ErrorEmbed(e.Locale.GetString("infopasta_error_no_arg")) .ToEmbed().QueueToChannelAsync(e.Channel); return; } using (var context = new MikiContext()) { GlobalPasta pasta = await context.Pastas.FindAsync(pastaArg); if (pasta == null) { await e.ErrorEmbed(e.Locale.GetString("miki_module_pasta_error_null")).ToEmbed().QueueToChannelAsync(e.Channel); return; } User creator = await context.Users.FindAsync(pasta.CreatorId); EmbedBuilder b = new EmbedBuilder(); b.SetAuthor(pasta.Id.ToUpper(), "", ""); b.Color = new Color(47, 208, 192); if (creator != null) { b.AddInlineField(e.Locale.GetString("miki_module_pasta_identify_created_by"), $"{ creator.Name} [{creator.Id}]"); } b.AddInlineField(e.Locale.GetString("miki_module_pasta_identify_date_created"), pasta.CreatedAt.ToShortDateString()); b.AddInlineField(e.Locale.GetString("miki_module_pasta_identify_times_used"), pasta.TimesUsed.ToString()); VoteCount v = await pasta.GetVotesAsync(context); b.AddInlineField(e.Locale.GetString("infopasta_rating"), $"⬆️ { v.Upvotes} ⬇️ {v.Downvotes}"); await b.ToEmbed().QueueToChannelAsync(e.Channel); } }
public async Task IdentifyPasta(EventContext e) { Locale locale = Locale.GetEntity(e.Channel.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await Utils.ErrorEmbed(locale, e.GetResource("infopasta_error_no_arg")) .QueueToChannel(e.Channel.Id); return; } using (var context = new MikiContext()) { GlobalPasta pasta = await context.Pastas.FindAsync(e.arguments); if (pasta == null) { await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_error_null")).QueueToChannel(e.Channel); return; } User creator = await context.Users.FindAsync(pasta.CreatorId); IDiscordEmbed b = Utils.Embed; b.SetAuthor(pasta.Id.ToUpper(), "", ""); b.Color = new Color(47, 208, 192); if (creator != null) { b.AddInlineField(e.GetResource("miki_module_pasta_identify_created_by"), $"{ creator.Name} [{creator.Id}]"); } b.AddInlineField(e.GetResource("miki_module_pasta_identify_date_created"), pasta.CreatedAt.ToShortDateString()); b.AddInlineField(e.GetResource("miki_module_pasta_identify_times_used"), pasta.TimesUsed.ToString()); VoteCount v = await pasta.GetVotesAsync(context); b.AddInlineField(e.GetResource("infopasta_rating"), $"⬆️ { v.Upvotes} ⬇️ {v.Downvotes}"); await b.QueueToChannel(e.Channel); } }
public async Task CreatePasta(EventContext e) { List <string> arguments = e.arguments.Split(' ').ToList(); Locale locale = Locale.GetEntity(e.Channel.Id.ToDbLong()); if (arguments.Count < 2) { await Utils.ErrorEmbed(locale, e.GetResource("createpasta_error_no_content")).SendToChannel(e.Channel.Id); return; } string id = arguments[0]; arguments.RemoveAt(0); using (var context = new MikiContext()) { try { GlobalPasta pasta = await context.Pastas.FindAsync(id); if (pasta != null) { await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_create_error_already_exist")).SendToChannel(e.Channel); return; } context.Pastas.Add(new GlobalPasta() { Id = id, Text = e.message.RemoveMentions(string.Join(" ", arguments)), creator_id = e.Author.Id.ToDbLong(), date_created = DateTime.Now }); await context.SaveChangesAsync(); await Utils.SuccessEmbed(locale, e.GetResource("miki_module_pasta_create_success", id)).SendToChannel(e.Channel); } catch (Exception ex) { Log.ErrorAt("IdentifyPasta", ex.Message); } } }
public async Task DeletePasta(EventContext e) { Locale locale = Locale.GetEntity(e.Guild.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await Utils.ErrorEmbed(locale, "Please specify which pasta you'd like to remove.") .SendToChannel(e.Channel.Id); return; } using (var context = MikiContext.CreateNoCache()) { context.Set <GlobalPasta>().AsNoTracking(); GlobalPasta pasta = await context.Pastas.FindAsync(e.arguments); if (pasta == null) { await e.Channel.SendMessage(Utils.ErrorEmbed(locale, "This pasta doesn't exist! check the tag!")); return; } if (pasta.CanDeletePasta(e.Author.Id)) { context.Pastas.Remove(pasta); List <PastaVote> votes = context.Votes.AsNoTracking().Where(p => p.Id.Equals(e.arguments)).ToList(); context.Votes.RemoveRange(votes); await context.SaveChangesAsync(); await e.Channel.SendMessage(Utils.SuccessEmbed(locale, $"Deleted pasta `{e.arguments}`!")); return; } await e.Channel.SendMessage(Utils.ErrorEmbed(locale, "This pasta is not yours!")); return; } }
public async Task DeletePasta(EventContext e) { Locale locale = Locale.GetEntity(e.Channel.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_error_specify", e.GetResource("miki_module_pasta_error_specify"))) .SendToChannel(e.Channel.Id); return; } using (var context = MikiContext.CreateNoCache()) { context.Set <GlobalPasta>().AsNoTracking(); GlobalPasta pasta = await context.Pastas.FindAsync(e.arguments); if (pasta == null) { await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_error_null")).SendToChannel(e.Channel); return; } if (pasta.CanDeletePasta(e.Author.Id)) { context.Pastas.Remove(pasta); List <PastaVote> votes = context.Votes.AsNoTracking().Where(p => p.Id.Equals(e.arguments)).ToList(); context.Votes.RemoveRange(votes); await context.SaveChangesAsync(); await Utils.SuccessEmbed(locale, e.GetResource("miki_module_pasta_delete_success", e.arguments)).SendToChannel(e.Channel); return; } await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_error_no_permissions", e.GetResource("miki_module_pasta_error_specify_delete"))).SendToChannel(e.Channel); return; } }
public async Task DeletePasta(EventContext e) { string pastaArg = e.Arguments.Pack.TakeAll(); if (string.IsNullOrWhiteSpace(pastaArg)) { await e.ErrorEmbed(e.Locale.GetString("miki_module_pasta_error_specify", e.Locale.GetString("miki_module_pasta_error_specify"))) .ToEmbed().QueueToChannelAsync(e.Channel); return; } using (var context = new MikiContext()) { GlobalPasta pasta = await context.Pastas.FindAsync(pastaArg); if (pasta == null) { await e.ErrorEmbed(e.Locale.GetString("miki_module_pasta_error_null")).ToEmbed().QueueToChannelAsync(e.Channel); return; } if (pasta.CreatorId == e.Author.Id.ToDbLong()) { context.Pastas.Remove(pasta); List <PastaVote> votes = context.Votes.Where(p => p.Id == pastaArg).ToList(); context.Votes.RemoveRange(votes); await context.SaveChangesAsync(); await e.SuccessEmbed(e.Locale.GetString("miki_module_pasta_delete_success", pastaArg)).QueueToChannelAsync(e.Channel); return; } await e.ErrorEmbed(e.Locale.GetString("miki_module_pasta_error_no_permissions", e.Locale.GetString("miki_module_pasta_error_specify_delete"))) .ToEmbed().QueueToChannelAsync(e.Channel); return; } }
public async Task EditPasta(EventContext e) { Locale locale = Locale.GetEntity(e.Guild.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await Utils.ErrorEmbed(locale, "Please specify which pasta you'd like to edit.") .SendToChannel(e.Channel.Id); return; } if (e.arguments.Split(' ').Length == 1) { await Utils.ErrorEmbed(locale, "Please specify the content you'd like it to be edited to.") .SendToChannel(e.Channel.Id); return; } using (var context = MikiContext.CreateNoCache()) { context.Set <GlobalPasta>().AsNoTracking(); string tag = e.arguments.Split(' ')[0]; e.arguments = e.arguments.Substring(tag.Length + 1); GlobalPasta p = await context.Pastas.FindAsync(tag); if (p.CreatorId == e.Author.Id || Bot.instance.Events.Developers.Contains(e.Author.Id)) { p.Text = e.arguments; await context.SaveChangesAsync(); await e.Channel.SendMessage($"Edited `{tag}`!"); } else { await e.Channel.SendMessage($@"You cannot edit pastas you did not create. Baka!"); } } }
public async Task EditPasta(EventContext e) { Locale locale = Locale.GetEntity(e.Channel.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_error_specify", e.GetResource("miki_module_pasta_error_specify_edit"))) .QueueToChannel(e.Channel.Id); return; } if (e.arguments.Split(' ').Length == 1) { await Utils.ErrorEmbed(locale, e.GetResource("miki_module_pasta_error_specify", e.GetResource("miki_module_pasta_error_specify_edit"))) .QueueToChannel(e.Channel.Id); return; } using (var context = new MikiContext()) { string tag = e.arguments.Split(' ')[0]; e.arguments = e.arguments.Substring(tag.Length + 1); GlobalPasta p = await context.Pastas.FindAsync(tag); if (p.CreatorId == e.Author.Id.ToDbLong() || Bot.instance.Events.Developers.Contains(e.Author.Id)) { p.Text = e.arguments; await context.SaveChangesAsync(); await e.Channel.QueueMessageAsync($"Edited `{tag}`!"); } else { await e.Channel.QueueMessageAsync($@"You cannot edit pastas you did not create. Baka!"); } } }
public async Task GetPastaAsync(IContext e) { var locale = e.GetLocale(); var pastaArg = e.GetArgumentPack().Pack.TakeAll(); if (string.IsNullOrWhiteSpace(pastaArg)) { await e.ErrorEmbed(locale.GetString("pasta_error_no_arg")) .ToEmbed() .QueueAsync(e, e.GetChannel()); return; } var pastaService = e.GetService <PastaService>(); GlobalPasta pasta = await pastaService.GetPastaAsync(pastaArg); await pastaService.UseAsync(pasta); var embedBuilder = new EmbedBuilder() .SetTitle($"🍝 Pasta - {pasta.Id}") .SetColor(255, 204, 77) .SetFooter($"Requested by {e.GetAuthor().Username}#{e.GetAuthor().Discriminator}"); var escapedText = Utils.EscapeEveryone(pasta.Text); var deImagedText = Regex.Replace(escapedText, Utils.ImageRegex, x => { embedBuilder.SetImage(x.Groups[0].Value); return(""); }); if (!string.IsNullOrWhiteSpace(deImagedText)) { embedBuilder.SetDescription(deImagedText); } await embedBuilder.ToEmbed() .QueueAsync(e, e.GetChannel()); }
public static async Task AddAsync(MikiContext context, string id, string text, long creator) { if (Regex.IsMatch(text, "(http[s]://)?((discord.gg)|(discordapp.com/invite))/([A-Za-z0-9]+)", RegexOptions.IgnoreCase)) { throw new Exception("You can't add discord invites!"); } GlobalPasta pasta = await context.Pastas.FindAsync(id); if (pasta != null) { throw new DuplicatePastaException(pasta); } await context.Pastas.AddAsync(new GlobalPasta() { Id = id, Text = text, CreatorId = creator, CreatedAt = DateTime.Now }); }
public async Task GetPasta(EventContext e) { if (string.IsNullOrWhiteSpace(e.Arguments.ToString())) { e.ErrorEmbed(e.GetResource("pasta_error_no_arg")).Build().QueueToChannel(e.Channel); return; } using (var context = new MikiContext()) { GlobalPasta pasta = await context.Pastas.FindAsync(e.Arguments.ToString()); if (pasta == null) { e.ErrorEmbed(e.GetResource("miki_module_pasta_search_error_no_results", e.Arguments.ToString())) .Build().QueueToChannel(e.Channel); return; } pasta.TimesUsed++; e.Channel.QueueMessageAsync(pasta.Text); await context.SaveChangesAsync(); } }
public async ValueTask <GlobalPasta> CreatePastaAsync(string tag, string body, long createdBy) { GlobalPasta pasta = await repository.GetAsync(tag); if (pasta != null) { throw new DuplicatePastaException(pasta); } pasta = new GlobalPasta() { Id = tag, Text = body, CreatorId = createdBy, CreatedAt = DateTime.UtcNow }; await repository.AddAsync(pasta); await unit.CommitAsync(); return(pasta); }
public async Task DeletePasta(EventContext e) { Locale locale = new Locale(e.Channel.Id); if (string.IsNullOrWhiteSpace(e.arguments)) { e.ErrorEmbed(e.GetResource("miki_module_pasta_error_specify", e.GetResource("miki_module_pasta_error_specify"))) .QueueToChannel(e.Channel.Id); return; } using (var context = new MikiContext()) { GlobalPasta pasta = await context.Pastas.FindAsync(e.arguments); if (pasta == null) { e.ErrorEmbed(e.GetResource("miki_module_pasta_error_null")).QueueToChannel(e.Channel); return; } if (pasta.CanDeletePasta(e.Author.Id)) { context.Pastas.Remove(pasta); List <PastaVote> votes = context.Votes.Where(p => p.Id == e.arguments).ToList(); context.Votes.RemoveRange(votes); await context.SaveChangesAsync(); Utils.SuccessEmbed(locale, e.GetResource("miki_module_pasta_delete_success", e.arguments)).QueueToChannel(e.Channel); return; } e.ErrorEmbed(e.GetResource("miki_module_pasta_error_no_permissions", e.GetResource("miki_module_pasta_error_specify_delete"))).QueueToChannel(e.Channel); return; } }
protected PastaException(GlobalPasta pasta) : base() { this.Pasta = pasta; }
public async Task IdentifyPasta(EventContext e) { Locale locale = Locale.GetEntity(e.Guild.Id.ToDbLong()); if (string.IsNullOrWhiteSpace(e.arguments)) { await Utils.ErrorEmbed(locale, "Please state which pasta you'd like to identify.") .SendToChannel(e.Channel.Id); return; } using (var context = MikiContext.CreateNoCache()) { context.Set <GlobalPasta>().AsNoTracking(); try { GlobalPasta pasta = await context.Pastas.FindAsync(e.arguments); if (pasta == null) { await e.Channel.SendMessage(Utils.ErrorEmbed(locale, "This pasta doesn't exist!")); return; } User creator = await context.Users.FindAsync(pasta.creator_id); EmbedBuilder b = new EmbedBuilder(); b.Author = new EmbedAuthorBuilder(); b.Author.Name = pasta.Id.ToUpper(); b.Color = new Discord.Color(47, 208, 192); if (creator != null) { b.AddField(x => { x.Name = "Created by"; x.Value = $"{creator.Name} [{creator.Id}]"; x.IsInline = true; }); } b.AddField(x => { x.Name = "Date Created"; x.Value = pasta.date_created.ToShortDateString(); x.IsInline = true; }); b.AddInlineField("Times Used", pasta.TimesUsed); b.AddField(x => { x.Name = "Rating"; VoteCount v = pasta.GetVotes(context); x.Value = $"⬆️ {v.Upvotes} ⬇️ {v.Downvotes}"; x.IsInline = true; }); await e.Channel.SendMessage(new RuntimeEmbed(b)); } catch (Exception ex) { Log.ErrorAt("IdentifyPasta", ex.Message); } } }
public async ValueTask UseAsync(GlobalPasta pasta) { pasta.TimesUsed++; await repository.EditAsync(pasta); }
public DuplicatePastaException(GlobalPasta pasta) : base(pasta) { }
public PastaException(GlobalPasta pasta) : base() { _pasta = pasta; }