made most work of the stastic collector

This commit is contained in:
kremsy 2014-01-01 19:37:15 +01:00
parent ab12cb7da1
commit 73cd13228d

View File

@ -22,7 +22,13 @@ class StatisticCollector implements CallbackListener {
* Statistics * Statistics
*/ */
const STAT_ON_SHOOT = 'onShoot'; const STAT_ON_SHOOT = 'onShoot';
const STAT_ON_NEARMISS = 'onNearMiss';
const STAT_ON_CAPTURE = 'onCapture';
const STAT_ON_HIT = 'onHit';
const STAT_ON_GOT_HIT = 'onGotHit';
const STAT_ON_DEATH = 'onDeath';
const STAT_ON_PLAYER_REQUEST_RESPAWN = 'onPlayerRequestRespawn';
const STAT_ON_KILL = 'onKill';
/** /**
* Private Properties * Private Properties
*/ */
@ -48,16 +54,25 @@ class StatisticCollector implements CallbackListener {
/** /**
* onInit * onInit
*
* @param array $callback * @param array $callback
*/ */
public function onInit(array $callback){ public function onInit(array $callback) {
//Define Stats MetaData //Define Stats MetaData
$this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_SHOOT); $this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_SHOOT);
$this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_NEARMISS);
$this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_CAPTURE);
$this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_HIT);
$this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_GOT_HIT);
$this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_DEATH);
$this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_PLAYER_REQUEST_RESPAWN);
$this->maniaControl->statisticManager->defineStatMetaData(self::STAT_ON_KILL);
} }
/** /**
* Handle stats on callbacks * Handle stats on callbacks
*
* @param array $callback * @param array $callback
*/ */
public function handleCallbacks(array $callback) { public function handleCallbacks(array $callback) {
@ -72,7 +87,68 @@ class StatisticCollector implements CallbackListener {
return; return;
} }
var_dump($callback); $callbackName = $callback[1][0];
$serverLogin = $this->maniaControl->server->getLogin();
switch($callbackName) {
case 'LibXmlRpc_OnShoot': //TODO
break;
case 'LibXmlRpc_OnHit':
$shooter = $this->maniaControl->playerManager->getPlayer($callback[1][0]);
$victim = $this->maniaControl->playerManager->getPlayer($callback[1][1]);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_HIT, $shooter, $serverLogin);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_GOT_HIT, $victim, $serverLogin);
break;
case 'LibXmlRpc_OnNearMiss':
$player = $this->maniaControl->playerManager->getPlayer($callback[1][0]);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_NEARMISS, $player, $serverLogin);
break;
case 'LibXmlRpc_OnCapture':
$player = $this->maniaControl->playerManager->getPlayer($callback[1][0]);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_CAPTURE, $player, $serverLogin);
break;
case 'LibXmlRpc_OnArmorEmpty':
$shooter = $this->maniaControl->playerManager->getPlayer($callback[1][0]);
$victim = $this->maniaControl->playerManager->getPlayer($callback[1][1]);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_KILL, $shooter, $serverLogin);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_DEATH, $victim, $serverLogin);
break;
case 'LibXmlRpc_OnPlayerRequestRespawn':
$player = $this->maniaControl->playerManager->getPlayer($callback[1][0]);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_PLAYER_REQUEST_RESPAWN, $player, $serverLogin);
break;
case 'OnShoot': //TODO
break;
case 'OnNearMiss':
$paramsObject = json_decode($callback[1][1]);
$player = $this->maniaControl->playerManager->getPlayer($paramsObject->Event->Shooter->Login);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_NEARMISS, $player, $serverLogin);
break;
case 'OnCapture':
$paramsObject = json_decode($callback[1][1]);
$player = $this->maniaControl->playerManager->getPlayer($paramsObject->Event->Player->Login);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_CAPTURE, $player, $serverLogin);
break;
case 'OnHit':
$paramsObject = json_decode($callback[1][1]);
$shooter = $this->maniaControl->playerManager->getPlayer($paramsObject->Event->Shooter->Login);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_HIT, $shooter, $serverLogin);
$victim = $this->maniaControl->playerManager->getPlayer($paramsObject->Event->Victim->Login);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_GOT_HIT, $victim, $serverLogin);
break;
case 'OnArmorEmpty':
$paramsObject = json_decode($callback[1][1]);
$victim = $this->maniaControl->playerManager->getPlayer($paramsObject->Event->Victim->Login);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_DEATH, $victim, $serverLogin);
$shooter = $this->maniaControl->playerManager->getPlayer($paramsObject->Event->Shooter->Login);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_KILL, $shooter, $serverLogin);
break;
case 'OnRequestRespawn':
$paramsObject = json_decode($callback[1][1]);
$player = $this->maniaControl->playerManager->getPlayer($paramsObject->Event->Player->Login);
$this->maniaControl->statisticManager->incrementStat(self::STAT_ON_PLAYER_REQUEST_RESPAWN, $player, $serverLogin);
break;
}
} }
} }