getNumberOfOwnedServersPerUser( $_SESSION['user_id'] );
else
$num_of_servers = 0;
if(isset($settings['query_num_servers_stop']) && is_numeric($settings['query_num_servers_stop']))
$numberservers_to_skip_query = $settings['query_num_servers_stop'];
else
$numberservers_to_skip_query = 15;
if($num_of_servers < $numberservers_to_skip_query)
{
if ( $server_home['use_nat'] == 1 )
$internal_query_ip = $server_home['agent_ip'];
else
$internal_query_ip = $server_home['ip'];
$query_cache_life = ( isset($settings['query_cache_life']) and is_numeric($settings['query_cache_life']) )? $settings['query_cache_life'] : 30;
$ip_id = $db->getIpIdByIp($server_home['ip']);
$statusCache = $db->getServerStatusCache($ip_id,$port);
if( !empty($statusCache) AND date('YmdHis',$statusCache['date_timestamp'] + $query_cache_life) >= date('YmdHis') )
{
$results = $statusCache;
}
else
{
require_once 'protocol/GameQ/Autoloader.php';
$port = $server_home['port'];
$query_port = get_query_port($server_xml, $port);
$gq = new \GameQ\GameQ();
$server = array(
'id' => 'server',
'type' => $server_xml->gameq_query_name,
'host' => $internal_query_ip . ":" . $query_port,
);
$gq->addServer($server);
$gq->setOption('timeout', 4);
$gq->setOption('debug', FALSE);
$gq->addFilter('normalise');
$results = $gq->process();
$db->saveServerStatusCache($ip_id,$port,$results);
}
if($results['server']['gq_online'] == 1)
{
$status = "online";
// Some functions to print the results
$players = $results['server']['gq_numplayers'];
$playersmax = $results['server']['gq_maxplayers'];
$name = $results['server']['gq_hostname'];
$map = preg_replace("/[^a-z0-9_]/", "_", strtolower(@(string)$results['server']['gq_mapname']));
//----------+ patches for voice servers (ts2, ts3, ventrilo)
if(!$map)$map = $results['server']['gq_type'];
if(!$players)$players = 0;
@$stats_players += $players; // COUNT VISIBLE NUMBER OF PLAYERS
@$stats_maxplayers += $playersmax; // COUNT VISIBLE NUMBER OF SLOTS
if ( $results['server']['gq_numplayers'] > 0 )
$player_list = print_player_list_gameq($results['server']['players'],$players,$playersmax);
if(isset($results['gq_joinlink']) and $results['gq_joinlink'] != "")
$address = "$ip:$port";
elseif($server_xml->installer == 'steamcmd')
$address = "$ip:$port";
else
$address = "$ip:$port";
$playersList = $results['server']['players'];
$maplocation = get_map_path($query_name,$mod,$map);
}
else
$status = "half";
}
else
{
$status = "half";
$notifications = get_lang_f('queries_disabled_by_setting_disable_queries_after',$numberservers_to_skip_query,$num_of_servers);
}
?>