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 }); }
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); }
internal PersonaStateCallback(SteamClient client, CMsgClientPersonaState.Friend friend) : base(client)
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)); }