/// <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()); } } }
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()); } }
/// <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()); } } }