36 public const MAX_COORD = 30000000;
37 public const MIN_COORD = -30000000;
39 protected function fetchPermittedPlayerTarget(
40 string $testPermissionContext,
43 string $selfPermission,
44 string $otherPermission
47 if($target !==
null && $target !==
"@s"){
48 $player = $sender->getServer()->getPlayerByPrefix($target);
49 }elseif($sender instanceof
Player){
56 $sender->sendMessage(KnownTranslationFactory::commands_generic_player_notFound()->prefix(TextFormat::RED));
63 ($player === $sender && $this->
testPermission($testPermissionContext, $sender, $selfPermission)) ||
64 ($player !== $sender && $this->
testPermission($testPermissionContext, $sender, $otherPermission))
71 protected function getInteger(
CommandSender $sender,
string $value,
int $min = self::MIN_COORD,
int $max = self::MAX_COORD) :
int{
83 protected function getRelativeDouble(
float $original,
CommandSender $sender,
string $input,
float $min = self::MIN_COORD,
float $max = self::MAX_COORD) :
float{
84 if($input[0] ===
"~"){
85 $value = $this->getDouble($sender, substr($input, 1));
87 return $original + $value;
90 return $this->getDouble($sender, $input, $min, $max);
93 protected function getDouble(
CommandSender $sender,
string $value,
float $min = self::MIN_COORD,
float $max = self::MAX_COORD) :
float{
105 protected function getBoundedInt(
CommandSender $sender,
string $input,
int $min,
int $max) : ?
int{
106 if(!is_numeric($input)){
112 $sender->sendMessage(KnownTranslationFactory::commands_generic_num_tooBig($input, (
string) $max)->prefix(TextFormat::RED));
116 $sender->sendMessage(KnownTranslationFactory::commands_generic_num_tooSmall($input, (
string) $min)->prefix(TextFormat::RED));