Esempio n. 1
0
        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")}!"));
                    }
                }