made most work of the stastic collector
This commit is contained in:
parent
ab12cb7da1
commit
73cd13228d
@ -22,7 +22,13 @@ class StatisticCollector implements CallbackListener {
|
||||
* Statistics
|
||||
*/
|
||||
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
|
||||
*/
|
||||
@ -48,16 +54,25 @@ class StatisticCollector implements CallbackListener {
|
||||
|
||||
/**
|
||||
* onInit
|
||||
*
|
||||
* @param array $callback
|
||||
*/
|
||||
public function onInit(array $callback) {
|
||||
//Define Stats MetaData
|
||||
$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
|
||||
*
|
||||
* @param array $callback
|
||||
*/
|
||||
public function handleCallbacks(array $callback) {
|
||||
@ -72,7 +87,68 @@ class StatisticCollector implements CallbackListener {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user