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.));
|
|
}
|
|
}
|