callbacks improvement

This commit is contained in:
kremsy
2014-04-24 23:11:09 +02:00
committed by Steffen Schröder
parent 2ff970101d
commit a3040125e9
4 changed files with 90 additions and 18 deletions

View File

@ -34,10 +34,41 @@ class ShootManiaCallbacks implements CallbackListener {
$this->maniaControl = $maniaControl;
// Register for script callbacks
$callbackManager->registerCallbackListener(Callbacks::SCRIPTCALLBACK, $this, 'handleScriptCallbacks');
$callbackManager->registerScriptCallbackListener(self::SCB_TIMEATTACK_ONCHECKPOINT, $this, 'callback_TimeAttack_OnCheckpoint');
$callbackManager->registerScriptCallbackListener(self::SCB_TIMEATTACK_ONFINISH, $this, 'callback_TimeAttack_OnFinish');
}
/**
* Handle Script Callbacks
*
* @param $name
* @param $data
*/
public function handleScriptCallbacks($name, $data) {
switch($name) {
case 'LibXmlRpc_Rankings':
$this->maniaControl->server->rankingManager->updateRankings($data[0]);
break;
case 'LibXmlRpc_Scores':
$this->maniaControl->callbackManager->triggerCallback(Callbacks::AFKSTATUS, $data[0]);
break;
case 'LibAFK_IsAFK':
$this->triggerAfkStatus($data[0]);
break;
}
}
/**
* Triggers the AFK Status of an Player
*
* @param $login
*/
private function triggerAfkStatus($login) {
$player = $this->maniaControl->playerManager->getPlayer($login);
$this->maniaControl->callbackManager->triggerCallback(Callbacks::AFKSTATUS, $player);
}
/**
* Handle TimeAttack OnCheckpoint Script Callback
*