public static async Task Soltar(PrisaoModel p) { var guild = await Bot.Instance().client.GetGuildAsync(p.GuildId); var member = await guild.GetMemberAsync(new Infracao().Find(x => x.Id == p.InfraId).IdInfrator); await member.RevokeRoleAsync(member.Roles.ToList()[0]); foreach (var role in p.Cargos) { await member.GrantRoleAsync(guild.GetRole(role)); } Console.WriteLine($"[Prisao] {member.Username}#{member.Discriminator} Solto."); }
public async Task Add(CommandContext ctx, [Description("Membro que será punido (Menção / ID)")] DiscordMember membro) { InfracaoModel infra = new InfracaoModel { IdInfrator = membro.Id, IdStaff = ctx.Member.Id, }; var info = await ctx.RespondAsync(embed : EmbedExtended.AsyncInfracaoEmbed(infra)); var botMsg = await ctx.RespondAsync(embed : EmbedBase.InputEmbed("Motivo")); var result = await ctx.Message.GetNextMessageAsync(); infra.MotivoInfracao = result.Result.Content; await info.ModifyAsync(embed : EmbedExtended.AsyncInfracaoEmbed(infra)); await botMsg.ModifyAsync(embed : EmbedBase.InputEmbed("Será Preso? [s/n]")); result = await result.Result.GetNextMessageAsync(); infra.Preso = result.Result.Content.ToLowerInvariant()[0] == 'y' || result.Result.Content.ToLowerInvariant()[0] == 's'; await info.ModifyAsync(embed : EmbedExtended.AsyncInfracaoEmbed(infra)); PrisaoModel prisao = new PrisaoModel(); if (infra.Preso) { await botMsg.ModifyAsync(embed : EmbedBase.InputEmbed("Tempo [xM, xH]")); result = await result.Result.GetNextMessageAsync(); prisao = new PrisaoModel { Data = DateTime.Now.ToUniversalTime(), Cargos = membro.Roles.Select(x => x.Id).ToList(), }; if (result.Result.Content.ToLowerInvariant().Contains("h")) { Regex getUlong = new Regex(@"([0-9])+"); int i = 0; if (getUlong.IsMatch(result.Result.Content)) { i = int.Parse(getUlong.Match(result.Result.Content).ToString()); } TimeSpan s = TimeSpan.FromHours(i); prisao.Duracao = s; prisao.GuildId = ctx.Guild.Id; await Prender(membro, ctx.Guild); prisao.Elapsed = false; } else if (result.Result.Content.ToLowerInvariant().Contains("m")) { Regex getUlong = new Regex(@"([0-9])+"); int i = 0; if (getUlong.IsMatch(result.Result.Content)) { i = int.Parse(getUlong.Match(result.Result.Content).ToString()); } TimeSpan s = TimeSpan.FromMinutes(i); prisao.Duracao = s; prisao.GuildId = ctx.Guild.Id; await Prender(membro, ctx.Guild); prisao.Elapsed = false; } } await info.ModifyAsync(embed : EmbedExtended.AsyncInfracaoEmbed(infra)); await botMsg.DeleteAsync(); new Infracao().Insert(infra); prisao.InfraId = new Infracao().FindAll(x => x.IdInfrator == membro.Id).Last().Id; new Prisao().Insert(prisao); await ctx.RespondAsync(embed : EmbedBase.OutputEmbed("Infração Adicionada com Sucesso.")); }