| Methods | 
			
	
			
				
					
	public
					
					
				
			 | 
			
				challengeParseAndApply(Buffer $challenge_buffer): bool
	
		Parse the challenge response and apply it to all the packet types 
	 
	
	Parse the challenge response and apply it to all the packet types 
 
							Throws
							
		Overrides
		
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				processResponse(): array
	
	
			 | 
		
			#
		 | 
	
	
			
				
					
	protected
					
					
				
			 | 
			
				processPackets($packet_id, array $packets = []): string
	
		Process the split packets and decompress if necessary 
	 
	
	Process the split packets and decompress if necessary 
 
							Throws
							
		Overridden by
		
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	protected
					
					
				
			 | 
			
				processDetails(Buffer $buffer): mixed
	
		Handles processing the details data into a usable format 
	 
	
	Handles processing the details data into a usable format 
 
							Throws
							
		Overridden by
		
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	protected
					
					
				
			 | 
			
				processDetailsGoldSource(Buffer $buffer): array
	
		Handles processing the server details from goldsource response 
	 
	
	Handles processing the server details from goldsource response 
 
							Throws
							
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	protected
					
					
				
			 | 
			
				processPlayers(Buffer $buffer): mixed
	
		Handles processing the player data into a usable format 
	 
	
	Handles processing the player data into a usable format 
 
							Throws
							
		Overridden by
		
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	protected
					
					
				
			 | 
			
				processRules(Buffer $buffer): mixed
	
		Handles processing the rules data into a usable format 
	 
	
	Handles processing the rules data into a usable format 
 
							Throws
							
		Overridden by
		
	 
			 | 
		
			#
		 | 
	
		
		
			
				| Properties | 
			
	
			
				
	protected
					
					
				
			 | 
			
				array
			 | 
			
$packets = [
	self::PACKET_CHALLENGE => "\xFF\xFF\xFF\xFF\x56\x00\x00\x00\x00",
	self::PACKET_DETAILS => "\xFF\xFF\xFF\xFFTSource Engine Query\x00%s",
	self::PACKET_PLAYERS => "\xFF\xFF\xFF\xFF\x55%s",
	self::PACKET_RULES => "\xFF\xFF\xFF\xFF\x56%s",
]
				
	
	 
			 | 
		
			#
		 | 
	
	
			
				
	protected
					
					
				
			 | 
			
				array
			 | 
			
$responses = [
	"\x49" => "processDetails",
	"\x6d" => "processDetailsGoldSource",
	"\x44" => "processPlayers",
	"\x45" => "processRules",
]
				
	
	 
			 | 
		
			#
		 | 
	
	
			
				
	protected
					
					
				
			 | 
			
				string
			 | 
			
$protocol = 'source'
				
	
	 
			 | 
		
			#
		 | 
	
	
			
				
	protected
					
					
				
			 | 
			
				string
			 | 
			
$name = 'source'
				
	
	 
			 | 
		
			#
		 | 
	
	
			
				
	protected
					
					
				
			 | 
			
				string
			 | 
			
$name_long = "Source Server"
				
	
	 
			 | 
		
			#
		 | 
	
	
			
				
	protected
					
					
				
			 | 
			
				int
			 | 
			
$source_engine = self::SOURCE_ENGINE
				
	
	 
			 | 
		
			#
		 | 
	
	
			
				
	protected
					
					
				
			 | 
			
				string
			 | 
			
$join_link = "steam://connect/%s:%d/"
				
	
	 
			 | 
		
			#
		 | 
	
	
			
				
	protected
					
					
				
			 | 
			
				array
			 | 
			
$normalize = [
	'general' => [
		'dedicated' => 'dedicated',
		'gametype' => 'game_descr',
		'hostname' => 'hostname',
		'mapname' => 'map',
		'maxplayers' => 'max_players',
		'mod' => 'game_dir',
		'numplayers' => 'num_players',
		'password' => 'password',
	],
	'player' => ['name' => 'name', 'score' => 'score', 'time' => 'time'],
]
				
	
	 
			 | 
		
			#
		 |