finished first version of shootmania callbacks
This commit is contained in:
parent
4f94fe0275
commit
5a7ee1c9be
@ -4,11 +4,16 @@ namespace ManiaControl\Callbacks;
|
||||
|
||||
use ManiaControl\Callbacks\Models\RecordCallback;
|
||||
use ManiaControl\Callbacks\Structures\EliteBeginTurnStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnActionCustomEventStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnActionEvent;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnCaptureStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnCommandStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnDefaultEventStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnHitNearMissArmorEmptyStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnPlayerObjectStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnPlayerRequestActionChange;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnPlayerRequestRespawnStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnPlayerTriggersSectorStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnShootStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\OnShotDenyStructure;
|
||||
use ManiaControl\ManiaControl;
|
||||
@ -88,6 +93,22 @@ class ShootManiaCallbacks implements CallbackListener {
|
||||
$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::SM_ONPLAYERREQUESTRESPAWN, new OnPlayerRequestRespawnStructure($this->maniaControl, $data));
|
||||
break;
|
||||
case Callbacks::SM_ONACTIONCUSTOMEVENT:
|
||||
$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::SM_ONACTIONCUSTOMEVENT, new OnActionCustomEventStructure($this->maniaControl, $data));
|
||||
break;
|
||||
case Callbacks::SM_ONACTIONEVENT:
|
||||
$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::SM_ONACTIONEVENT, new OnActionEvent($this->maniaControl, $data));
|
||||
break;
|
||||
case Callbacks::SM_ONPLAYERTOUCHESOBJECT:
|
||||
$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::SM_ONPLAYERTOUCHESOBJECT, new OnPlayerObjectStructure($this->maniaControl, $data));
|
||||
break;
|
||||
case Callbacks::SM_ONPLAYERTRIGGERSSECTOR:
|
||||
$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::SM_ONPLAYERTRIGGERSSECTOR, new OnPlayerTriggersSectorStructure($this->maniaControl, $data));
|
||||
break;
|
||||
case Callbacks::SM_ONPLAYERTHROWSOBJECT:
|
||||
$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::SM_ONPLAYERTHROWSOBJECT, new OnPlayerObjectStructure($this->maniaControl, $data));
|
||||
break;
|
||||
case Callbacks::SM_ONPLAYERREQUESTACTIONCHANGE:
|
||||
$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::SM_ONPLAYERREQUESTACTIONCHANGE, new OnPlayerRequestActionChange($this->maniaControl, $data));
|
||||
break;
|
||||
//Old Callbacks
|
||||
case 'LibXmlRpc_Rankings':
|
||||
|
@ -3,7 +3,19 @@
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania\Models;
|
||||
|
||||
|
||||
class Landmark {
|
||||
use ManiaControl\General\UsageInformationAble;
|
||||
use ManiaControl\General\UsageInformationTrait;
|
||||
|
||||
/**
|
||||
* Landmark Model
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Landmark implements UsageInformationAble {
|
||||
use UsageInformationTrait;
|
||||
|
||||
private $tag = "";
|
||||
private $order = 0;
|
||||
private $id = "";
|
||||
|
@ -2,7 +2,92 @@
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania\Models;
|
||||
|
||||
//TODO describtion
|
||||
class PlayerScore {
|
||||
use ManiaControl\General\UsageInformationAble;
|
||||
use ManiaControl\General\UsageInformationTrait;
|
||||
use ManiaControl\Players\Player;
|
||||
|
||||
/**
|
||||
* PlayerScore Model
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class PlayerScore implements UsageInformationAble {
|
||||
use UsageInformationTrait;
|
||||
|
||||
private $player;
|
||||
private $rank;
|
||||
private $roundPoints;
|
||||
private $mapPoints;
|
||||
|
||||
/**
|
||||
* Returns the Player
|
||||
*
|
||||
* @return Player
|
||||
*/
|
||||
public function getPlayer() {
|
||||
return $this->player;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \ManiaControl\Players\Player $player
|
||||
*/
|
||||
public function setPlayer(Player $player) {
|
||||
$this->player = $player;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Rank
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getRank() {
|
||||
return $this->rank;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the Rank
|
||||
*
|
||||
* @param int $rank
|
||||
*/
|
||||
public function setRank($rank) {
|
||||
$this->rank = $rank;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Round Points
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getRoundPoints() {
|
||||
return $this->roundPoints;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the RoundPoints
|
||||
*
|
||||
* @param int $roundPoints
|
||||
*/
|
||||
public function setRoundPoints($roundPoints) {
|
||||
$this->roundPoints = $roundPoints;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Map Points
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getMapPoints() {
|
||||
return $this->mapPoints;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the Map Points
|
||||
*
|
||||
* @param int $mapPoints
|
||||
*/
|
||||
public function setMapPoints($mapPoints) {
|
||||
$this->mapPoints = $mapPoints;
|
||||
}
|
||||
}
|
@ -3,8 +3,19 @@
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania\Models;
|
||||
|
||||
//TODO describtion
|
||||
class Position {
|
||||
use ManiaControl\General\UsageInformationAble;
|
||||
use ManiaControl\General\UsageInformationTrait;
|
||||
|
||||
/**
|
||||
* Position Model
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Position implements UsageInformationAble {
|
||||
use UsageInformationTrait;
|
||||
|
||||
private $x = 0;
|
||||
private $y = 0;
|
||||
private $z = 0;
|
||||
|
@ -2,8 +2,19 @@
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania\Models;
|
||||
|
||||
//TODO describtion
|
||||
class TeamScore {
|
||||
use ManiaControl\General\UsageInformationAble;
|
||||
use ManiaControl\General\UsageInformationTrait;
|
||||
|
||||
/**
|
||||
* TeamScore Model
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class TeamScore implements UsageInformationAble {
|
||||
use UsageInformationTrait;
|
||||
|
||||
private $id;
|
||||
private $name;
|
||||
private $roundPoints;
|
||||
|
@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania;
|
||||
|
||||
|
||||
use ManiaControl\Callbacks\Structures\BaseStructure;
|
||||
use ManiaControl\ManiaControl;
|
||||
|
||||
/**
|
||||
* Structure Class for the OnCustomEvent Structure Callback
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class OnActionCustomEventStructure extends BaseStructure {
|
||||
private $time;
|
||||
private $actionId;
|
||||
private $shooter;
|
||||
private $victim;
|
||||
private $param1;
|
||||
private $param2 = array();
|
||||
|
||||
public function __construct(ManiaControl $maniaControl, $data) {
|
||||
parent::__construct($maniaControl, $data);
|
||||
|
||||
$this->time = $this->getPlainJsonObject()->time;
|
||||
$this->actionId = $this->getPlainJsonObject()->actionid;
|
||||
|
||||
$this->victim = $this->maniaControl->getPlayerManager()->getPlayer($this->getPlainJsonObject()->victim);
|
||||
$this->shooter = $this->maniaControl->getPlayerManager()->getPlayer($this->getPlainJsonObject()->shooter);
|
||||
|
||||
$this->param1 = $this->getPlainJsonObject()->param1;
|
||||
$this->param2 = $this->getPlainJsonObject()->param2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns Server time when the event occured
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getTime() {
|
||||
return $this->time;
|
||||
}
|
||||
|
||||
/**
|
||||
* < Id of the action that triggered the event
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getActionId() {
|
||||
return $this->actionId;
|
||||
}
|
||||
|
||||
/**
|
||||
* < Login of the player who shot if any
|
||||
*
|
||||
* @return \ManiaControl\Players\Player
|
||||
*/
|
||||
public function getShooter() {
|
||||
return $this->shooter;
|
||||
}
|
||||
|
||||
/**
|
||||
* < player who got hit if any
|
||||
*
|
||||
* @return \ManiaControl\Players\Player
|
||||
*/
|
||||
public function getVictim() {
|
||||
return $this->victim;
|
||||
}
|
||||
|
||||
/**
|
||||
* < First custom param of the event
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getParam1() {
|
||||
return $this->param1;
|
||||
}
|
||||
|
||||
/**
|
||||
* < Second custom param of the event
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getParam2() {
|
||||
return $this->param2;
|
||||
}
|
||||
|
||||
}
|
58
core/Callbacks/Structures/ShootMania/OnActionEvent.php
Normal file
58
core/Callbacks/Structures/ShootMania/OnActionEvent.php
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania;
|
||||
|
||||
|
||||
use ManiaControl\Callbacks\Structures\BaseStructure;
|
||||
use ManiaControl\ManiaControl;
|
||||
|
||||
/**
|
||||
* Structure Class for the OnCustomEvent Structure Callback
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class OnActionEvent extends BaseStructure {
|
||||
private $time;
|
||||
private $player;
|
||||
private $actionInput;
|
||||
|
||||
public function __construct(ManiaControl $maniaControl, $data) {
|
||||
parent::__construct($maniaControl, $data);
|
||||
|
||||
$this->time = $this->getPlainJsonObject()->time;
|
||||
$this->actionInput = $this->getPlainJsonObject()->actioninput;
|
||||
|
||||
$this->player = $this->maniaControl->getPlayerManager()->getPlayer($this->getPlainJsonObject()->login);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns Server time when the event occured
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getTime() {
|
||||
return $this->time;
|
||||
}
|
||||
|
||||
/**
|
||||
* < player who triggered the action
|
||||
*
|
||||
* @return \ManiaControl\Players\Player
|
||||
*/
|
||||
public function getPlayer() {
|
||||
return $this->player;
|
||||
}
|
||||
|
||||
/**
|
||||
* < The input pressed to trigger the action
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getActionInput() {
|
||||
return $this->actionInput;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Lukas
|
||||
* Date: 25. Mär. 2017
|
||||
* Time: 19:53
|
||||
*/
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania;
|
||||
|
||||
|
||||
class OnCustomEventStructure {
|
||||
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania;
|
||||
|
||||
|
||||
use ManiaControl\Callbacks\Structures\BaseStructure;
|
||||
use ManiaControl\ManiaControl;
|
||||
|
||||
/**
|
||||
* Structure Class for the OnPlayerTouchesObject Structure Callback
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class OnPlayerObjectStructure extends BaseStructure {
|
||||
private $time;
|
||||
private $player;
|
||||
private $objectId;
|
||||
private $modelId;
|
||||
private $modelName;
|
||||
|
||||
public function __construct(ManiaControl $maniaControl, $data) {
|
||||
parent::__construct($maniaControl, $data);
|
||||
|
||||
$this->time = $this->getPlainJsonObject()->time;
|
||||
$this->objectId = $this->getPlainJsonObject()->objectid;
|
||||
$this->modelId = $this->getPlainJsonObject()->modelid;
|
||||
$this->modelName = $this->getPlainJsonObject()->modelname;
|
||||
|
||||
$this->player = $this->maniaControl->getPlayerManager()->getPlayer($this->getPlainJsonObject()->login);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns Server time when the event occured
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getTime() {
|
||||
return $this->time;
|
||||
}
|
||||
|
||||
/**
|
||||
* < Login of the player who touched the object
|
||||
*
|
||||
* @return \ManiaControl\Players\Player
|
||||
*/
|
||||
public function getPlayer() {
|
||||
return $this->player;
|
||||
}
|
||||
|
||||
/**
|
||||
* < The id of the object
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getObjectId() {
|
||||
return $this->objectId;
|
||||
}
|
||||
|
||||
/**
|
||||
* < The id of the object model
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getModelId() {
|
||||
return $this->modelId;
|
||||
}
|
||||
|
||||
/**
|
||||
* < The name of the object model
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getModelName() {
|
||||
return $this->modelName;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania;
|
||||
|
||||
|
||||
use ManiaControl\Callbacks\Structures\BaseStructure;
|
||||
use ManiaControl\ManiaControl;
|
||||
|
||||
/**
|
||||
* Structure Class for the OnPlayerRequestActionChange Structure Callback
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class OnPlayerRequestActionChange extends BaseStructure {
|
||||
private $time;
|
||||
private $player;
|
||||
private $actionChange;
|
||||
|
||||
public function __construct(ManiaControl $maniaControl, $data) {
|
||||
parent::__construct($maniaControl, $data);
|
||||
|
||||
$this->time = $this->getPlainJsonObject()->time;
|
||||
$this->actionChange = $this->getPlainJsonObject()->actionChange;
|
||||
|
||||
$this->player = $this->maniaControl->getPlayerManager()->getPlayer($this->getPlainJsonObject()->login);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns Server time when the event occured
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getTime() {
|
||||
return $this->time;
|
||||
}
|
||||
|
||||
/**
|
||||
* < player who requested a new action
|
||||
*
|
||||
* @return \ManiaControl\Players\Player
|
||||
*/
|
||||
public function getPlayer() {
|
||||
return $this->player;
|
||||
}
|
||||
|
||||
/**
|
||||
* < Can be -1 (request previous action) or 1 (request next action)
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getActionChange() {
|
||||
return $this->actionChange;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -27,7 +27,6 @@ class OnPlayerRequestRespawnStructure extends BaseStructure {
|
||||
$this->time = $this->getPlainJsonObject()->time;
|
||||
$this->player = $this->maniaControl->getPlayerManager()->getPlayer($this->getPlainJsonObject()->login);
|
||||
|
||||
$this->getUsage();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace ManiaControl\Callbacks\Structures\ShootMania;
|
||||
|
||||
|
||||
use ManiaControl\Callbacks\Structures\BaseStructure;
|
||||
use ManiaControl\ManiaControl;
|
||||
|
||||
/**
|
||||
* Structure Class for the OnPlayerTriggersSector Structure Callback
|
||||
*
|
||||
* @author ManiaControl Team <mail@maniacontrol.com>
|
||||
* @copyright 2014-2017 ManiaControl Team
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class OnPlayerTriggersSectorStructure extends BaseStructure {
|
||||
private $time;
|
||||
private $player;
|
||||
private $sectorId;
|
||||
|
||||
|
||||
public function __construct(ManiaControl $maniaControl, $data) {
|
||||
parent::__construct($maniaControl, $data);
|
||||
|
||||
$this->time = $this->getPlainJsonObject()->time;
|
||||
$this->sectorId = $this->getPlainJsonObject()->sectorid;
|
||||
|
||||
$this->player = $this->maniaControl->getPlayerManager()->getPlayer($this->getPlainJsonObject()->login);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns Server time when the event occured
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getTime() {
|
||||
return $this->time;
|
||||
}
|
||||
|
||||
/**
|
||||
* < player who touched the object
|
||||
*
|
||||
* @return \ManiaControl\Players\Player
|
||||
*/
|
||||
public function getPlayer() {
|
||||
return $this->player;
|
||||
}
|
||||
|
||||
/**
|
||||
* < Id of the triggered sector
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getSectorId() {
|
||||
return $this->sectorId;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -4,6 +4,7 @@ namespace ManiaControl\Callbacks\Structures\ShootMania;
|
||||
|
||||
|
||||
use ManiaControl\Callbacks\Structures\BaseStructure;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\Models\PlayerScore;
|
||||
use ManiaControl\Callbacks\Structures\ShootMania\Models\TeamScore;
|
||||
use ManiaControl\ManiaControl;
|
||||
|
||||
@ -20,8 +21,8 @@ class OnScoresStructure extends BaseStructure {
|
||||
private $useTeams;
|
||||
private $winnerTeam;
|
||||
private $winnerPlayer;
|
||||
private $teamScores = array();
|
||||
private $players; //TODO implement
|
||||
private $teamScores = array();
|
||||
private $playerScores = array();
|
||||
|
||||
//TODO test
|
||||
public function __construct(ManiaControl $maniaControl, $data) {
|
||||
@ -47,7 +48,16 @@ class OnScoresStructure extends BaseStructure {
|
||||
$this->teamScores[$team->id] = $teamScore; //TODO verify that different teams have different ids
|
||||
}
|
||||
|
||||
//TODO implement player
|
||||
foreach ($jsonObj->players as $jsonPlayer) {
|
||||
$playerScore = new PlayerScore();
|
||||
$playerScore->setPlayer($this->maniaControl->getPlayerManager()->getPlayer($jsonPlayer->login));
|
||||
$playerScore->setRank($jsonPlayer->rank);
|
||||
$playerScore->setRoundPoints($jsonPlayer->roundpoints);
|
||||
$playerScore->setMapPoints($jsonPlayer->mappoints);
|
||||
|
||||
$this->playerScores[$jsonPlayer->login] = $playerScore;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -105,12 +115,11 @@ class OnScoresStructure extends BaseStructure {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get The Player Scores
|
||||
* Get the Player Scores
|
||||
*
|
||||
* @return mixed
|
||||
* @return PlayerScore[]
|
||||
*/
|
||||
public function getPlayers() {
|
||||
//TODO proper implementation
|
||||
return $this->players;
|
||||
public function getPlayerScores() {
|
||||
return $this->playerScores;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user