Example #1
0
 /**
  * Смена 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;
 }
Example #2
0
 private function _get_ds_file_path($server = array())
 {
     return get_ds_file_path($server);
 }
Example #3
0
 /**
  * Смена 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;
 }
Example #4
0
 /**
  * ФУНКЦИЯ УСТАРЕЛА!
  * Получает список карт
  * 
  */
 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;
 }
Example #6
0
 /**
  * Удаление файла
  */
 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));
 }
Example #7
0
 /**
  * Правка конфигурационных файлов
  */
 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;
 }
Example #8
0
 /**
  * Правка конфигурационных файлов
  */
 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;
 }