61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * ManiaPlanet dedicated server Xml-RPC client
 | 
						|
 *
 | 
						|
 * @license     http://www.gnu.org/licenses/lgpl.html LGPL License 3
 | 
						|
 */
 | 
						|
 | 
						|
namespace Maniaplanet\DedicatedServer\Structures;
 | 
						|
 | 
						|
class VoteRatio extends AbstractStructure
 | 
						|
{
 | 
						|
	const COMMAND_DEFAULT         = '*';
 | 
						|
	const COMMAND_SCRIPT_SETTINGS = 'SetModeScriptSettingsAndCommands';
 | 
						|
	const COMMAND_NEXT_MAP        = 'NextMap';
 | 
						|
	const COMMAND_JUMP_MAP        = 'JumpToMapIdent';
 | 
						|
	const COMMAND_SET_NEXT_MAP    = 'SetNextMapIdent';
 | 
						|
	const COMMAND_RESTART_MAP     = 'RestartMap';
 | 
						|
	const COMMAND_TEAM_BALANCE    = 'AutoTeamBalance';
 | 
						|
	const COMMAND_KICK            = 'Kick';
 | 
						|
	const COMMAND_BAN             = 'Ban';
 | 
						|
 | 
						|
	/** @var string '*' for default */
 | 
						|
	public $command;
 | 
						|
	/** @var string Empty to match all votes for the command */
 | 
						|
	public $param;
 | 
						|
	/** @var float Must be in range [0,1] or -1 to disable */
 | 
						|
	public $ratio;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param string $command
 | 
						|
	 * @param float $ratio
 | 
						|
	 */
 | 
						|
	public function __construct($command = '', $ratio = 0.)
 | 
						|
	{
 | 
						|
		$this->command = $command;
 | 
						|
		$this->ratio = $ratio;
 | 
						|
		$this->param = '';
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @internal
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	function isValid()
 | 
						|
	{
 | 
						|
		return is_string($this->command)
 | 
						|
			&& is_string($this->param)
 | 
						|
			&& self::isRatio($this->ratio);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @internal
 | 
						|
	 * @param float $ratio
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	static function isRatio($ratio)
 | 
						|
	{
 | 
						|
		return is_float($ratio) && ($ratio === -1. || ($ratio >= 0. && $ratio <= 1.));
 | 
						|
	}
 | 
						|
}
 |