36 public const MAX_COORD = 30000000;
37 public const MIN_COORD = -30000000;
39 protected function fetchPermittedPlayerTarget(
CommandSender $sender, ?
string $target,
string $selfPermission,
string $otherPermission) : ?
Player{
41 if($target !==
null && $target !==
"@s"){
42 $player = $sender->getServer()->getPlayerByPrefix($target);
44 $sender->sendMessage(KnownTranslationFactory::pocketmine_command_error_playerNotFound($target)->prefix(TextFormat::RED));
47 }elseif($sender instanceof
Player){
54 ($player === $sender && $this->testPermission($sender, $selfPermission)) ||
55 ($player !== $sender && $this->testPermission($sender, $otherPermission))
62 protected function getInteger(
CommandSender $sender,
string $value,
int $min = self::MIN_COORD,
int $max = self::MAX_COORD) :
int{
74 protected function getRelativeDouble(
float $original,
CommandSender $sender,
string $input,
float $min = self::MIN_COORD,
float $max = self::MAX_COORD) :
float{
75 if($input[0] ===
"~"){
76 $value = $this->getDouble($sender, substr($input, 1));
78 return $original + $value;
81 return $this->getDouble($sender, $input, $min, $max);
84 protected function getDouble(
CommandSender $sender,
string $value,
float $min = self::MIN_COORD,
float $max = self::MAX_COORD) :
float{
96 protected function getBoundedInt(
CommandSender $sender,
string $input,
int $min,
int $max) : ?
int{
97 if(!is_numeric($input)){
103 $sender->sendMessage(KnownTranslationFactory::commands_generic_num_tooBig($input, (
string) $max)->prefix(TextFormat::RED));
107 $sender->sendMessage(KnownTranslationFactory::commands_generic_num_tooSmall($input, (
string) $min)->prefix(TextFormat::RED));