<?php
/*
Bryan
Exile Server Manager
*/
require "config/config.php";
require 'SourceQuery/bootstrap.php';
use xPaw\SourceQuery\SourceQuery;
foreach ($SERVERS as $key => $value)
{
$Query = new SourceQuery();
try
{
$Query->Connect($SERVERS[$key]["ip"], $SERVERS[$key]["port"] + 1, 1, SourceQuery::SOURCE );
$info = $Query->GetInfo();
if (Is_Array($info))
{
// Save this in case the server goes down
$_SESSION[$key . "name"] = $info["HostName"];
$SERVERS[$key]["name"] = $info["HostName"];
$SERVERS[$key]["map"] = $info["Map"];
$SERVERS[$key]["online_players"] = $info["Players"];
$SERVERS[$key]["max_players"] = $info["MaxPlayers"];
$SERVERS[$key]["password_protected"] = $info["Password"] == 1 ? "Yes" : "No";
$SERVERS[$key]["server_version"] = $info["Version"];
$SERVERS[$key]["status"] = 1;
}
}
catch( Exception $e )
{
$SERVERS[$key]["status"] = 0;
$SERVERS[$key]["map"] = "";
$SERVERS[$key]["online_players"] = 0;
$SERVERS[$key]["max_players"] = 0;
$SERVERS[$key]["password_protected"] = "";
$SERVERS[$key]["server_version"] = "";
$serverName = "Failed to query server";
// Attempt to grab the name from the session, then the DB, if not, default to we couldn't query the server
if (isset($_SESSION[$key . "name"]))
{
$serverName = $_SESSION[$key . "name"];
}
else
{
$result = mysqli_fetch_assoc(mysqli_query($esm_db, "SELECT name FROM servers WHERE server_key = '$key'"));
if ($result["name"] !== "")
{
$serverName = $result["name"];
}
}
$SERVERS[$key]["name"] = $serverName;
}
finally
{
$Query->Disconnect( );
}
}
?>