コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }