private void On_Query_Player_Info_Request( CQueryPlayerInfoRequest request, ESessionID source_session )
        {
            CQueryPlayerInfoResponse response = new CQueryPlayerInfoResponse( request.RequestID );
            foreach ( var id in request.IDs )
            {
                CConnectedPlayer player = Get_Active_Player_By_Persistence_ID( id );
                if ( player != null )
                {
                    CPlayerInfo player_info = new CPlayerInfo( id );
                    player_info.Name = player.Name;

                    response.Add_Player_Info( player_info );
                }
            }

            Send_Message( response, source_session );
        }
		private static void Build_Connection_Message_Samples( List< CNetworkMessage > message_list )
		{
			message_list.Add( new CClientHelloRequest( "SomeLoginName" ) );
			message_list.Add( new CClientHelloResponse( EMessageRequestID.Start, new CPersistentPlayerData( (EPersistenceID) 1, "PlayerName" ) ) );
			message_list.Add( new CConnectionDroppedMessage( EConnectRefusalReason.Name_Already_Connected ) );
			message_list.Add( new CDisconnectRequestMessage() );
			message_list.Add( new CDisconnectResultMessage( EDisconnectReason.Client_Request_Quit ) );
			message_list.Add( new CPingMessage() );

			CQueryPlayerInfoRequest query_info_request = new CQueryPlayerInfoRequest();
			for ( int i = 0; i < 5; i++ )
			{
				query_info_request.Add_Player( (EPersistenceID) i );
			}
			message_list.Add( query_info_request );

			CQueryPlayerInfoResponse query_info_response = new CQueryPlayerInfoResponse( EMessageRequestID.Start );
			for ( int i = 0; i < 5; i++ )
			{
				query_info_response.Add_Player_Info( new CPlayerInfo( (EPersistenceID) i, "SomePlayer" + i.ToString() ) );
			}
			message_list.Add( query_info_response );
		}