public void CheckMessage(WinterBot bot, TwitchUser user, string text) { if (user.IsModerator) return; string clearReason = null; List<string> urls; if (HasUrls(text, out urls)) { // Check bans. if (MatchesAny(urls, m_urlBanlist)) { m_winterBot.Ban(user); if (!string.IsNullOrEmpty(m_urlOptions.BanMessage)) bot.TimeoutMessage("{0}: {1}", user.Name, m_urlOptions.BanMessage); m_winterBot.WriteDiagnostic(DiagnosticFacility.Ban, "Banned {0} for {1}.", user.Name, string.Join(", ", urls)); } else if ((m_urlOptions.ShouldEnforce(user) || m_denyList.Contains(user)) && (!MatchesAll(urls, m_urlWhitelist) || MatchesAny(urls, m_urlBlacklist))) { if (m_permit.Contains(user)) m_permit.Remove(user); else clearReason = m_urlOptions.Message; } } else if (m_symbolOptions.ShouldEnforce(user) && HasSpecialCharacter(text)) { clearReason = m_symbolOptions.Message; } else if (m_capsOptions.ShouldEnforce(user) && TooManyCaps(user, text)) { clearReason = m_capsOptions.Message; } else if (m_emoteOptions.ShouldEnforce(user) && TooManyEmotes(user, text)) { clearReason = m_emoteOptions.Message; } else if (m_lengthOptions.ShouldEnforce(user) && MessageTooLong(user, text)) { clearReason = m_lengthOptions.Message; } if (clearReason != null) ClearChat(bot, user, clearReason); }