/// <summary> Adds a new IP Ban. </summary> /// <param name="ban"> Ban information </param> /// <param name="raiseEvent"> Whether AddingIPBan and AddedIPBan events should be raised. </param> /// <returns> True if ban was added, false if it was already on the list or if it has been canceled by a plugin. </returns> public static bool Add([NotNull] IPBanInfo ban, bool raiseEvent) { if (ban == null) { throw new ArgumentNullException("ban"); } lock ( BanListLock ) { if (Bans.ContainsKey(ban.Address.ToString())) { return(false); } if (raiseEvent) { if (!RaiseAddingIPBanEvent(ban)) { return(false); } Bans.Add(ban.Address.ToString(), ban); AddedIPBanEvent.Raise(new IPBanEventArgs(ban)); } else { Bans.Add(ban.Address.ToString(), ban); } Save(); return(true); } }
public static void AddedIPBanPriority([NotNull] EventHandler <IPBanEventArgs> callback, Priority priority) { if (callback == null) { throw new ArgumentNullException("callback"); } AddedIPBanEvent.Add(callback, priority); }