Exemple #1
0
        /// <summary>
        /// Check a message against the text greylist.
        /// </summary>
        private static async Task CheckTextGreylist(SocketGuild guild, IMessage rawMessage, DiscordGuildConfiguration guildConfig, ITemplateProvider templates)
        {
            if (guildConfig.TextGreylist == null)
            {
                Log.Warning("{List} is null.", nameof(guildConfig.TextGreylist));
                return;
            }

            foreach (var regexString in guildConfig.TextGreylist)
            {
                var match = Regex.Match(rawMessage.Content, regexString);
                if (match.Success)
                {
                    LastCaughtRegex = regexString;
                    var reportChannel = guild.GetTextChannel(guildConfig.ReportChannel);
                    if (reportChannel == null)
                    {
                        Log.Warning("No report channel configured for softblocked message!");
                        return;
                    }

                    await reportChannel.SendMessageAsync(embed : templates.Execute("automod/softblock.md", new
                    {
                        ChannelName = rawMessage.Channel.Name,
                        MessageText = rawMessage.Content,
                        Pattern = regexString,
                        JumpLink = rawMessage.GetJumpUrl(),
                    })
                                                         .ToEmbedBuilder()
                                                         .WithColor(Color.Orange)
                                                         .Build());
                }
            }
        }
Exemple #2
0
        public static async Task Handler(DiscordSocketClient client, ITemplateProvider templates, SocketGuildUser user)
        {
            if (user == null)
            {
                Log.Information("A user joined, but the data received was null!");
                return;
            }

            if (user.Guild.Id == SpecialGuilds.CrystalExploratoryMissions)
            {
                await user.SendMessageAsync(embed : templates.Execute("cemjoin.md", new
                {
                    GuildName = user.Guild.Name,
                    BotMention = client.CurrentUser.Mention,
                    ContentRolesChannelLink = "<#590757405927669769>",
                    HowDoesThisWorkChannelLink = "<#877659281481162803>",
                    RulesChannelLink = "<#550707138348187648>",
                    HelpChannelLink = "<#550777867173232661>",
                    OtherUsefulServersChannelLink = "<#569322805351415808>",
                })
                                            .ToEmbedBuilder()
                                            .WithColor(Color.Orange)
                                            .Build());
            }
        }
Exemple #3
0
        /// <summary>
        /// Check a message against the text denylist.
        /// </summary>
        private static async Task CheckTextDenylist(SocketGuild guild, IMessage rawMessage, DiscordGuildConfiguration guildConfig, ITemplateProvider templates)
        {
            foreach (var regexString in guildConfig.TextDenylist)
            {
                var match = Regex.Match(rawMessage.Content, regexString);
                if (match.Success)
                {
                    LastCaughtRegex = regexString;
                    await rawMessage.DeleteAsync();

                    await rawMessage.Author.SendMessageAsync(embed : templates.Execute("automod/delete.md", new
                    {
                        ChannelName = rawMessage.Channel.Name,
                        MessageText = rawMessage.Content,
                        Pattern = regexString,
                    })
                                                             .ToEmbedBuilder()
                                                             .WithColor(Color.Orange)
                                                             .Build());
                }
            }
        }