Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/Networking/ServerListContentPackageInfo.cs
2024-03-28 18:34:33 +02:00

24 lines
833 B
C#

namespace Barotrauma.Networking;
public readonly record struct ServerListContentPackageInfo(
string Name, string Hash, Option<ContentPackageId> Id)
{
public ServerListContentPackageInfo(ContentPackage pkg)
: this(pkg.Name, pkg.Hash.StringRepresentation, pkg.UgcId) {}
public static Option<ServerListContentPackageInfo> ParseSingleEntry(string singleEntry)
{
if (singleEntry.SplitEscaped(',') is not { Count: 3 } split) { return Option.None; }
return Option.Some(
new ServerListContentPackageInfo(
split[0],
split[1],
ContentPackageId.Parse(split[2])));
}
public override string ToString()
=> new[] { Name, Hash, Id.Select(id => id.StringRepresentation).Fallback("") }
.JoinEscaped(',');
}