(874dff4ad) Fixed server not saving the whitelist when it's enabled/disabled, causing the setting to revert when relaunching the server.
This commit is contained in:
@@ -61,6 +61,7 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
localEnabled = box.Selected;
|
localEnabled = box.Selected;
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -145,16 +146,12 @@ namespace Barotrauma.Networking
|
|||||||
{
|
{
|
||||||
if (obj is WhiteListedPlayer)
|
if (obj is WhiteListedPlayer)
|
||||||
{
|
{
|
||||||
WhiteListedPlayer wlp = obj as WhiteListedPlayer;
|
if (!(obj is WhiteListedPlayer wlp)) return false;
|
||||||
if (wlp == null) return false;
|
|
||||||
|
|
||||||
if (!localRemoved.Contains(wlp.UniqueIdentifier)) localRemoved.Add(wlp.UniqueIdentifier);
|
if (!localRemoved.Contains(wlp.UniqueIdentifier)) localRemoved.Add(wlp.UniqueIdentifier);
|
||||||
}
|
}
|
||||||
else if (obj is LocalAdded)
|
else if (obj is LocalAdded)
|
||||||
{
|
{
|
||||||
LocalAdded lad = obj as LocalAdded;
|
if (!(obj is LocalAdded lad)) return false;
|
||||||
if (lad == null) return false;
|
|
||||||
|
|
||||||
if (localAdded.Contains(lad)) localAdded.Remove(lad);
|
if (localAdded.Contains(lad)) localAdded.Remove(lad);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,47 +25,45 @@ namespace Barotrauma.Networking
|
|||||||
{
|
{
|
||||||
partial void InitProjSpecific()
|
partial void InitProjSpecific()
|
||||||
{
|
{
|
||||||
if (File.Exists(SavePath))
|
if (!File.Exists(SavePath)) { return; }
|
||||||
|
|
||||||
|
string[] lines;
|
||||||
|
try
|
||||||
{
|
{
|
||||||
string[] lines;
|
lines = File.ReadAllLines(SavePath);
|
||||||
try
|
}
|
||||||
{
|
catch (Exception e)
|
||||||
lines = File.ReadAllLines(SavePath);
|
{
|
||||||
}
|
DebugConsole.ThrowError("Failed to open whitelist in " + SavePath, e);
|
||||||
catch (Exception e)
|
return;
|
||||||
{
|
}
|
||||||
DebugConsole.ThrowError("Failed to open whitelist in " + SavePath, e);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (string line in lines)
|
foreach (string line in lines)
|
||||||
|
{
|
||||||
|
if (line[0] == '#')
|
||||||
{
|
{
|
||||||
if (line[0] == '#')
|
string lineval = line.Substring(1, line.Length - 1);
|
||||||
|
Int32.TryParse(lineval, out int intVal);
|
||||||
|
if (lineval.ToLower() == "true" || intVal != 0)
|
||||||
{
|
{
|
||||||
string lineval = line.Substring(1, line.Length - 1);
|
Enabled = true;
|
||||||
int intVal = 0;
|
|
||||||
Int32.TryParse(lineval, out intVal);
|
|
||||||
if (lineval.ToLower() == "true" || intVal != 0)
|
|
||||||
{
|
|
||||||
Enabled = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Enabled = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string[] separatedLine = line.Split(',');
|
Enabled = false;
|
||||||
if (separatedLine.Length < 2) continue;
|
|
||||||
|
|
||||||
string name = String.Join(",", separatedLine.Take(separatedLine.Length - 1));
|
|
||||||
string ip = separatedLine.Last();
|
|
||||||
|
|
||||||
whitelistedPlayers.Add(new WhiteListedPlayer(name, ip));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
{
|
||||||
|
string[] separatedLine = line.Split(',');
|
||||||
|
if (separatedLine.Length < 2) continue;
|
||||||
|
|
||||||
|
string name = string.Join(",", separatedLine.Take(separatedLine.Length - 1));
|
||||||
|
string ip = separatedLine.Last();
|
||||||
|
|
||||||
|
whitelistedPlayers.Add(new WhiteListedPlayer(name, ip));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Save()
|
public void Save()
|
||||||
@@ -119,9 +117,7 @@ namespace Barotrauma.Networking
|
|||||||
private void RemoveFromWhiteList(WhiteListedPlayer wlp)
|
private void RemoveFromWhiteList(WhiteListedPlayer wlp)
|
||||||
{
|
{
|
||||||
GameServer.Log("Removing " + wlp.Name + " from whitelist", ServerLog.MessageType.ServerMessage);
|
GameServer.Log("Removing " + wlp.Name + " from whitelist", ServerLog.MessageType.ServerMessage);
|
||||||
|
|
||||||
whitelistedPlayers.Remove(wlp);
|
whitelistedPlayers.Remove(wlp);
|
||||||
Save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddToWhiteList(string name, string ip)
|
private void AddToWhiteList(string name, string ip)
|
||||||
@@ -129,7 +125,6 @@ namespace Barotrauma.Networking
|
|||||||
if (string.IsNullOrWhiteSpace(name)) return;
|
if (string.IsNullOrWhiteSpace(name)) return;
|
||||||
if (whitelistedPlayers.Any(x => x.Name.ToLower() == name.ToLower() && x.IP == ip)) return;
|
if (whitelistedPlayers.Any(x => x.Name.ToLower() == name.ToLower() && x.IP == ip)) return;
|
||||||
whitelistedPlayers.Add(new WhiteListedPlayer(name, ip));
|
whitelistedPlayers.Add(new WhiteListedPlayer(name, ip));
|
||||||
Save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ServerAdminWrite(NetBuffer outMsg, Client c)
|
public void ServerAdminWrite(NetBuffer outMsg, Client c)
|
||||||
@@ -201,8 +196,10 @@ namespace Barotrauma.Networking
|
|||||||
GameServer.Log(c.Name + " added " + name + " to whitelist (" + ip + ")", ServerLog.MessageType.ConsoleUsage);
|
GameServer.Log(c.Name + " added " + name + " to whitelist (" + ip + ")", ServerLog.MessageType.ConsoleUsage);
|
||||||
AddToWhiteList(name, ip);
|
AddToWhiteList(name, ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
return removeCount > 0 || addCount > 0 || prevEnabled!=enabled;
|
bool changed = removeCount > 0 || addCount > 0 || prevEnabled != enabled;
|
||||||
|
if (changed) { Save(); }
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user