using System; using System.Collections.Immutable; using System.Text; using Robust.Shared.ViewVariables; namespace Robust.Shared.Network { /// /// Contains data about players returned from auth server. /// public sealed record NetUserData { [ViewVariables] public NetUserId UserId { get; } [ViewVariables] public string UserName { get; } [ViewVariables] public string? PatronTier { get; init; } [ViewVariables] public DateTime? CreatedTime { get; init; } public ImmutableArray HWId { get; init; } /// /// Unique identifiers for a client's computer, account and connection. /// /// /// If any of these values match between two connections, /// it means the auth server believes them to be the same user. /// public ImmutableArray> ModernHWIds { get; init; } /// /// A trust value that reports the auth server's estimate of how likely this user is to be a malicious/suspicious account. /// /// /// A value of 0.5 can be considered "neutral", 1 being "fully trusted". /// public float Trust { get; init; } /// /// True if the player is connecting from a local address. /// public bool IsLocal { get; init; } public NetUserData(NetUserId userId, string userName) { UserId = userId; UserName = userName; } public sealed override string ToString() { var stringBuilder = new StringBuilder(); stringBuilder.Append("NetUserData"); // type name stringBuilder.Append(" { "); if ((this with { HWId = default }).PrintMembers(stringBuilder)) { stringBuilder.Append(' '); } stringBuilder.Append('}'); return stringBuilder.ToString(); } } }