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);
        }
Exemple #2
0
 public void ResetException(RaidProtectionRuleType type) => Exceptions.Remove(type);
Exemple #3
0
 public void SetException(RaidProtectionRuleType type, RaidProtectionRule rule) => Exceptions[type] = rule;
Exemple #4
0
 public bool IsDefault(RaidProtectionRuleType type) => !Exceptions.ContainsKey(type);
Exemple #5
0
 public T GetRule <T>(RaidProtectionRuleType type)
     where T : RaidProtectionRule => Exceptions.TryGetValue(type, out var rule) ? (T)rule : (T)DefaultRules[type];