Skip to content

Instantly share code, notes, and snippets.

@csprance
Created July 12, 2018 22:59
Show Gist options
  • Save csprance/eeca5022a2205195069b86cad33b1993 to your computer and use it in GitHub Desktop.
Save csprance/eeca5022a2205195069b86cad33b1993 to your computer and use it in GitHub Desktop.
<?php
// Return JSON
header('Content-Type: application/json');
error_reporting(0);
// Cache
require_once 'vendor/autoload.php';
$longcache = new Gilbitron\Util\SimpleCache();
$longcache->cache_path = 'cache/';
$longcache->cache_time = 3600;
require 'vendor/koraktor/steam-condenser/lib/steam-condenser.php';
// Steam Query
$master = SourceServer::getMaster();
$servers = $master->getServers(MasterServer::REGION_ALL, '\appid\299740', true);
// Init the array we return
$serversWrapArray = Array();
// Find out if we have any cached date
if ($json = $longcache->get_cache('servers')) {
//if it exists sweet! Echo that shit out!
echo $json;
} else {
// Otherwise go and get it all and then save it
foreach ($servers as $key => $value) {
try {
$serversInfoArray = Array();
$ip = $value[0];
$port = $value[1];
// Create instance of SourceServer using IP info collected from
$server = new SourceServer($ip, $port);
$serverInfo = $server->getServerInfo();
// Server Name
// Official Miscreated | TrinityGames.com USFL1
$serverRetArray[0] = $serverInfo['serverName'];
// Map Name
// islands
$serverRetArray[1] = $serverInfo['mapName'];
// Number of Players
// 13
$tempvar = explode(';', $serverInfo['serverTags']);
$numval = intval($tempvar[1]);
$serverRetArray[2] = $numval;
// Max Number of Players
// 32
$serverRetArray[3] = intval($serverInfo['maxPlayers']);
// Time Of Day
// 05:50
$tempvar = explode(';', $serverInfo['serverTags']);
$serverRetArray[4] = $tempvar[0];
// Server Ip
$serverRetArray[5] = $ip;
// port
$serverRetArray[6] = $port;
// Server Version Info
$serverRetArray[7] = $serverInfo['gameDesc'];
// Unused Array Data - Possible Values
//
//$serverRetArray['ip'] = $ip;
//$serverRetArray['ping'] = $server->getPing();
//$serverRetArray['networkVersion'] = $serverInfo['networkVersion'];
//$serverRetArray['gameDir'] = $serverInfo['gameDir'];
//$serverRetArray['gameDesc'] = $serverInfo['gameDesc'];
//$serverRetArray['appId'] = $serverInfo['appId'];
//$serverRetArray['numberOfPlayers'] = $serverInfo['numberOfPlayers'];
//$serverRetArray['botNumber'] = $serverInfo['botNumber'];
//$serverRetArray['dedicated'] = $serverInfo['dedicated'];
//$serverRetArray['operatingSystem'] = $serverInfo['operatingSystem'];
//$serverRetArray['passwordProtected'] = $serverInfo['passwordProtected'];
//$serverRetArray['secureServer'] = $serverInfo['secureServer'];
//$serverRetArray['gameVersion'] = $serverInfo['gameVersion'];
//$serverRetArray['serverPort'] = $serverInfo['serverPort'];
//$serverRetArray['serverId'] = $serverInfo['serverId'];
//$serverRetArray['serverTags'] = $serverInfo['serverTags'];
//$serverRetArray['gameId'] = $serverInfo['gameId'];
// push it to our returned array
array_push($serversWrapArray, $serverRetArray);
} catch (Exception $exception) {
}
}
// convert to json
$json = json_encode($serversWrapArray, JSON_NUMERIC_CHECK);
// Spit it out
echo $json;
// set the cached data here. We may need to do some checking on some of these to exclude them
$longcache->set_cache('servers', $json);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment