Example #1
0
        void PersonaStateChange( PersonaStateChange_t obj )
        {
            txtCallbacks.Invoke( ( MethodInvoker )delegate
            {
                txtCallbacks.AppendText( "PersonaStateChange_t: " + context.SteamFriends.GetFriendPersonaName( obj.m_ulSteamID ) + " (" + new CSteamID( obj.m_ulSteamID ).Render() + ") Flags: " + obj.m_nChangeFlags + Environment.NewLine );

                txtCallbacks.ScrollToCaret();
            } );
        }
Example #2
0
        void OnStateChange_OnRun( PersonaStateChange_t param )
        {
            lock ( closeLock )
            {
                if ( bClosing )
                    return;

                this.Invoke( new MethodInvoker( () => HandleStateChange( param ) ) );
            }
        }
Example #3
0
        void HandleStateChange( PersonaStateChange_t param )
        {
            FriendControl fc = friendsFlow.GetFriendControl( new Friend( param.m_ulSteamID ) );

            if ( fc == null )
                return;

            // force update
            fc.SetSteamID( fc.Friend );
        }
Example #4
0
        void PersonaStateChange_OnRun( PersonaStateChange_t param )
        {
            if ( param.m_ulSteamID != SteamContext.SteamUser.GetSteamID() )
            {
                // we're only interested in our own persona changes
                return;
            }

            if ( !SkypeContext.IsReady )
            {
                Log( "Warning: Detect game launch, but skype isn't attached!" );
                return;
            }

            if ( ( param.m_nChangeFlags & EPersonaChange.k_EPersonaChangeGamePlayed ) != 0 )
            {
                this.Invoke( new MethodInvoker( () =>
                {
                    UpdateSkypeMood( param );
                } ) );
            }
        }
Example #5
0
        private void UpdateSkypeMood( PersonaStateChange_t param )
        {
            FriendGameInfo_t gameInfo = new FriendGameInfo_t();

            if ( !SteamContext.SteamFriends.GetFriendGamePlayed( param.m_ulSteamID, ref gameInfo ) )
            {
                // this happens when we stop playing a game
                SetSkypeMood( "Stopped playing" );
                return;
            }

            CGameID gameId = gameInfo.m_gameID;

            if ( gameId.AppType != CGameID.EGameID.k_EGameIDTypeApp )
            {
                Log( "Info: Detected game launch, but wasn't steam game. Only official steam apps are supported!" );
                return;
            }

            StringBuilder sb = new StringBuilder( 256 );
            int len = SteamContext.SteamApps.GetAppData( gameId.AppID, "name", sb );

            string name = sb.ToString();

            if ( string.IsNullOrWhiteSpace( name ) || len == 0 )
            {
                Log( "Info: Detect game launch, but wasn't able to get the name! AppID: {0}, GameID: {1}", gameId.AppID, gameId.ConvertToUint64() );
                Log( "Will try to pick up a delayed game update!" );

                delayAppId = gameId.AppID;
                return;
            }

            SetSkypeMood( "Now Playing: {0}", name );
            Log( "Now playing: {0}", name );
        }
        //all interfaces are a go, now callbacks and other necessary functions
        void stateChange(PersonaStateChange_t perState)
        {
            CSteamID stateChangeUId = new CSteamID(perState.m_ulSteamID);
            EPersonaState newState = steamFriends.GetFriendPersonaState(stateChangeUId);

            string uName = steamFriends.GetFriendPersonaName(stateChangeUId);
            //if (newState == EPersonaState.k_EPersonaStateOffline)
                //person is offline, remove from pug

            Program.logToWindow(uName + " (" + perState.m_ulSteamID + "/" + stateChangeUId + ") changed state to " + newState);
        }
Example #7
0
 void StateChange( PersonaStateChange_t perState )
 {
 }