gameq_query_name and $server_xml->gameq_query_name == "minecraft" ) { include_once("MinecraftRcon.class.php"); $server_properties_file = clean_path($home_info['home_path']."/server.properties"); $retval = $remote->remote_readfile($server_properties_file, $data); if($retval == 1 and strpos($data, 'rcon.port') !== FALSE) { $server_properties = parse_ini_string($data); $rcon_port = $server_properties['rcon.port']; } else { $rcon_port = $port+10; } $rcon = new MinecraftRcon; if( $rcon->Connect($ip, $rcon_port, $home_info['control_password']) ) { $return = $rcon->Command($command); if($return) return $return; else return FALSE; $rcon->Disconnect(); } else return get_lang("need_set_remote_pass") . " " . $home_info['home_name'] . " " . get_lang("before_sending_rcon_com"); } elseif( $server_xml->lgsl_query_name and $server_xml->lgsl_query_name == "7dtd" ) { $query_port = $port + 1; $return = $remote->exec('exec 3<>/dev/tcp/'.$ip.'/'. $query_port .' && echo -en "'.$command.'\\nexit\\n" >&3 && cat <&3'); if(preg_match("/Connected with 7DTD server/",$return)) return $return; else return FALSE; } else { $remote_retval = $remote->remote_send_rcon_command( $home_id, $ip, $port, $server_xml->control_protocol, $home_info['control_password'],$server_xml->control_protocol_type,$command,$return); if ( $remote_retval === 1 ) return $return; elseif ( $remote_retval === -10 ) return get_lang("need_set_remote_pass") . " " . $home_info['home_name'] . " " . get_lang("before_sending_rcon_com"); else return FALSE; } } if(isset($_POST['command']) and !is_array($_POST['command'])) $_POST['command'] = array( '0' => stripcslashes($_POST['command']) ); elseif(isset($_POST['base64_command'])) { foreach($_POST['base64_command'] as $key => $command) { $_POST['command'][$key] = isset($_POST['input']) ? str_replace("%input%", $_POST['input'], base64_decode($command)) : base64_decode($command); } } $presets = $db->getRconPresets($home_info['home_cfg_id'],$home_info['mods'][$mod_id]['mod_cfg_id']); if($presets > 0) { echo '
'. get_lang("rcon_presets") . ': '; echo '
'; } ?>
' />

" . get_lang("rcon_command_title") . ": [" . htmlentities(implode(" | ", $_POST['command'])) . "] " . get_lang("has_sent_to") . " " . $home_info['home_name'] . "

" . $response . ""; } } if($server_xml->list_players_command) { if(isset($_GET['view_player_commands'])) { $response = send_command($server_xml->list_players_command, $remote, $server_xml, $home_info, $home_id, $ip, $port ); if($response and $response != "") { preg_match_all($server_xml->player_info_regex, $response, $matches); if(!empty($matches[0])) { $data = array(); $infos = array(); $commands = array(); foreach($server_xml->player_info->index as $index ) { $i = 0; $key = (string)$index['key']; $name = (string)$index; $infos[] = $name; foreach($matches[$key] as $info) { $data[$i][$name] = $info; $i++; } } foreach($server_xml->player_commands->command as $command) { $name = (string)$command['key']; $commands[] = $name; $default = (string)$command->default ? (string)$command->default : ""; $options = array(); if($command->option) { foreach($command->option as $option) $options[(string)$option] = (string)$option['value']; } $actions = array(); $replacements = array(); foreach($command->string as $action) { preg_match_all("#%(\w*)%#", (string)$action, $replace); $replacements[] = $replace; $actions[] = (string)$action; } $replaced_actions = array(); for($id = 0; $id < $i; $id++) { foreach($actions as $key => $action) { foreach($replacements[$key][1] as $index) { if(isset($data[$id][$index]) and $index != 'input') { $action = str_replace("%$index%", $data[$id][$index], $action); } } $replaced_actions[$key] = base64_encode($action); } $data[$id]['commands'][$name] = array('actions' => $replaced_actions, 'type' => (string)$command['type'], 'default' => $default, 'options' => $options); } unset($actions); } $headers = array_merge( $infos, $commands ); $player_actions_table = "\n\n"; foreach($headers as $name) { $player_actions_table .= ""; } $player_actions_table .= "\n\n\n"; foreach($data as $player) { $player_actions_table .= "\n"; foreach($infos as $info) { $player_actions_table .= "\n"; } foreach($commands as $command) { $actions = $player['commands'][$command]['actions']; $type = $player['commands'][$command]['type']; $default = $player['commands'][$command]['default']; $options = $player['commands'][$command]['options']; /* echo ""; print_r($player['commands'][$command]['actions']); echo "
"; */ $player_actions_table .= "\n"; } $player_actions_table .= "\n"; } $player_actions_table .= "\n
$name
".htmlentities($player[$info])."\n
\n"; if($type == 'hidden') { foreach($actions as $key => $action) $player_actions_table .= "\n"; } elseif($type == 'text') { foreach($actions as $key => $action) $player_actions_table .= "\n"; $player_actions_table .= "\n"; } elseif($type == 'select') { foreach($actions as $key => $action) $player_actions_table .= "\n"; $player_actions_table .= ""; } $player_actions_table .= "\n". "
\n
\n"; echo $player_actions_table; } else print_failure( get_lang("no_online_players") ); } echo "
". "". "". ""; if(isset($_GET['setInterval'])) echo ""; if(isset($_GET['size'])) echo ""; echo "". "
"; } else { echo "
". "". "". ""; if(isset($_GET['setInterval'])) echo ""; if(isset($_GET['size'])) echo ""; echo "". "
"; } } ?>