public static RaidProtectionRule Create(RaidProtectionRuleType type, string s) { RaidProtectionRule rule; switch (type) { case RaidProtectionRuleType.MassMentionsRule: rule = new MassMentionsRule(); break; case RaidProtectionRuleType.TextSpamRule: rule = new SpamRule(); break; case RaidProtectionRuleType.ImageSpamRule: rule = new SpamRule(); break; case RaidProtectionRuleType.PhraseBlacklistRule: rule = new PhraseBlacklistRule(); break; default: throw new ArgumentException("Unknown rule type"); } rule.Type = type; rule.Fill(s); return(rule); }
public void ResetException(RaidProtectionRuleType type) => Exceptions.Remove(type);
public void SetException(RaidProtectionRuleType type, RaidProtectionRule rule) => Exceptions[type] = rule;
public bool IsDefault(RaidProtectionRuleType type) => !Exceptions.ContainsKey(type);
public T GetRule <T>(RaidProtectionRuleType type) where T : RaidProtectionRule => Exceptions.TryGetValue(type, out var rule) ? (T)rule : (T)DefaultRules[type];