. * */ define("DSI_BASEPATH", "modules/dsi/"); require_once(DSI_BASEPATH . 'includes/functions_ui.php'); require_once('modules/gamemanager/home_handling_functions.php'); require_once('modules/config_games/server_config_parser.php'); require_once('protocol/lgsl/lgsl_protocol.php'); require_once('protocol/GameQ/GameQ.php'); function exec_ogp_module(){ global $db; echo "

".get_lang("dsi_long")."

"; $isAdmin = $db->isAdmin( $_SESSION['user_id'] ); if ( $isAdmin ) $server_homes = $db->getIpPorts(); else $server_homes = $db->getIpPortsForUser($_SESSION['user_id']); if( $server_homes === FALSE ) { // If there are no games, then there can not be any mods either. print_failure( no_game_homes_assigned ); if ( $isAdmin ) { echo "

". get_lang('assign_game_homes')."

"; } return; } echo dsi_select_server; create_home_selector_address($_GET['m'], $_GET['p'], $server_homes); if( isset($_GET['home_id-mod_id-ip-port']) and $_GET['home_id-mod_id-ip-port'] != "") { list( $home_id, $mod_id, $ip, $port) = explode( "-", $_GET['home_id-mod_id-ip-port'] ); if( !is_numeric($home_id) or !is_numeric($mod_id) or !preg_match("/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/", $ip) or !is_numeric($port) ) return; } else return; echo "

"; foreach ((array)$server_homes as $server_home) { if( $server_home['home_id'] == $home_id and $server_home['mod_id'] == $mod_id and $server_home['ip'] == $ip and $server_home['port'] == $port ) { $public_ip = checkDisplayPublicIP($server_home['display_public_ip'], $server_home['ip']); $server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$server_home['home_cfg_file']); $url = false; if ($server_xml->protocol == "lgsl"){ list($c_port, $q_port, $s_port) = lgsl_port_conversion($server_xml->lgsl_query_name, $server_home['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, $server_home['port']); $gq = new 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->requestData(); if(isset($results['gq_joinlink']) and $results['gq_joinlink'] != "") { $url = $results['gq_joinlink']; } else { if($server_xml->installer == "steamcmd") $url = "steam://connect/$public_ip:$server_home[port]"; else $url = "#Notavailable"; } } else if ($server_xml->protocol == "teamspeak3"){ $url = "ts3server://$public_ip:$server_home[port]"; } echo dsi_render_table($server_home["ip"], $server_home["port"], $public_ip, $url); break; } } } ?>