| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- /*
- *
- * OGP - Open Game Panel
- * Copyright (C) 2008 - 2018 The OGP Development Team
- *
- * http://www.opengamepanel.org/
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- */
- require_once('modules/gamemanager/home_handling_functions.php');
- require_once("modules/config_games/server_config_parser.php");
- require_once('includes/lib_remote.php');
- function exec_ogp_module()
- {
- global $db;
- $home_id = $_REQUEST['home_id'];
- $mod_id = $_REQUEST['mod_id'];
- // Is admin ??
- $isAdmin = $db->isAdmin( $_SESSION['user_id'] );
- if( $isAdmin )
- $server_home = $db->getGameHome($home_id);
- else
- $server_home = $db->getUserGameHome($_SESSION['user_id'],$home_id);
-
- if ( !$server_home )
- return;
-
- $port = $_REQUEST['port'];
- $ip = $_REQUEST['ip'];
- $server_home['ip'] = $ip;
- $server_home['port'] = $port;
- $stats_players = 0;
- $stats_maxplayers = 0;
- $server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$server_home['home_cfg_file']);
- $xml_installer = $server_xml->installer;
- $mod_name = $server_home['mods'][$mod_id]['mod_name'];
- $mod_key = $server_home['mods'][$mod_id]['mod_key'];
- if (strtolower($mod_name) == "none")
- $mod = $mod_key;
- else
- $mod = $mod_name;
- if ($server_xml->protocol == "gameq")
- $query_name = $server_xml->gameq_query_name;
- elseif ($server_xml->protocol == "lgsl")
- $query_name = $server_xml->lgsl_query_name;
- else
- $query_name = $mod; // If query name does not exist use mod key instead.
- // Check if the screen running the server is running.
- if ($server_xml->protocol == "gameq")
- {
- require('protocol/GameQ/functions.php');
- require_once('protocol/GameQ/GameQMonitor.php');
- }
- else if ($server_xml->protocol == "lgsl")
- {
- require('protocol/lgsl/functions.php');
- require_once('protocol/lgsl/LGSLMonitor.php');
- }
- else if ($server_xml->protocol == "teamspeak3")
- {
- require_once('protocol/TeamSpeak3/TS3Monitor.php');
- }
- else
- {
- // This is here because some servers are not supported by LGSL/GameQ or
- // because we do not have proper support for them yet.
- // With properly supported games this should not needed.
- // (In a perfect world no one would need an insurance.)
- $status = "online";
- $map = $status;
- $maplocation = get_map_path($query_name,$mod,$map);
- @$notifications .= get_lang("query_protocol_not_supported");
- }
- $map_image_upload = '<br><button class="upload-image" id="'.$home_id.'" data-map="'.$map.'" data-mod_id="'.$mod_id.'" onClick="uploadMapImg(this);" >'. get_lang("upload_map_image") .'</button>';
-
- @$map_icon = "<img class='mapicon' src='$maplocation'/>";
- @$currentmap = $map;
-
- //Properties for Specific Status
- if($status == "half" || $status == "online")
- {
- if($status == "online")
- {
- $onlineT = "<div class='map-icon' >";
- $onlineT .= "$map_icon";
- if($isAdmin)
- $onlineT .= "$map_image_upload";
- $onlineT .= "</div>";
- $onlineT .= "<div class='server-info' >";
- @$onlineT .= get_lang("hostname") .": <marquee class='hostname'>" . htmlentities($name) . "</marquee><br />";
- @$onlineT .= get_lang("current_map") . ": " . ((isset($mapRaw) && !empty($mapRaw)) ? htmlentities($mapRaw) : $currentmap);
- $onlineT .= "</div>";
- }
- else if($status == "half")
- {
- @$notifications .= get_lang("failed_querying_server");
- }
- $remote_server_id = $server_home['remote_server_id'];
- $rserver = $db->getRemoteServerById($remote_server_id);
- $remote = new OGPRemoteLibrary($rserver['agent_ip'], $rserver['agent_port'], $rserver['encryption_key'], $rserver['timeout']);
- $startup_file_exists = $remote->rfile_exists( "startups/".$ip."-".$port ) === 1;
- $SrvCtrl = "<table class='srvctrl'><tr><td style='border:0;text-align:center;background:transparent'><a href='?m=gamemanager&p=restart&home_id=".
- $home_id."&mod_id=".$mod_id."&ip=".$ip."&port=".$port.
- "'><img src='" . check_theme_image("images/restart.png") . "' width='64' border='0' alt='". get_lang("restart_server") ."' /><br><b>". get_lang("restart_server") .
- "</b></a></td><td style='border:0;text-align:center;background:transparent'><a href='?m=gamemanager&p=stop&home_id=".
- $home_id."&mod_id=".$mod_id."&ip=".$ip."&port=".$port."'><img src='" . check_theme_image("images/stop.png") . "' width='64' border='0' alt='".
- get_lang("stop_server") ."' /><br><b>". get_lang("stop_server") .
- "</b></a></td></tr></table>";
- }
- //Echo them all
- echo "<div class='monitor-1'>".@$onlineT.@$halfT.@$offlineT."</div>";
- if( $server_xml->protocol != "teamspeak3" OR ($startup_file_exists and $server_xml->protocol == "teamspeak3") )
- echo "<div class='monitor-2 bloc'>".@$SrvCtrl."</div>";
- if(isset($player_list))
- echo "<div class='monitor-3'>".@$player_list."</div>";
- if(isset($notifications))
- echo "<div class='monitor-3 bloc'>".@$notifications."</div>";
- }
- ?>
|