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 = ""; if(!$startup_file_exists) $add_remove_virtual .= ""; if($startup_file_exists) $add_remove_virtual .= ""; // Teamspeak3 Admin $TS3Admin_installed = $db->isModuleInstalled('TS3Admin'); if( $TS3Admin_installed ) { if(isset($_POST['assign_to_user']) && (int)$_POST['vserver_id'] == $ts3_ServerInstance->getId() AND $server_home['remote_server_id'] == $_POST['remote_server_id'] ) { $query_ip = $server_home['use_nat'] == 1 ? $server_home['agent_ip'] : $server_home['ip']; $db->query("INSERT INTO OGP_DB_PREFIXts3_homes (`rserver_id`, `ip`, `pwd`, `vserver_id`, `user_id`, `port`) VALUES ('".$server_home['remote_server_id']."', '".$query_ip."', '".$cfg["pass"]."', '".(int)$_POST['vserver_id']."', '".$db->real_escape_string($_POST['assign_to_user'])."', '".$cfg['query']."');"); } if(isset($_POST['remove_vuser_id']) && (int)$_POST['vserver_id'] == $ts3_ServerInstance->getId() AND $server_home['remote_server_id'] == (int)$_POST['remote_server_id'] ) { $db->query( "DELETE FROM OGP_DB_PREFIXts3_homes WHERE vserver_id='" . (int)$_POST['vserver_id'] . "' AND user_id='".(int)$_POST['remove_vuser_id']."' AND rserver_id='".(int)$_POST['remote_server_id']."';" ); } $add_remove_virtual .= ""; $ts3vservers = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXts3_homes WHERE vserver_id='".$ts3_ServerInstance->getId()."' AND rserver_id=".$server_home['remote_server_id'] ); if($ts3vservers) { $ts3vuserlist = "TeamSpeak 3
"; foreach($ts3vservers as $ts3vserver) { $ts3vuser = $db->getUserById($ts3vserver['user_id']); $ts3vuserlist .= " ".$ts3vuser['users_login']." "; } } else $ts3vuserlist = ""; } $add_remove_virtual .= "
Remove This
Virtual Server
Add Virtual Server
Assign This Virtual
Server To User
"; // Full Teamspeak3 Management $ts3_installed = $db->isModuleInstalled('teamspeak3'); if($ts3_installed and $startup_file_exists) { $ts3_full = "
"; } @$ts3opt = "$ts3_full$add_remove_virtual"; unset($ts3_full); unset($add_remove_virtual); $groupsus .= $ts3vuserlist; } } catch(Exception $e) { $status = "half"; $order=2; } ?>