diff --git a/Subsurface/Source/Networking/WhiteList.cs b/Subsurface/Source/Networking/WhiteList.cs index 486bf32c3..148bfc769 100644 --- a/Subsurface/Source/Networking/WhiteList.cs +++ b/Subsurface/Source/Networking/WhiteList.cs @@ -62,19 +62,19 @@ namespace Barotrauma.Networking foreach (string line in lines) { - if (line[0] == '#') - { - string lineval = line.Substring(1, line.Length - 1); - if (lineval.ToLower()=="true" || Convert.ToInt32(lineval)!=0) - { - enabled = true; - } - else - { - enabled = false; - } + if (line[0] == '#') + { + string lineval = line.Substring(1, line.Length - 1); + if (lineval.ToLower()=="true" || Convert.ToInt32(lineval)!=0) + { + enabled = true; + } + else + { + enabled = false; + } } - else + else { string[] separatedLine = line.Split(','); if (separatedLine.Length < 2) continue; @@ -94,13 +94,13 @@ namespace Barotrauma.Networking List lines = new List(); - if (enabled) + if (enabled) { lines.Add("#true"); } - else - { - lines.Add("#false"); + else + { + lines.Add("#false"); } foreach (WhiteListedPlayer wlp in whitelistedPlayers) { @@ -115,8 +115,8 @@ namespace Barotrauma.Networking { DebugConsole.ThrowError("Saving the whitelist to " + SavePath + " failed", e); } - } - + } + public bool IsWhiteListed(string name, string ip) { if (!enabled) return true; @@ -142,16 +142,16 @@ namespace Barotrauma.Networking enabledTick.OnSelected = (GUITickBox box) => { enabled = !enabled; - if (enabled) - { - foreach (Client c in GameMain.Server.ConnectedClients) - { - if (!IsWhiteListed(c.name,c.Connection.RemoteEndPoint.Address.ToString())) - { - whitelistedPlayers.Add(new WhiteListedPlayer(c.name, c.Connection.RemoteEndPoint.Address.ToString())); - CloseFrame(); CreateWhiteListFrame(); - } - } + if (enabled) + { + foreach (Client c in GameMain.Server.ConnectedClients) + { + if (!IsWhiteListed(c.name,c.Connection.RemoteEndPoint.Address.ToString())) + { + whitelistedPlayers.Add(new WhiteListedPlayer(c.name, c.Connection.RemoteEndPoint.Address.ToString())); + CloseFrame(); CreateWhiteListFrame(); + } + } } Save(); return true; @@ -207,7 +207,8 @@ namespace Barotrauma.Networking private bool AddToWhiteList(GUIButton button, object obj) { - if (string.IsNullOrWhiteSpace(nameBox.Text) || whitelistedPlayers.Find(x => x.Name.ToLower() == nameBox.Text.ToLower()) != null) return false; + if (string.IsNullOrWhiteSpace(nameBox.Text)) return false; + if (whitelistedPlayers.Find(x => x.Name.ToLower() == nameBox.Text.ToLower() && x.IP == ipBox.Text) != null) return false; whitelistedPlayers.Add(new WhiteListedPlayer(nameBox.Text,ipBox.Text)); Save(); CloseFrame(); CreateWhiteListFrame();