38f1ddb...178a853: v0.8.9.1, removed content folder

This commit is contained in:
Joonas Rikkonen
2019-03-18 19:46:58 +02:00
parent 38f1ddb6fe
commit 6c0679c297
1054 changed files with 151673 additions and 144931 deletions
@@ -9,6 +9,7 @@ namespace Barotrauma.Networking
{
public string Name;
public string IP;
public ulong SteamID;
public string Reason;
public DateTime? ExpirationTime;
@@ -33,6 +34,14 @@ namespace Barotrauma.Networking
this.Reason = reason;
this.ExpirationTime = expirationTime;
}
public BannedPlayer(string name, ulong steamID, string reason, DateTime? expirationTime)
{
this.Name = name;
this.SteamID = steamID;
this.Reason = reason;
this.ExpirationTime = expirationTime;
}
}
partial class BanList
@@ -74,13 +83,12 @@ namespace Barotrauma.Networking
if (separatedLine.Length < 2) continue;
string name = separatedLine[0];
string ip = separatedLine[1];
string identifier = separatedLine[1];
DateTime? expirationTime = null;
if (separatedLine.Length > 2 && !string.IsNullOrEmpty(separatedLine[2]))
{
DateTime parsedTime;
if (DateTime.TryParse(separatedLine[2], out parsedTime))
if (DateTime.TryParse(separatedLine[2], out DateTime parsedTime))
{
expirationTime = parsedTime;
}
@@ -89,14 +97,49 @@ namespace Barotrauma.Networking
if (expirationTime.HasValue && DateTime.Now > expirationTime.Value) continue;
bannedPlayers.Add(new BannedPlayer(name, ip, reason, expirationTime));
if (identifier.Contains("."))
{
//identifier is an ip
bannedPlayers.Add(new BannedPlayer(name, identifier, reason, expirationTime));
}
else
{
//identifier should be a steam id
if (ulong.TryParse(identifier, out ulong steamID))
{
bannedPlayers.Add(new BannedPlayer(name, steamID, reason, expirationTime));
}
else
{
DebugConsole.ThrowError("Error in banlist: \"" + identifier + "\" is not a valid IP or a Steam ID");
}
}
}
}
}
public void BanPlayer(string name, string ip, string reason, TimeSpan? duration)
{
if (bannedPlayers.Any(bp => bp.IP == ip)) return;
BanPlayer(name, ip, 0, reason, duration);
}
public void BanPlayer(string name, ulong steamID, string reason, TimeSpan? duration)
{
BanPlayer(name, "", steamID, reason, duration);
}
private void BanPlayer(string name, string ip, ulong steamID, string reason, TimeSpan? duration)
{
var existingBan = bannedPlayers.Find(bp => bp.IP == ip && bp.SteamID == steamID);
if (existingBan != null)
{
if (!duration.HasValue) return;
DebugConsole.Log("Set \"" + name + "\"'s ban duration to " + duration.Value);
existingBan.ExpirationTime = DateTime.Now + duration.Value;
Save();
return;
}
System.Diagnostics.Debug.Assert(!name.Contains(','));
@@ -121,7 +164,7 @@ namespace Barotrauma.Networking
var player = bannedPlayers.Find(bp => bp.Name == name);
if (player == null)
{
DebugConsole.Log("Could not unban player \""+name+"\". Matching player not found.");
DebugConsole.Log("Could not unban player \"" + name + "\". Matching player not found.");
}
else
{
@@ -146,10 +189,10 @@ namespace Barotrauma.Networking
}
}
public bool IsBanned(string IP)
public bool IsBanned(string IP, ulong steamID)
{
bannedPlayers.RemoveAll(bp => bp.ExpirationTime.HasValue && DateTime.Now > bp.ExpirationTime.Value);
return bannedPlayers.Any(bp => bp.CompareTo(IP));
return bannedPlayers.Any(bp => bp.CompareTo(IP) || (steamID != 0 && bp.SteamID == steamID));
}
private void RemoveBan(BannedPlayer banned)
@@ -200,10 +243,11 @@ namespace Barotrauma.Networking
List<string> lines = new List<string>();
foreach (BannedPlayer banned in bannedPlayers)
{
string line = banned.Name + "," + banned.IP;
string line = banned.Name;
line += "," + ((banned.SteamID > 0) ? banned.SteamID.ToString() : banned.IP);
line += "," + (banned.ExpirationTime.HasValue ? banned.ExpirationTime.Value.ToString() : "");
if (!string.IsNullOrWhiteSpace(banned.Reason)) line += "," + banned.Reason;
lines.Add(line);
}