callback improvements
This commit is contained in:
		| @@ -98,6 +98,11 @@ interface Callbacks { | ||||
| 	/** OnPlayerRequestRespawn Callback: Player */ | ||||
| 	const ONPLAYERREQUESTRESPAWN = 'Callbacks.OnPlayerRequestRespawn'; | ||||
|  | ||||
| 	/** Elite OnBeginTurn Callback: EliteBeginTurnStructure */ | ||||
| 	const ELITE_ONBEGINTURN = "Callbacks.EliteOnBeginTurn"; | ||||
| 	/** Elite OnEndTurn Callback: integer (VictoryTypes) */ | ||||
| 	const ELITE_ONENDTURN = "Callbacks.EliteOnEndTurn"; | ||||
|  | ||||
| 	/* | ||||
| 	 * TrackMania Callbacks | ||||
| 	 */ | ||||
| @@ -111,4 +116,5 @@ interface Callbacks { | ||||
| 	const ONRESPAWN = 'Callbacks.OnRespawn'; | ||||
| 	/** OnStunt Callback */ | ||||
| 	const ONSTUNT = 'Callbacks.OnStunt'; | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -61,6 +61,9 @@ class LibXmlRpcCallbacks implements CallbackListener { | ||||
| 			case 'LibXmlRpc_BeginTurn': | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::BEGINTURN, $data[0]); | ||||
| 				break; | ||||
| 			case 'LibXmlRpc_BeginRound': | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::BEGINROUND, $data[0]); | ||||
| 				break; | ||||
| 			case 'LibXmlRpc_BeginPlaying': | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::BEGINPLAYING); | ||||
| 				break; | ||||
| @@ -71,6 +74,7 @@ class LibXmlRpcCallbacks implements CallbackListener { | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ENDTURN, $data[0]); | ||||
| 				break; | ||||
| 			case 'LibXmlRpc_EndRound': | ||||
| 				var_dump("test"); | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ENDROUND, $data[0]); | ||||
| 				break; | ||||
| 			case 'LibXmlRpc_EndSubmatch': | ||||
| @@ -131,11 +135,11 @@ class LibXmlRpcCallbacks implements CallbackListener { | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ONARMOREMPTY, new ArmorEmptyStructure($this->maniaControl, $data)); | ||||
| 				break; | ||||
| 			case 'LibXmlRpc_OnCapture': | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ONARMOREMPTY, new CaptureStructure($this->maniaControl, $data)); | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ONCAPTURE, new CaptureStructure($this->maniaControl, $data)); | ||||
| 				break; | ||||
| 			case 'LibXmlRpc_OnPlayerRequestRespawn': | ||||
| 				$player = $this->maniaControl->getPlayerManager()->getPlayer($data[0]); | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ONARMOREMPTY, $player); | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ONPLAYERREQUESTRESPAWN, $player); | ||||
| 				break; | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
| @@ -3,6 +3,7 @@ | ||||
| namespace ManiaControl\Callbacks; | ||||
|  | ||||
| use ManiaControl\Callbacks\Models\RecordCallback; | ||||
| use ManiaControl\Callbacks\Structures\EliteBeginTurnStructure; | ||||
| use ManiaControl\ManiaControl; | ||||
|  | ||||
| /** | ||||
| @@ -60,6 +61,12 @@ class ShootManiaCallbacks implements CallbackListener { | ||||
| 			case 'WarmUp_Status': | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::WARMUPSTATUS, $data[0]); | ||||
| 				break; | ||||
| 			case 'Elite_BeginTurn': | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ELITE_ONBEGINTURN, new EliteBeginTurnStructure($this->maniaControl, $data)); | ||||
| 				break; | ||||
| 			case 'Elite_EndTurn': | ||||
| 				$this->maniaControl->getCallbackManager()->triggerCallback(Callbacks::ELITE_ONENDTURN, $data[0]); | ||||
| 				break; | ||||
| 			case self::CB_TIMEATTACK_ONCHECKPOINT: | ||||
| 				$this->handleTimeAttackOnCheckpoint($name, $data); | ||||
| 				break; | ||||
|   | ||||
							
								
								
									
										52
									
								
								core/Callbacks/Structures/EliteBeginTurnStructure.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								core/Callbacks/Structures/EliteBeginTurnStructure.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| <?php | ||||
|  | ||||
| namespace ManiaControl\Callbacks\Structures; | ||||
|  | ||||
| use ManiaControl\ManiaControl; | ||||
| use ManiaControl\Players\Player; | ||||
|  | ||||
| class EliteBeginTurnStructure { | ||||
| 	/* | ||||
| 	 * Private properties | ||||
| 	 */ | ||||
| 	private $attackerLogin; | ||||
| 	private $defenderLogins; | ||||
|  | ||||
| 	/** @var ManiaControl $maniaControl */ | ||||
| 	private $maniaControl; | ||||
|  | ||||
| 	/** | ||||
| 	 * Construct a new Elite BeginTurnStructure | ||||
| 	 * | ||||
| 	 * @param ManiaControl $maniaControl | ||||
| 	 * @param array        $data | ||||
| 	 */ | ||||
| 	public function __construct(ManiaControl $maniaControl, array $data) { | ||||
| 		$this->maniaControl    = $maniaControl; | ||||
| 		$this->attackerLogin   = $data[0]; | ||||
| 		$this->defenderLogins = $data[1]; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get the attacker | ||||
| 	 * | ||||
| 	 * @return Player | ||||
| 	 */ | ||||
| 	public function getAttacker() { | ||||
| 		return $this->maniaControl->getPlayerManager()->getPlayer($this->attackerLogin); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get the defenders as an Player Array | ||||
| 	 * | ||||
| 	 * @return Player[] | ||||
| 	 */ | ||||
| 	public function getDefenders() { | ||||
| 		$defenders = array(); | ||||
| 		foreach (explode(";", $this->defenderLogins) as $defenderLogin) { | ||||
| 			$defenders[] = $this->maniaControl->getPlayerManager()->getPlayer($defenderLogin); | ||||
| 		} | ||||
|  | ||||
| 		return $defenders; | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										17
									
								
								core/Callbacks/Structures/VictoryTypes.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								core/Callbacks/Structures/VictoryTypes.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| <?php | ||||
|  | ||||
| namespace ManiaControl\Callbacks\Structures; | ||||
|  | ||||
| /** | ||||
|  * VictoryTypes Interface (only available in Elite atm) | ||||
|  * | ||||
|  * @author    ManiaControl Team <mail@maniacontrol.com> | ||||
|  * @copyright 2014 ManiaControl Team | ||||
|  * @license   http://www.gnu.org/licenses/ GNU General Public License, Version 3 | ||||
|  */ | ||||
| interface VictoryTypes { | ||||
| 	const TIME_LIMIT           = 1; | ||||
| 	const CAPTURE              = 2; | ||||
| 	const ATTACKER_ELIMINATED  = 3; | ||||
| 	const DEFENDERS_ELIMINATED = 4; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user