public async Task <bool> HandleNewMessageAsync(MessageCreateEventArgs e, LinkfilterSettings settings) { if (e.Channel.PermissionsFor(e.Author as DiscordMember).HasPermission(Permissions.Administrator)) { return(false); } if (settings.BlockDiscordInvites && await this.ScanForDiscordInvitesAsync(e)) { return(true); } if (settings.BlockBooterWebsites && await this.ScanForBootersAsync(e)) { return(true); } if (settings.BlockIpLoggingWebsites && await this.ScanForIpLoggersAsync(e)) { return(true); } if (settings.BlockDisturbingWebsites && await this.ScanForDisturbingSitesAsync(e)) { return(true); } if (settings.BlockUrlShorteners && await this.ScanForUrlShortenersAsync(e)) { return(true); } return(false); }
private static bool HaveSamePropertyValues(CachedGuildConfig?first, CachedGuildConfig?second) { if (first is null || second is null) { return(false); } if (first.Currency != second.Currency) { return(false); } if (first.LoggingEnabled != second.LoggingEnabled || first.LogChannelId != second.LogChannelId) { return(false); } if (first.Prefix != second.Prefix) { return(false); } if (first.Locale != second.Locale || first.TimezoneId != second.TimezoneId) { return(false); } if (first.ReactionResponse != second.ReactionResponse || first.SuggestionsEnabled != second.SuggestionsEnabled) { return(false); } AntispamSettings as1 = first.AntispamSettings; AntispamSettings as2 = second.AntispamSettings; if (as1.Action != as2.Action || as1.Enabled != as2.Enabled || as1.Sensitivity != as2.Sensitivity) { return(false); } LinkfilterSettings ls1 = first.LinkfilterSettings; LinkfilterSettings ls2 = second.LinkfilterSettings; if (ls1.BlockBooterWebsites != ls2.BlockBooterWebsites || ls1.BlockDiscordInvites != ls2.BlockDiscordInvites || ls1.BlockDisturbingWebsites != ls2.BlockDisturbingWebsites || ls1.BlockIpLoggingWebsites != ls2.BlockIpLoggingWebsites || ls1.BlockUrlShorteners != ls2.BlockUrlShorteners || ls1.Enabled != ls2.Enabled) { return(false); } RatelimitSettings rs1 = first.RatelimitSettings; RatelimitSettings rs2 = second.RatelimitSettings; return(rs1.Action == rs2.Action && rs1.Enabled == rs2.Enabled && rs1.Sensitivity == rs2.Sensitivity); }
public Task ExecuteGroupAsync(CommandContext ctx) { LinkfilterSettings settings = ctx.Services.GetRequiredService <GuildConfigService>().GetCachedConfig(ctx.Guild.Id).LinkfilterSettings; if (!settings.Enabled) { throw new CommandFailedException(ctx, "cmd-err-lf-off"); } return(ctx.RespondWithLocalizedEmbedAsync(emb => { emb.WithLocalizedTitle("str-lf"); emb.WithColor(this.ModuleColor); emb.AddLocalizedField("str-lf-invite", settings.BlockDiscordInvites ? "str-on" : "str-off", inline: true); emb.AddLocalizedField("str-lf-ddos", settings.BlockBooterWebsites ? "str-on" : "str-off", inline: true); emb.AddLocalizedField("str-lf-gore", settings.BlockDisturbingWebsites ? "str-on" : "str-off", inline: true); emb.AddLocalizedField("str-lf-ip", settings.BlockIpLoggingWebsites ? "str-on" : "str-off", inline: true); emb.AddLocalizedField("str-lf-urlshort", settings.BlockDisturbingWebsites ? "str-on" : "str-off", inline: true); })); }
public Task ExecuteGroupAsync(CommandContext ctx) { LinkfilterSettings settings = this.Shared.GetGuildConfig(ctx.Guild.Id).LinkfilterSettings; if (settings.Enabled) { var emb = new DiscordEmbedBuilder { Title = "Linkfilter modules for this guild", Color = this.ModuleColor }; emb.AddField("Discord invites filter", settings.BlockDiscordInvites ? "enabled" : "disabled", inline: true); emb.AddField("DDoS/Booter websites filter", settings.BlockBooterWebsites ? "enabled" : "disabled", inline: true); emb.AddField("Disturbing websites filter", settings.BlockDisturbingWebsites ? "enabled" : "disabled", inline: true); emb.AddField("IP logging websites filter", settings.BlockIpLoggingWebsites ? "enabled" : "disabled", inline: true); emb.AddField("URL shortening websites filter", settings.BlockDisturbingWebsites ? "enabled" : "disabled", inline: true); return(ctx.RespondAsync(embed: emb.Build())); } else { return(this.InformAsync(ctx, $"Link filtering for this guild is: {Formatter.Bold("disabled")}!")); } }