/** * Смена rcon пароля * */ function change_rcon($rcon_password = '') { $this->CI->load->helper('ds'); $this->CI->load->helper('string'); $server_data =& $this->CI->servers->server_data; $dir = get_ds_file_path($server_data); $file = $dir . 'server.properties'; // Конфиг файл $file_contents = read_ds_file($file, $server_data); /* Ошибка чтения, либо файл не найден */ if (!$file_contents) { return false; } $file_contents = change_value_on_file($file_contents, 'rcon.password', $rcon_password); $write_result = write_ds_file($file, $file_contents, $server_data); return $write_result; }
private function _get_ds_file_path($server = array()) { return get_ds_file_path($server); }
/** * Смена rcon пароля * */ function change_rcon($rcon_password = '') { $this->CI->load->helper('ds'); $this->CI->load->helper('string'); $server_data =& $this->CI->servers->server_data; $dir = get_ds_file_path($server_data); $file = $dir . $this->CI->servers->server_data['start_code'] . '/cfg/server.cfg'; // Конфиг файл $file_contents = read_ds_file($file, $server_data); /* Ошибка чтения, либо файл не найден */ if (!$file_contents) { return false; } $file_contents = change_value_on_file($file_contents, 'rcon_password', $rcon_password); $write_result = write_ds_file($file, $file_contents, $server_data); /* Отправляем новый rcon пароль в консоль сервера*/ if ($write_result && $this->CI->servers->server_status($this->CI->servers->server_data['server_ip'], $this->CI->servers->server_data['server_port'])) { $rcon_connect = $this->connect(); $this->command('rcon_password ' . $rcon_password); } return $write_result; }
/** * ФУНКЦИЯ УСТАРЕЛА! * Получает список карт * */ function get_server_maps() { $this->load->helper('path'); $this->load->helper('ds'); $this->load->helper('date'); if (strtolower($this->server_data['engine']) != 'goldsource' && strtolower($this->server_data['engine']) != 'source') { return; } /* Получаем список карт из базы (своеобразный кеш)*/ $maps_cache = json_decode($this->server_data['maps_list'], true); /* Если списку не более суток */ if ($maps_cache && $maps_cache['time'] > now() - 86400) { unset($maps_cache['time']); // Удаляем time элемент $maps_cache['from_cache'] = 1; return $maps_cache; } // Если в пути пусто, то никаких карт if (empty($this->server_data['maps_path'])) { return; } $file_path = get_ds_file_path($this->server_data); $files_list = list_ds_files($file_path . '/' . $this->server_data['maps_path'], $this->server_data); /* Сортировка массива с файлами по возрастанию * * Применена пользовательская сортировка по функции uasort_asc * которая чуть ниже. Сортировка происходит по file_name * в массиве */ if (!empty($files_list)) { asort($files_list); $maps = array(); /* Перебор карт, и удаление расширения файла */ foreach ($files_list as $file) { $extension = pathinfo($file, PATHINFO_EXTENSION); if ($extension != 'bsp') { continue; } $maps[]['map_name'] = str_replace('.bsp', '', basename($file)); } return $maps; } else { return NULL; } }
/** * Правка конфигурационных файлов */ public function change_config() { $CI =& get_instance(); $file = 'server.properties'; $dir = get_ds_file_path($this->server_data); $file_contents = read_ds_file($dir . $file, $this->server_data); // Костыль. Меняет права файла на 666 if (strtolower($this->_os) != 'windows') { send_command('chmod 666 {dir}/server.properties', $this->server_data); } // Установка портов $file_contents = change_value_on_file($file_contents, 'server-port', $this->server_data['server_port']); $file_contents = change_value_on_file($file_contents, 'query.port', $this->server_data['query_port']); $file_contents = change_value_on_file($file_contents, 'rcon.port', $this->server_data['rcon_port']); // Включение query и rcon $file_contents = change_value_on_file($file_contents, 'enable-query', 'true'); $file_contents = change_value_on_file($file_contents, 'enable-rcon', 'true'); $write_result = write_ds_file($dir . $file, $file_contents, $this->server_data); return true; }
/** * Удаление файла */ public function delete_file($server_id = 0) { if (!$this->_check_server($server_id)) { $this->_send_error($this->_error); return; } $this->form_validation->set_rules('dir', lang('directory'), 'trim|xss_clean'); $this->form_validation->set_rules('file', lang('file'), 'trim|required|xss_clean'); if ($this->form_validation->run() == false) { if (validation_errors()) { $this->_send_error(lang('web_ftp_form_error')); return false; } } $loc_dir = $this->_two_point_delete($this->input->post('dir', true)); $loc_file = $this->_two_point_delete($this->input->post('file', true)); $file = get_ds_file_path($this->servers->server_data) . '/' . $loc_dir . '/' . $loc_file; // Данные для соединения $config = get_file_protocol_config($this->servers->server_data); try { $this->files->set_driver($config['driver']); $this->files->connect($config); $file_content = $this->files->delete_file($file); } catch (exception $e) { $this->_send_error($e->getMessage()); return; } $this->_send_response(array('status' => 1)); }
/** * Правка конфигурационных файлов */ public function change_config() { $CI =& get_instance(); $file = 'server.cfg'; $dir = get_ds_file_path($this->server_data); $file_contents = read_ds_file($dir . $file, $this->server_data); // Костыль. Меняет права файла на 666 if (strtolower($this->_os) != 'windows') { send_command('chmod 666 {dir}/server.cfg', $this->server_data); } // Установка портов $file_contents = change_value_on_file($file_contents, 'port', $this->server_data['server_port']); $file_contents = change_value_on_file($file_contents, 'rcon_password', random_string('alnum', 8)); $write_result = write_ds_file($dir . $file, $file_contents, $this->server_data); return true; }
/** * Правка конфигурационных файлов */ public function change_config() { $CI =& get_instance(); $server_data = $this->server_data; $file = 'mods/deathmatch/mtaserver.conf'; $dir = get_ds_file_path($server_data); $file_contents = read_ds_file($dir . $file, $server_data); $file_contents = change_value_on_file($file_contents, 'serverip', $server_data['server_ip']); // Установка портов $file_contents = change_value_on_file($file_contents, 'serverport', $server_data['server_port']); $file_contents = change_value_on_file($file_contents, 'httpport', $server_data['server_port']); $write_result = write_ds_file($dir . $file, $file_contents, $server_data); // Обновление Query порта //~ $sql_data['query_port'] = $server_data['server_port'] + 123; //~ $CI->servers->edit_game_server($server_data['id'], $sql_data); return true; }