rendered paste body<?php
class GameserversDefinition extends FAModelDefinition {
function getPrimaryKey() {
return 'id_gameserver';
}
function getTable() {
return 'gameserver';
}
function getSelectOrder() {
return 'address ASC';
}
}
class GameserversRecord extends FARecord {
var $_settings;
function GameserversRecord(&$dba, &$def, &$finder, &$model, $current = array()) {
$constructor = get_parent_class($this);
parent::$constructor($dba, $def, $finder, $model, $current);
$data = &$this->_data;
$server = &$this->_server;
$this->set('name', $data->get('sv_hostname'));
$this->set('full_address', $server->getAddress());
$this->set('data', $data->getRawData());
$this->set('online_players', count($data->getPlayers()));
$this->set('max_players', $data->get('sv_maxclients'));
$this->set('mod', $data->get('gamename'));
$this->set('map', $data->get('mapname'));
$this->set('status', $server->_status);
$this->set('num_settings', count($data->getSettings()));
$this->loadServer();
}
function getPlayers() {
return $this->_data->getPlayers();
}
function &getSettings() {
if($this->_settings === NULL) {
$settings = $this->_data->getSettings();
$buffer = array();
foreach($settings as $name => $value) {
$buffer[] = array('name' => $name, 'value' => $value);
}
$this->_settings = &new FAArrayIterator($buffer);
}
return $this->_settings;
}
function loadServer() {
$api = &new GameServerExtension;
$this->_server = &$api->load('q3');
$this->_server->setAddress($this->get('address'));
$this->_server->connect();
if($this->_server->getStatus())
$this->_data = $this->_server->getData();
}
}
?>