/** * Handle the event. * * @param ServersUpdate $event * @return void */ public function handle(ServersUpdate $event) { $servers = Server::all()->where('active', 1); if ($servers) { foreach ($servers as $server) { $data = new SourceQuery(); try { $engine = $server->engine >= 1 ? 1 : 0; $data->Connect($server->ip, $server->port, 3, $engine); $information = $data->GetInfo(); $players = $data->GetPlayers(); $rules = $data->GetRules(); } catch (\Exception $e) { $information = ''; $players = ''; $rules = ''; } $server->information = json_encode($information); $server->players = json_encode($data->GetPlayers($players)); $server->rules = json_encode($data->GetRules($rules)); $server->save(); } } }
private function getlock($match, $model, $serv) { $Query = new SourceQuery(); if (!is_null($serv)) { $server = $serv; } else { $server = $model->getServersByID($match->sid); } /* if (is_null($server)) { return ''; }*/ $addr = explode(':', $server->addr); try { $Query->Connect($addr[0], $addr[1], 1, SourceQuery::SOURCE); $info = $Query->GetInfo(); $players = $info['Players']; $serverLock = $model->getServerLock($match->id, $server->id, INTERVAL_LOCK); if ($players == 0 && is_null($serverLock)) { return 'Go to our server : ' . $server->addr . ' <a href="steam://connect/' . $server->addr . '" id="join" title="Join">Join</a>'; } } catch (Exception $e) { return ' Error: ' . $e->getMessage(); //echo $e->getMessage(); } finally { $Query->Disconnect(); } return ' Error: Server not found'; }
use xPaw\SourceQuery\SourceQuery; // Edit this -> define('SQ_SERVER_ADDR', 'localhost'); define('SQ_SERVER_PORT', 27015); define('SQ_TIMEOUT', 3); define('SQ_ENGINE', SourceQuery::SOURCE); // Edit this <- $Timer = MicroTime(true); $Query = new SourceQuery(); $Info = array(); $Rules = array(); $Players = array(); try { $Query->Connect(SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE); //$Query->SetUseOldGetChallengeMethod( true ); // Use this when players/rules retrieval fails on games like Starbound $Info = $Query->GetInfo(); $Players = $Query->GetPlayers(); $Rules = $Query->GetRules(); } catch (Exception $e) { $Exception = $e; } finally { $Query->Disconnect(); } $Timer = Number_Format(MicroTime(true) - $Timer, 4, '.', ''); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Source Query PHP Library</title>
<?php require __DIR__ . '/../SourceQuery/bootstrap.php'; use xPaw\SourceQuery\SourceQuery; // For the sake of this example Header('Content-Type: text/plain'); Header('X-Content-Type-Options: nosniff'); // Edit this -> define('SQ_SERVER_ADDR', '162.251.166.186'); define('SQ_SERVER_PORT', 27016); define('SQ_TIMEOUT', 1); define('SQ_ENGINE', SourceQuery::SOURCE); // Edit this <- $Query = new SourceQuery(); try { $Query->Connect(SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE); print_r($Query->GetInfo()); print_r($Query->GetPlayers()); print_r($Query->GetRules()); } catch (Exception $e) { echo $e->getMessage(); } finally { $Query->Disconnect(); }
public function startServer($model, $match) { $servers = $model->getServersList(); //Header('Content-Type: text/plain'); //Header('X-Content-Type-Options: nosniff'); //define('SQ_TIMEOUT', 1); //define('SQ_ENGINE', SourceQuery::SOURCE); $Query = new SourceQuery(); foreach ($servers as $server) { $addr = explode(':', $server->addr); //define('SQ_SERVER_ADDR', $addr[0]); //define('SQ_SERVER_PORT', $addr[1]); try { $Query->Connect($addr[0], $addr[1], 1, SourceQuery::SOURCE); $info = $Query->GetInfo(); $players = $info['Players']; //print_r($Query->GetInfo()); //print_r($Query->GetPlayers()); //print_r($Query->GetRules()); $serverLock = $model->getServerLock($server->id, INTERVAL_LOCK); if ($players == 0 && is_null($serverLock)) { //$response['target_h']['#map_note'] = 'Go to our '. var_export($server->addr, true). ' '. var_export($match->id, true); $response['target_h']['#map_note'] = 'Go to our server : ' . $server->addr . ' <a href="steam://connect/' . $server->addr . '" id="join" title="Join">Join</a>'; $model->setMatchServer($match->id, $server->id); //update matches with server id break; } } catch (Exception $e) { $response['target_h']['#map_note'] = 'error: ' . $e->getMessage(); //echo $e->getMessage(); } finally { $Query->Disconnect(); } } }