getHomeIpPorts($server_home['home_id']) as $ts3Port) { if($remote->rfile_exists( "startups/".$ts3Port['ip']."-".$ts3Port['port'] ) === 1) $cfg["query"] = $ts3Port['port'] + 24; } if ( $server_home['use_nat'] == 1 ) $cfg["host"] = $server_home['agent_ip']; else $cfg["host"] = $server_home['ip']; try { $ts3_ServerInstance = TeamSpeak3::factory("serverquery://" . $cfg["user"] . ":" . $cfg["pass"] . "@" . $cfg["host"] . ":" . $cfg["query"] . "/?server_port=" . $cfg["voice"] . "#no_query_clients"); if($ts3_ServerInstance->isOnline() == TRUE) { $status = "online"; $startup_file_exists = $remote->rfile_exists( "startups/".$server_home['ip']."-".$server_home['port'] ) === 1; if (isset($_POST['new_ts3_port']) && isPortValid($_POST['new_ts3_port']) && $server_home['home_id'] == $_POST['home_id']) { if (isset($ts3_ServerInstance)) unset($ts3_ServerInstance); $ts3_ServerInstance = TeamSpeak3::factory("serverquery://" . $cfg["user"] . ":" . $cfg["pass"] . "@" . $cfg["host"] . ":" . $cfg["query"] . "/"); $new_port = $_POST['new_ts3_port']; $new_hostname = $_POST['new_ts3_hostname']; $new_players = $_POST['new_ts3_players']; /* add port to home on ogp db */ $AddVirtual = $db->addGameIpPort($server_home['home_id'], $server_home['ip_id'], $new_port); if ($AddVirtual === TRUE) { /* create server using given props */ $FAILURE = FALSE; try { $ts3_ServerInstance->serverCreate(array("virtualserver_name" => "$new_hostname", "virtualserver_maxclients" => $new_players, "virtualserver_port" => $new_port)); } catch(Exception $e) { print_failure($e->getMessage()); $db->delGameIpPort($server_home['home_id'], $server_home['ip_id'], $new_port); $FAILURE = TRUE; } if(!$FAILURE) { $firewall_settings = $db->getFirewallSettings($server_home['remote_server_id']); if ($firewall_settings['status'] == "enable") set_firewall($remote, $firewall_settings, 'allow', $new_port, $server_home['ip']); } $view->refresh("?m=gamemanager&p=game_monitor&home_id-mod_id-ip-port=" . $server_home['home_id'] . "-" . $server_home['mod_id'] . "-" . $server_home['ip'] . "-" . $new_port, 0); } elseif ($AddVirtual === FALSE) { echo "The chosen port is already in use."; } } if(isset($_POST['del_ts3_port']) && $_POST['del_ts3_port'] == $cfg["voice"] AND $server_home['home_id'] == $_POST['home_id'] ) { if( ! $startup_file_exists ) { /* Delete port to home on ogp db */ $del_port = $_POST['del_ts3_port']; $DelVirtual = $db->delGameIpPort($server_home['home_id'], $server_home['ip_id'], $del_port); if ($DelVirtual === TRUE) { if(isset($ts3_ServerInstance)) unset($ts3_ServerInstance); $ts3_ServerInstance = TeamSpeak3::factory("serverquery://" . $cfg["user"] . ":" . $cfg["pass"] . "@" . $cfg["host"] . ":" . $cfg["query"] . "/"); /* stop & remove server using given ID */ $sid = (int)$_POST['id']; if ($sid !== 0) { $ts3_ServerInstance->serverStop($sid); $ts3_ServerInstance->serverDelete($sid); $db->query( "DELETE FROM OGP_DB_PREFIXts3_homes WHERE vserver_id=" . $db->real_escape_string($sid)); } /* refresh */ $view->refresh("?m=gamemanager&p=game_monitor&home_id=" . $server_home['home_id'], 0); } elseif ($DelVirtual === FALSE) echo "Virtual server can not be deleted."; } else echo "The main virtual server can not be deleted."; } $add_remove_virtual = "
| Remove This Virtual Server | |
| Add Virtual Server | |
|---|---|
| Assign This Virtual Server To User | |