Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
    // 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);
Exemplo n.º 4
0
 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;
     }
 }