getGameHomeWithoutMods($home_id); $game_key = $server_row["game_key"]; $readable_game_key = substr($game_key, 0, stripos($game_key, "_")); $readable_game_key = strtolower($readable_game_key); if ( empty($server_row) ) { print_failure(get_lang('invalid_home_id')); return; } echo "

".get_lang_f('cloning_home',htmlentities($server_row['home_name']))."

"; echo create_back_button('user_games'); include_once('includes/lib_remote.php'); $remote = new OGPRemoteLibrary($server_row['agent_ip'],$server_row['agent_port'],$server_row['encryption_key'],$server_row['timeout']); if(isset($_REQUEST['clone_home'])) { $server_name = $_POST['new_home_name']; $user_group = $_POST['user_group']; $web_user = $db->getUserById($server_row['user_id_main']); $web_user = $web_user["users_login"]; // Game path logic $game_path = "/home/".$server_row['ogp_user']."/OGP_User_Files/"; // Default $skipId = false; if(hasValue($default_home_dir)){ $game_path = $default_home_dir; $game_path = str_replace("{USERNAME}", $web_user, $game_path); // Replace some user supported variables with actual value. if(stripos($game_path, "{SKIPID}") !== false){ $skipId = true; } $game_path = str_replace("{SKIPID}", "", $game_path); $game_path = str_replace("{GAMEKEY}", $readable_game_key, $game_path); } if($game_path[strlen($game_path)-1] != "/"){ // Make sure the path ends with forward slash $game_path .= "/"; } $game_path = clean_path($game_path); // Clean it // End game path logic $clone_home_id = $db->addGameHome($server_row['remote_server_id'], $server_row['user_id_main'], $server_row['home_cfg_id'], $game_path, $server_name, '', genRandomString(8), $skipId); $server_path = $game_path; if(!$skipId) $server_path .= $clone_home_id; // Create new home directory if it doesn't already exist $remote->exec("mkdir -p " . clean_path($server_path)); if ( $clone_home_id === FALSE ) { print_failure(get_lang_f('cloning_of_home_failed',$home_id)); return; } if( isset($_REQUEST['clone_mods']) ) { $enabled_mods = $db->getHomeMods($home_id); if( empty($enabled_mods) ) { print_failure(get_lang('note').": ".get_lang('no_mods_to_clone')); } else { foreach ( $enabled_mods as $enabled_rows ) { if ( $db->addModToGameHome($clone_home_id, $enabled_rows['mod_cfg_id']) === FALSE ) { print_failure(get_lang_f('failed_to_add_mod',$enabled_rows['mod_cfg'], $clone_home_id)); return; } if ( $db->updateGameModParams($enabled_rows['max_players'], $enabled_rows['extra_params'],$enabled_rows['cpu_affinity'], $enabled_rows['nice'],$clone_home_id, $enabled_rows['mod_cfg_id']) === FALSE ) { print_failure(get_lang_f('failed_to_update_mod_settings',$clone_home_id)); return; } } print_success(get_lang_f('successfully_cloned_mods',$clone_home_id)); } } print_success(get_lang('successfully_copied_home_database')); # do the remote copy call here echo "

".get_lang_f('copying_home_remotely',$server_row['home_path'],$server_path)."

"; $db->logger(get_lang_f('copying_home_remotely',$server_row['home_path'],$server_path)); $clone_rc = $remote->clone_home($server_row['home_path'],$server_path,$user_group); if($clone_rc == -1) { print_success(get_lang('game_server_copy_is_running')); ?>
0%
<< ".get_lang('back_to_game_servers').""; return; } // Form to edit game path. $avail_mods = $db->getHomeMods($home_id); $read_status = $remote->remote_readfile('/etc/passwd', $passwd_array); if ( $read_status === -1 ) { print_failure(get_lang('agent_offline')); return; } else if ( $read_status == 1 ) { $passwd_array = preg_split("/\n/",$passwd_array); } require_once("includes/form_table_class.php"); $ft = new FormTable(); $ft->start_form('?m=user_games&p=clone'); $ft->add_field_hidden('home_id',$home_id); $ft->start_table(); $ft->add_custom_field('agent_ip',$server_row['agent_ip']); $ft->add_custom_field('current_home_path',$server_row['home_path']); $ft->add_field('string','new_home_name',htmlentities($server_row['home_name'])); echo "".get_lang('clone_mods').": "; echo ""; echo ""; $ft->add_button('submit','clone_home',get_lang('clone_home')); echo "

".get_lang('the_name_of_the_server_to_help_users_to_identify_it')."

"; echo ""; echo "

".get_lang('ips_and_ports_used_in_this_home')."

"; echo "

".get_lang('note_ips_and_ports_are_not_cloned')."

"; $assigned = $db->getHomeIpPorts($home_id); if( !empty($assigned) ) { foreach ( $assigned as $assigned_rows ) { echo "

".$assigned_rows['ip'].":".$assigned_rows['port']."

\n"; } } $enabled_mods = $db->getHomeMods($home_id); echo "

".get_lang('mods_and_settings_for_this_game_server')."

"; if( empty($enabled_mods) ) { print_failure(get_lang('note').": ".get_lang('note_no_mods')); return; } echo "\n"; echo "\n"; foreach ( $enabled_mods as $enabled_rows ) { echo ""; echo ""; echo ""; echo ""; echo ""; echo "\n"; } echo "
".get_lang('mod_name')."". get_lang('max_players')."". get_lang('extra_cmd_line_args')."". get_lang('cpu_affinity')."". get_lang('nice_level')."
".$enabled_rows['mod_name']."".$enabled_rows['max_players']."".$enabled_rows['extra_params']."".$enabled_rows['cpu_affinity']."".$enabled_rows['nice']."
\n"; } ?>