public TF2RichPresence(CSteamID steamId, Assets assets) : base(steamId, assets) { var currentMap = SteamFriends.GetFriendRichPresence(steamId, CURRENT_MAP); CurrentMap = !string.IsNullOrWhiteSpace(currentMap) ? currentMap : default; var presenceState = SteamFriends.GetFriendRichPresence(steamId, STATE); PresenceState = Enum.TryParse(presenceState, true, out TF2PresenceState state) ? state : default; var group = SteamFriends.GetFriendRichPresence(steamId, STEAM_PLAYER_GROUP); group = !string.IsNullOrWhiteSpace(group) ? group : $"tf2_{steamId.m_SteamID}"; var location = SteamFriends.GetFriendRichPresence(steamId, MATCH_GROUP_LOCATION); Location = Enum.TryParse(location, true, out TF2MatchGroupLocation groupLocation) ? groupLocation : default; var groupSize = SteamFriends.GetFriendRichPresence(steamId, STEAM_PLAYER_GROUP_SIZE); if (int.TryParse(groupSize, out var size) && (PresenceState == TF2PresenceState.SearchingMatchGroup || PresenceState == TF2PresenceState.LoadingMatchGroup || PresenceState == TF2PresenceState.PlayingMatchGroup || PresenceState == TF2PresenceState.MainMenu)) { State = "In a party"; Party = new Party { ID = group, Size = size, Max = 6 }; } Details = FormatDetails(); if (!LastTimestamp.HasValue || LastPresence?.Equals(this) != true) { LastTimestamp = DateTime.UtcNow; } Timestamps = new Timestamps(LastTimestamp.Value); }
public UnturnedRichPresence(CSteamID steamId, Assets assets) : base(steamId, assets) { var status = SteamFriends.GetFriendRichPresence(steamId, STATUS); Details = !string.IsNullOrWhiteSpace(status) ? status : "In game"; if (!LastTimestamp.HasValue || LastPresence?.Equals(this) != true) { LastTimestamp = DateTime.UtcNow; } Timestamps = new Timestamps(LastTimestamp.Value); }