pocketmine\command\defaults\CaveCommand::execute PHP Метод

execute() публичный Метод

public execute ( pocketmine\command\CommandSender $sender, $commandLabel, array $args )
$sender pocketmine\command\CommandSender
$args array
    public function execute(CommandSender $sender, $commandLabel, array $args)
    {
        if (!$this->testPermission($sender)) {
            return true;
        }
        //TODO: Get rid of this and add support for relative coordinaties
        if ($sender instanceof Player and $args[0] == "getmypos") {
            $sender->sendMessage("Your position: ({$sender->getX()}, {$sender->getY()}, {$sender->getZ()}, {$sender->getLevel()->getFolderName()})");
            return true;
        }
        //0:旋转角度 1:洞穴长度 2:分叉数 3:洞穴强度
        if (count($args) != 8) {
            $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
            return false;
        }
        $level = $sender->getServer()->getLevelByName($args[7]);
        if (!$level instanceof Level) {
            $sender->sendMessage(TextFormat::RED . "Wrong LevelName");
            return false;
        }
        $pos = new Position($args[4], $args[5], $args[6], $level);
        $caves[0] = isset($args[0]) ? $args[0] : mt_rand(1, 360);
        $caves[1] = isset($args[1]) ? $args[1] : mt_rand(10, 300);
        $caves[2] = isset($args[2]) ? $args[2] : mt_rand(1, 6);
        $caves[4] = isset($args[3]) ? $args[3] : mt_rand(1, 10);
        $caves[3] = [false, true, true];
        $sender->sendMessage(new TranslationContainer("pocketmine.commands.cave.info", [$caves[0], $caves[1], $caves[2], $caves[3]]));
        $sender->sendMessage(new TranslationContainer(TextFormat::YELLOW . "%pocketmine.commands.cave.start"));
        $sender->sendMessage($pos->x . " " . $pos->y . " " . $pos->z);
        $this->caves($pos, $caves);
        $sender->sendMessage(new TranslationContainer(TextFormat::GREEN . "%pocketmine.commands.cave.success"));
        return true;
    }