public async Task BlacklistAsync(CommandContext ctx, [Description("Guild of which blacklisted status to change.")] DiscordGuild guild, [Description("Whether the user should be blacklisted.")] bool blacklisted, [RemainingText, Description("Reason why this user is blacklisted.")] string reason = null) { var gid = (long)guild.Id; var block = this.Database.EntityBlacklist.SingleOrDefault(x => x.Id == gid && x.Kind == DatabaseEntityKind.Guild); if (blacklisted && block == null) { block = new DatabaseBlacklistedEntity { Id = gid, Kind = DatabaseEntityKind.Guild, Reason = reason, Since = DateTime.UtcNow }; this.Database.EntityBlacklist.Add(block); } else if (!blacklisted && block != null) { this.Database.EntityBlacklist.Remove(block); } await this.Database.SaveChangesAsync(); await ctx.RespondAsync($"{DiscordEmoji.FromName(ctx.Client, ":msokhand:")} Guild {Formatter.Bold(Formatter.Sanitize(guild.Name))} is {(blacklisted ? "now blacklisted" : "no longer blacklisted")}."); }
public async Task BlacklistAsync(CommandContext ctx, [Description("User whose blacklisted status to change.")] DiscordUser user, [Description("Whether the user should be blacklisted.")] bool blacklisted, [RemainingText, Description("Reason why this user is blacklisted.")] string reason = null) { var uid = (long)user.Id; var block = this.Database.EntityBlacklist.SingleOrDefault(x => x.Id == uid && x.Kind == DatabaseEntityKind.User); if (blacklisted && block == null) { block = new DatabaseBlacklistedEntity { Id = uid, Kind = DatabaseEntityKind.User, Reason = reason, Since = DateTime.UtcNow }; this.Database.EntityBlacklist.Add(block); } else if (!blacklisted && block != null) { this.Database.EntityBlacklist.Remove(block); } await this.Database.SaveChangesAsync(); await ctx.RespondAsync($"{DiscordEmoji.FromName(ctx.Client, ":msokhand:")} User {user.Mention} is {(blacklisted ? "now blacklisted" : "no longer blacklisted")}."); }