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