Files
RRAC/RecRoomArchive.Models/API/Players/BaseProfile.cs
splootybean 387ec7ba89 Initialize repository
Added basic info to get in game for like...August 2016 ;-;
It's not much but it's a start
2026-02-27 00:58:13 -08:00

84 lines
4.3 KiB
C#

using System.Text.Json.Serialization;
namespace RecRoomArchive.Models.API.Players
{
/// <summary>
/// The profile of the player from 2016-2019
/// </summary>
public class BaseProfile
{
/// <summary>
/// The unique id of the player
/// </summary>
[JsonPropertyName(name: "Id")] public ulong Id { get; set; }
/// <summary>
/// The username of the player. This usually doesn't show up in game until around 2017...
/// </summary>
[JsonPropertyName(name: "Username")] public string Username { get; set; } = string.Empty;
/// <summary>
/// The display name of the player, this is what's most commonly used in game and is seen on the players nametag
/// </summary>
[JsonPropertyName(name: "DisplayName")] public string DisplayName { get; set; } = string.Empty;
/// <summary>
/// The XP of the player, this determines how much XP is required until the next level up but because this is a local server, who gaf
/// </summary>
[JsonPropertyName(name: "XP")] public int XP { get; set; } = 0;
/// <summary>
/// The level of the player, usually in a range from 1-30 or 1-50 depending on your time period
/// </summary>
[JsonPropertyName(name: "Level")] public int Level { get; set; } = 1;
/// <summary>
/// The internal reputation of the player, reputation works in mysterious ways so I'm not too sure about this one...
/// </summary>
[JsonPropertyName(name: "Reputation")] public float Reputation { get; set; } = 1.0f;
/// <summary>
/// If the player has a verified email on their Rec Room account (which they always will)
/// </summary>
[JsonPropertyName(name: "Verified")] public bool Verified => RegistrationStatus == RegistrationStatus.Registered;
/// <summary>
/// If the player is a developer of Rec Room (they always will be)
/// </summary>
[JsonPropertyName(name: "Developer")] public bool Developer { get; set; } = true;
/// <summary>
/// The bio of the player, I need to find what build this is added in so I can add it to its model...
/// </summary>
[JsonPropertyName(name: "Bio")] public string Bio { get; set; } = string.Empty;
/// <summary>
/// The registration status of the player, determined by if they have an email
/// </summary>
[JsonPropertyName(name: "RegistrationStatus")] public RegistrationStatus RegistrationStatus { get; set; } = RegistrationStatus.Registered;
/// <summary>
/// If the local player is allowed to recieve invites (junior restriction?)
/// </summary>
[JsonPropertyName(name: "CanReceiveInvites")] public bool CanReceiveInvites { get; set; } = true;
/// <summary>
/// The image name of the player
/// </summary>
[JsonPropertyName(name: "ProfileImageName")] public string ProfileImageName { get; set; } = "DefaultProfileImage";
/// <summary>
/// If the player is allowed to recieve invites (junior restriction?)
/// </summary>
[JsonPropertyName(name: "JuniorProfile")] public bool JuniorProfile { get; set; } = false;
/// <summary>
/// If the player is forced to only see alt images like a junior player
/// </summary>
[JsonPropertyName(name: "ForceJuniorImages")] public bool ForceJuniorImages { get; set; } = false;
/// <summary>
/// If the player is about to become a junior
/// </summary>
[JsonPropertyName(name: "PendingJunior")] public bool PendingJunior { get; set; } = false;
/// <summary>
/// If the player has a birthday on their account
/// </summary>
[JsonPropertyName(name: "HasBirthday")] public bool HasBirthday { get; set; } = true;
/// <summary>
/// If the player has an email on their account
/// </summary>
[JsonPropertyName(name: "HasEmail")] public bool HasEmail { get; set; } = true;
/// <summary>
/// If the player perfers to not matchmake with junior players, can be null
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull), JsonPropertyName(name: "AvoidJuniors")] public bool? AvoidJuniors { get; set; }
}
}