/// <summary> /// Update this friend, request the latest data from Steam's servers /// </summary> public void Refresh() { Name = Client.native.friends.GetFriendPersonaName(Id); relationship = Client.native.friends.GetFriendRelationship(Id); personaState = Client.native.friends.GetFriendPersonaState(Id); CurrentAppId = 0; ServerIp = 0; ServerGamePort = 0; ServerQueryPort = 0; ServerLobbyId = 0; var gameInfo = new SteamNative.FriendGameInfo_t(); if (Client.native.friends.GetFriendGamePlayed(Id, ref gameInfo) && gameInfo.GameID > 0) { CurrentAppId = gameInfo.GameID; ServerIp = gameInfo.GameIP; ServerGamePort = gameInfo.GamePort; ServerQueryPort = gameInfo.QueryPort; ServerLobbyId = gameInfo.SteamIDLobby; } Client.native.friends.RequestFriendRichPresence(Id); }
// Gets the state of a user specified by his/her GalaxyID public PersonaState GetFriendPersonaState(GalaxyID galaxyID) { Debug.Log("Trying to get friend " + galaxyID + " state"); PersonaState state = PersonaState.PERSONA_STATE_OFFLINE; Debug.Assert(friendListListener.retrieved); try { state = GalaxyInstance.Friends().GetFriendPersonaState(galaxyID); Debug.Log("Friend " + galaxyID + " state: " + state); } catch (GalaxyInstance.Error e) { Debug.LogError("Failed to get friend " + galaxyID + " for reason " + e); } return(state); }
public Task SetPersonaStateAsync(PersonaState state) => Client.SetPersonaStateAsync(state);
internal async Task SetPersonaStateAsync(PersonaState state) { await SendAsync(NetworkMessage.CreateProtobufMessage(MessageType.ClientChangeStatus, new CMsgClientChangeStatus { persona_state = (uint)state })).ConfigureAwait(false); }
public static bool TryParse(string str, out PersonaState result) { PersonaState? n = ParseNullable(str); if (n == null) { result = PersonaState.Offline; return false; } else { result = n.Value; return true; } }