mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-08-02 08:50:18 -04:00
When a Dresser component is set to `ClothingSource.OwnerConnection`, it will verify the owner connection actually owns the items they are attempting to wear using the Steam API. This means users can't just add items they never owned to their avatar forcefully.
48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
namespace Sandbox;
|
|
|
|
[Expose]
|
|
internal struct UserInfo
|
|
{
|
|
public SteamId SteamId { get; set; }
|
|
public string DisplayName { get; set; }
|
|
public DateTimeOffset ConnectionTime { get; set; }
|
|
public Dictionary<string, string> UserData { get; set; }
|
|
public int EngineVersion { get; internal set; }
|
|
public SteamId PartyId { get; internal set; }
|
|
public byte[] AuthTicket { get; set; }
|
|
public Guid HandshakeId { get; set; }
|
|
public bool IsVr { get; set; }
|
|
public byte[] InventoryBlob { get; set; }
|
|
|
|
/// <summary>
|
|
/// Build info for the local user, which will then get sent to the server and possibly shared between all clients
|
|
/// </summary>
|
|
internal static UserInfo Local
|
|
{
|
|
get
|
|
{
|
|
var ui = new UserInfo
|
|
{
|
|
ConnectionTime = DateTime.UtcNow,
|
|
SteamId = Utility.Steam.SteamId,
|
|
DisplayName = Utility.Steam.PersonaName,
|
|
EngineVersion = Engine.Protocol.Network,
|
|
UserData = new(),
|
|
PartyId = PartyRoom.Current?.Id ?? new( 0 ),
|
|
IsVr = VR.VRSystem.IsActive,
|
|
InventoryBlob = Services.Inventory.CurrentBlob
|
|
};
|
|
|
|
//
|
|
// Put all the userinfo vars in
|
|
//
|
|
foreach ( var convar in ConVarSystem.Members.Values.Where( x => x.IsUserInfo ) )
|
|
{
|
|
ui.UserData[convar.Name] = convar.Value;
|
|
}
|
|
|
|
return ui;
|
|
}
|
|
}
|
|
}
|