Thursday, June 04, 2026 12:03:29 AM
> updateServers.php
<?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( );
  	}
  }
?>
All opinions represented herein are my own
- © 2024 - 2026 itsthedevman
- build 4294fb2