added endround command + version increase
This commit is contained in:
		@@ -52,7 +52,7 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
 | 
				
			|||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Constants
 | 
						 * Constants
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	const VERSION                     = '0.215';
 | 
						const VERSION                     = '0.216';
 | 
				
			||||||
	const API_VERSION                 = '2013-04-16';
 | 
						const API_VERSION                 = '2013-04-16';
 | 
				
			||||||
	const MIN_DEDIVERSION             = '2017-05-03_21_00';
 | 
						const MIN_DEDIVERSION             = '2017-05-03_21_00';
 | 
				
			||||||
	const SCRIPT_TIMEOUT              = 40;
 | 
						const SCRIPT_TIMEOUT              = 40;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace ManiaControl\Players;
 | 
					namespace ManiaControl\Players;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use ManiaControl\Admin\AuthenticationManager;
 | 
				
			||||||
use ManiaControl\General\Dumpable;
 | 
					use ManiaControl\General\Dumpable;
 | 
				
			||||||
use ManiaControl\General\DumpTrait;
 | 
					use ManiaControl\General\DumpTrait;
 | 
				
			||||||
use ManiaControl\General\UsageInformationAble;
 | 
					use ManiaControl\General\UsageInformationAble;
 | 
				
			||||||
@@ -92,6 +93,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get the Login of the Player
 | 
						 * Get the Login of the Player
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @param mixed $player
 | 
						 * @param mixed $player
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
@@ -105,6 +107,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get the Escaped Nickname
 | 
						 * Get the Escaped Nickname
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getEscapedNickname() {
 | 
						public function getEscapedNickname() {
 | 
				
			||||||
@@ -186,6 +189,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Check if player is not a real player
 | 
						 * Check if player is not a real player
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @return bool
 | 
						 * @return bool
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function isFakePlayer() {
 | 
						public function isFakePlayer() {
 | 
				
			||||||
@@ -195,6 +199,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get province
 | 
						 * Get province
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getProvince() {
 | 
						public function getProvince() {
 | 
				
			||||||
@@ -204,6 +209,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get the specified Part of the Path
 | 
						 * Get the specified Part of the Path
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @param int $partNumber
 | 
						 * @param int $partNumber
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
@@ -220,6 +226,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get Country
 | 
						 * Get Country
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getCountry() {
 | 
						public function getCountry() {
 | 
				
			||||||
@@ -229,6 +236,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get Continent
 | 
						 * Get Continent
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getContinent() {
 | 
						public function getContinent() {
 | 
				
			||||||
@@ -270,6 +278,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get the Cache with the given Name
 | 
						 * Get the Cache with the given Name
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @param        $object
 | 
						 * @param        $object
 | 
				
			||||||
	 * @param string $cacheName
 | 
						 * @param string $cacheName
 | 
				
			||||||
	 * @return mixed
 | 
						 * @return mixed
 | 
				
			||||||
@@ -285,6 +294,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Set the Cache Data for the given Name
 | 
						 * Set the Cache Data for the given Name
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @param mixed  $object
 | 
						 * @param mixed  $object
 | 
				
			||||||
	 * @param string $cacheName
 | 
						 * @param string $cacheName
 | 
				
			||||||
	 * @param mixed  $data
 | 
						 * @param mixed  $data
 | 
				
			||||||
@@ -297,6 +307,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Destroy a Cache
 | 
						 * Destroy a Cache
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @param mixed  $object
 | 
						 * @param mixed  $object
 | 
				
			||||||
	 * @param string $cacheName
 | 
						 * @param string $cacheName
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
@@ -315,6 +326,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Gets the Player Data
 | 
						 * Gets the Player Data
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @param mixed  $object
 | 
						 * @param mixed  $object
 | 
				
			||||||
	 * @param string $dataName
 | 
						 * @param string $dataName
 | 
				
			||||||
	 * @param int    $serverIndex
 | 
						 * @param int    $serverIndex
 | 
				
			||||||
@@ -327,6 +339,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets the Player Data and stores it in the Database
 | 
						 * Sets the Player Data and stores it in the Database
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @param mixed  $object
 | 
						 * @param mixed  $object
 | 
				
			||||||
	 * @param string $dataName
 | 
						 * @param string $dataName
 | 
				
			||||||
	 * @param mixed  $value
 | 
						 * @param mixed  $value
 | 
				
			||||||
@@ -340,6 +353,7 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Check if a Player is muted
 | 
						 * Check if a Player is muted
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 * @return bool
 | 
						 * @return bool
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function isMuted() {
 | 
						public function isMuted() {
 | 
				
			||||||
@@ -352,8 +366,29 @@ class Player implements Dumpable, UsageInformationAble {
 | 
				
			|||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Gets the Auth Level Name of a Player
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
 | 
						 * @return string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAuthLevelName(){
 | 
				
			||||||
 | 
							return AuthenticationManager::getAuthLevelName($this->authLevel);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Gets the Auth Level Abbreviation of a Player
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
 | 
						 * @return string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAuthLevelAbbreviation(){
 | 
				
			||||||
 | 
							return AuthenticationManager::getAuthLevelAbbreviation($this->authLevel);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Var_Dump the Players Cache
 | 
						 * Var_Dump the Players Cache
 | 
				
			||||||
 | 
						 * @api
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function dumpCache() {
 | 
						public function dumpCache() {
 | 
				
			||||||
		var_dump($this->cache);
 | 
							var_dump($this->cache);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,6 +41,7 @@ class Commands implements CallbackListener, CommandListener, ManialinkPageAnswer
 | 
				
			|||||||
	const SETTING_PERMISSION_SHUTDOWN_SERVER              = 'Shutdown Server';
 | 
						const SETTING_PERMISSION_SHUTDOWN_SERVER              = 'Shutdown Server';
 | 
				
			||||||
	const SETTING_PERMISSION_CHANGE_SERVERSETTINGS        = 'Change ServerSettings';
 | 
						const SETTING_PERMISSION_CHANGE_SERVERSETTINGS        = 'Change ServerSettings';
 | 
				
			||||||
	const SETTING_PERMISSION_TM_HANDLE_POINTS_REPARTITION = 'Handle Points Distribution Settings';
 | 
						const SETTING_PERMISSION_TM_HANDLE_POINTS_REPARTITION = 'Handle Points Distribution Settings';
 | 
				
			||||||
 | 
						const SETTING_PERMISSION_END_ROUND                    = 'Force end of current Trackmania Round';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Private properties
 | 
						 * Private properties
 | 
				
			||||||
@@ -106,9 +107,12 @@ class Commands implements CallbackListener, CommandListener, ManialinkPageAnswer
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		if ($this->maniaControl->getMapManager()->getCurrentMap()->getGame() === 'tm') {
 | 
							if ($this->maniaControl->getMapManager()->getCurrentMap()->getGame() === 'tm') {
 | 
				
			||||||
			$this->maniaControl->getAuthenticationManager()->definePermissionLevel(self::SETTING_PERMISSION_TM_HANDLE_POINTS_REPARTITION, AuthenticationManager::AUTH_LEVEL_SUPERADMIN);
 | 
								$this->maniaControl->getAuthenticationManager()->definePermissionLevel(self::SETTING_PERMISSION_TM_HANDLE_POINTS_REPARTITION, AuthenticationManager::AUTH_LEVEL_SUPERADMIN);
 | 
				
			||||||
 | 
								$this->maniaControl->getAuthenticationManager()->definePermissionLevel(self::SETTING_PERMISSION_END_ROUND, AuthenticationManager::AUTH_LEVEL_MODERATOR);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			$this->maniaControl->getCommandManager()->registerCommandListener('setpointsdistribution', $this, 'commandSetPointsRepartition', true, 'Sets the Rounds Point Repartition.');
 | 
								$this->maniaControl->getCommandManager()->registerCommandListener('setpointsdistribution', $this, 'commandSetPointsRepartition', true, 'Sets the Rounds Point Repartition.');
 | 
				
			||||||
			$this->maniaControl->getCommandManager()->registerCommandListener('getpointsdistribution', $this, 'commandGetPointsRepartition', true, 'Gets the Rounds Point Repartition.');
 | 
								$this->maniaControl->getCommandManager()->registerCommandListener('getpointsdistribution', $this, 'commandGetPointsRepartition', true, 'Gets the Rounds Point Repartition.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								$this->maniaControl->getCommandManager()->registerCommandListener(array('endround', 'end'), $this, 'commandTrackManiaEndRound', true, 'Ends the Current Round.');
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -509,6 +513,21 @@ class Commands implements CallbackListener, CommandListener, ManialinkPageAnswer
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			$this->maniaControl->getChat()->sendInformation('Current Points Distribution: ' . $pointRepartitionString, $player);
 | 
								$this->maniaControl->getChat()->sendInformation('Current Points Distribution: ' . $pointRepartitionString, $player);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Handle //endround command
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param array                        $chatCallback
 | 
				
			||||||
 | 
						 * @param \ManiaControl\Players\Player $player
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function commandTrackManiaEndRound(array $chatCallback, Player $player) {
 | 
				
			||||||
 | 
							if (!$this->maniaControl->getAuthenticationManager()->checkPermission($player, self::SETTING_PERMISSION_TM_HANDLE_POINTS_REPARTITION)) {
 | 
				
			||||||
 | 
								$this->maniaControl->getAuthenticationManager()->sendNotAllowed($player);
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$this->maniaControl->getModeScriptEventManager()->forceTrackmaniaRoundEnd();
 | 
				
			||||||
 | 
							$this->maniaControl->getChat()->sendSuccess($player->getEscapedNickname() . ' forced end of the Round!');
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user