getIpPorts();
echo "
".get_lang("dsi_list")."
\n";
if ( isset($_GET['home_id-mod_id-ip-port']) AND $_GET['home_id-mod_id-ip-port'] == "" )
unset( $_GET['home_id-mod_id-ip-port'] );
echo get_lang("dsi_select_server");
if (!isset($_GET['home_id-mod_id-ip-port']) and !$online)
{
create_home_selector_address($_GET['m'], $_GET['p'], $server_homes);
$show_all = TRUE;
}
else
{
create_home_selector_address($_GET['m'], $_GET['p'], $server_homes);
create_home_selector($_GET['m'], $_GET['p'], "show_all");
$show_all = FALSE;
}
$qty = count((array)$server_homes);
$cols = 1;
if ( ( $qty >= 4 && $qty < 17 ) OR isset($_GET['home_id-mod_id-ip-port']) )
{
$cols = 4;
$type = "sky";
}
else
{
$type = "normal";
}
if ( $qty >= 17 ) $cols = 2;
$counter = 1;
echo $show_all ? "\n\n".
"
\n" : "";
$servers = 0;
$servers_running = 0;
foreach ((array)$server_homes as $server_home)
{
$servers++;
// Get display IP
$public_ip = checkDisplayPublicIP($server_home['display_public_ip'],$server_home['ip'] != $server_home['agent_ip'] ? $server_home['ip'] : $server_home['agent_ip']);
$remote = new OGPRemoteLibrary($server_home['agent_ip'], $server_home['agent_port'], $server_home['encryption_key'], $server_home['timeout']);
$screen_running = $remote->is_screen_running(OGP_SCREEN_TYPE_HOME,$server_home['home_id']) === 1;
if($screen_running) $servers_running++;
if( ( $online and $screen_running ) OR ( isset( $_GET['home_id-mod_id-ip-port'] )
and $_GET['home_id-mod_id-ip-port'] ==
$server_home['home_id'].'-'.$server_home['mod_id'].'-'.
$server_home['ip'].'-'.$server_home['port'] ) OR ( !$online and $show_all ) )
{
$port = $server_home['port'];
$url = false;
$server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$server_home['home_cfg_file']);
if ($server_xml->protocol == "lgsl"){
list($c_port, $q_port, $s_port) = lgsl_port_conversion($server_xml->lgsl_query_name, $port, "", "");
$url = lgsl_software_link($server_xml->lgsl_query_name, $public_ip, $c_port, $q_port, $s_port);
}
else if ($server_xml->protocol == "gameq"){
$query_port = get_query_port($server_xml, $port);
$gq = new \GameQ\GameQ();
$server = array(
'id' => 'server',
'type' => $server_xml->gameq_query_name,
'host' => $public_ip . ":" . $query_port,
);
$gq->addServer($server);
$gq->setOption('timeout', 1);
$gq->setOption('debug', FALSE);
$results = $gq->process();
if(isset($results['gq_joinlink']) and $results['gq_joinlink'] != "")
{
$url = $results['gq_joinlink'];
}
else
{
if($server_xml->installer == "steamcmd")
$url = "steam://connect/$public_ip:$port";
else
$url = "#Notavailable";
}
}
else if ($server_xml->protocol == "teamspeak3"){
$url = "ts3server://$public_ip:$port";
}
if ($cols != 4 && $cols != 1 && $counter == $cols)
{
$side = "left";
}
elseif ($cols != 4 && $cols != 1)
{
$side = "right";
}
else
{
$side = "center";
}
if( isset($_GET['home_id-mod_id-ip-port']) )
{
$side = "center";
}
if( isset($_GET['home_id-mod_id-ip-port']) )
{
$output .= dsi_render_table($server_home["ip"], $server_home["port"], $url, FALSE, TRUE);
}
else
{
$output .= dsi_render_table($server_home["ip"], $server_home["port"], $url, FALSE, FALSE, FALSE, $screen_running, TRUE, $type);
}
if ($counter == $cols)
{
$output .= "\t\n\t\n";
$counter = 1;
}
else
{
$counter++;
}
}
}
if( ($online and $servers_running > 0) OR ( !$online and $servers > 0) )
echo "\n".
"\n".
"\n";
}
?>