/// <summary> /// Return if the Player is ip blacklisted. /// </summary> /// <param name="IPAddress">IPAddress to check.</param> /// <returns></returns> public static bool IsIPBlackListed(this string IPAddress) { if (Core.Setting.IPBlackList) { IPBlackList IPBlackList = IPAddress.GetIPBlackList(); if (IPBlackList != null) { if (IPBlackList.Duration == -1 || DateTime.Now < IPBlackList.StartTime.AddSeconds(IPBlackList.Duration)) { return(true); } else { Core.Setting.IPBlackListData.Remove(IPBlackList); Core.Setting.Save(); return(false); } } else { return(false); } } else { return(false); } }
public void LoadLists() { PathWhiteList = Path.Combine(SanyaPlugin.Instance.Config.DataDirectory, "VPN-Whitelist.txt"); PathBlackList = Path.Combine(SanyaPlugin.Instance.Config.DataDirectory, "VPN-Blacklist.txt"); IPWhiteList.Clear(); IPBlackList.Clear(); if (!File.Exists(PathWhiteList)) { File.WriteAllText(PathWhiteList, null); } if (!File.Exists(PathBlackList)) { File.WriteAllText(PathBlackList, null); } foreach (var line in File.ReadAllLines(PathWhiteList)) { if (IPAddress.TryParse(line, out var address)) { IPWhiteList.Add(address); } } foreach (var line2 in File.ReadAllLines(PathBlackList)) { if (IPAddress.TryParse(line2, out var address2)) { IPBlackList.Add(address2); } } }
public void AddBlackList(IPAddress address) { IPBlackList.Add(address); using (StreamWriter writer = File.AppendText(PathBlackList)) { writer.WriteLine(address); } }
/// <summary> /// Add the following Player to the IPBlackList. /// </summary> /// <param name="IPAddress">IPAddress</param> /// <param name="Duration">How long?</param> /// <param name="Reason">Reason</param> public static void AddIPBlackList(this string IPAddress, int Duration, string Reason) { if (IPAddress.IsIPBlackListed()) { IPBlackList IPBlackList = IPAddress.GetIPBlackList(); IPBlackList.StartTime = DateTime.Now; IPBlackList.Duration = Duration; IPBlackList.Reason = Reason; Core.Setting.Save(); } else { Core.Setting.IPBlackListData.Add(new IPBlackList(IPAddress, Reason, DateTime.Now, Duration)); Core.Setting.Save(); } }
/// <summary> /// Add the following Player to the IPBlackList /// </summary> /// <param name="Player">Player to ban.</param> /// <param name="Duration">How long?</param> /// <param name="Reason">Reason.</param> public static void AddIPBlackList(this Player Player, int Duration, string Reason) { if (Player.IsIPBlackListed()) { IPBlackList IPBlackList = Player.GetIPBlackList(); IPBlackList.StartTime = DateTime.Now; IPBlackList.Duration = Duration; IPBlackList.Reason = Reason; Core.Setting.Save(); } else { Core.Setting.IPBlackListData.Add(new IPBlackList(((IPEndPoint)Player.Network.Client.Client.RemoteEndPoint).Address.ToString(), Reason, DateTime.Now, Duration)); Core.Setting.Save(); } }
public bool IsBlackListed(IPAddress address) => IPBlackList.Contains(address);