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();
}
}
}