getServer()->getPlayerByPrefix($target); }elseif($sender instanceof Player){ $player = $sender; }else{ throw new InvalidCommandSyntaxException(); } if($player === null){ $sender->sendMessage(KnownTranslationFactory::commands_generic_player_notFound()->prefix(TextFormat::RED)); return null; } if( ($player === $sender && $this->testPermission($sender, $selfPermission)) || ($player !== $sender && $this->testPermission($sender, $otherPermission)) ){ return $player; } return null; } protected function getInteger(CommandSender $sender, string $value, int $min = self::MIN_COORD, int $max = self::MAX_COORD) : int{ $i = (int) $value; if($i < $min){ $i = $min; }elseif($i > $max){ $i = $max; } return $i; } protected function getRelativeDouble(float $original, CommandSender $sender, string $input, float $min = self::MIN_COORD, float $max = self::MAX_COORD) : float{ if($input[0] === "~"){ $value = $this->getDouble($sender, substr($input, 1)); return $original + $value; } return $this->getDouble($sender, $input, $min, $max); } protected function getDouble(CommandSender $sender, string $value, float $min = self::MIN_COORD, float $max = self::MAX_COORD) : float{ $i = (double) $value; if($i < $min){ $i = $min; }elseif($i > $max){ $i = $max; } return $i; } protected function getBoundedInt(CommandSender $sender, string $input, int $min, int $max) : ?int{ if(!is_numeric($input)){ throw new InvalidCommandSyntaxException(); } $v = (int) $input; if($v > $max){ $sender->sendMessage(KnownTranslationFactory::commands_generic_num_tooBig($input, (string) $max)->prefix(TextFormat::RED)); return null; } if($v < $min){ $sender->sendMessage(KnownTranslationFactory::commands_generic_num_tooSmall($input, (string) $min)->prefix(TextFormat::RED)); return null; } return $v; } }