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