Example #1
0
            internal PersonaStateCallback(CMsgClientPersonaState.Friend friend)
#endif
            {
                this.StatusFlags = ( EClientPersonaStateFlag )friend.persona_state_flags;

                this.FriendID = friend.friendid;
                this.State    = ( EPersonaState )friend.persona_state;

                this.GameAppID = friend.game_played_app_id;
                this.GameID    = friend.gameid;
                this.GameName  = friend.game_name;

                this.GameServerIP   = NetHelpers.GetIPAddress(friend.game_server_ip);
                this.GameServerPort = friend.game_server_port;
                this.QueryPort      = friend.query_port;

                this.SourceSteamID = friend.steamid_source;

                this.GameDataBlob = friend.game_data_blob;

                this.Name = friend.player_name;

                this.AvatarHash = friend.avatar_hash;

                this.LastLogOff = Utils.DateTimeFromUnixTime(friend.last_logoff);
                this.LastLogOn  = Utils.DateTimeFromUnixTime(friend.last_logon);

                this.ClanRank = friend.clan_rank;
                this.ClanTag  = friend.clan_tag;

                this.OnlineSessionInstances = friend.online_session_instances;
                this.PublishedSessionID     = friend.published_instance_id;
            }
        internal SelfUser WithState(CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag)
        {
            var before = (SelfUser)MemberwiseClone();

            if (flag.HasFlag(ClientPersonaStateFlag.Presence))
            {
                before._avatarHash = ImmutableArray.Create(state.avatar_hash);
                before._state      = (PersonaState)state.persona_state;
                before._stateFlags = (PersonaStateFlag)state.persona_state_flags;
            }

            if (flag.HasFlag(ClientPersonaStateFlag.PlayerName))
            {
                before._playerName = state.player_name;
            }

            if (flag.HasFlag(ClientPersonaStateFlag.LastSeen))
            {
                before._lastLogoff = DateTimeOffset.FromUnixTimeSeconds(state.last_logoff);
                before._lastLogon  = DateTimeOffset.FromUnixTimeSeconds(state.last_logon);
            }

            if (flag.HasFlag(ClientPersonaStateFlag.Status))
            {
                before._onlineSessionInstances = state.online_session_instances;
                before._publishedInstanceId    = state.published_instance_id;
            }

            if (flag.HasFlag(ClientPersonaStateFlag.QueryPort | ClientPersonaStateFlag.SourceID | ClientPersonaStateFlag.GameDataBlob | ClientPersonaStateFlag.GameExtraInfo))
            {
                before._game = GameInfo.Create(state);
            }

            return(before);
        }
 internal static GameInfo Create(CMsgClientPersonaState.Friend friend)
 {
     return(new GameInfo
     {
         _appId = friend.game_played_app_id,
         _gameDataBlob = ImmutableArray.Create(friend.game_data_blob),
         _gameId = friend.gameid,
         _gameName = friend.game_name,
         _gameServerIp = friend.game_server_ip,
         _queryPort = friend.query_port,
         _serverPort = friend.game_server_port,
         _steamIdSource = friend.steamid_source
     });
 }
Example #4
0
        internal Clan WithPersonaState(CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag)
        {
            var before = (Clan)MemberwiseClone();

            if (flag.HasFlag(ClientPersonaStateFlag.PlayerName))
            {
                before._name = state.player_name;
            }

            if (flag.HasFlag(ClientPersonaStateFlag.Presence))
            {
                before._avatar = ImmutableArray.Create(state.avatar_hash);
            }

            if (flag.HasFlag(ClientPersonaStateFlag.ClanTag))
            {
                before._tag = state.clan_tag;
            }

            return(before);
        }
Example #5
0
 internal PersonaStateCallback(SteamClient client, CMsgClientPersonaState.Friend friend)
     : base(client)
Example #6
0
 internal static Clan Create(SteamNetworkClient client, ClanRelationship relationship, CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag)
 {
     return(new Clan(client, state.friendid).WithRelationship(relationship).WithPersonaState(state, flag));
 }
 internal static SelfUser Create(SteamNetworkClient client, CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag)
 {
     return(new SelfUser(client, state.friendid).WithState(state, flag));
 }
 internal static User Create(SteamNetworkClient client, FriendRelationship relationship, CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag)
 {
     return(new User(client, state.friendid, relationship).WithState(state, flag));
 }