and/or " ); $this->setPermission("pocketmine.command.teleport"); } public function execute(CommandSender $sender, $currentAlias, array $args){ if(!$this->testPermission($sender)){ return true; } if(count($args) < 1 or count($args) > 4){ $sender->sendMessage(TextFormat::RED . "Usage: ".$this->usageMessage); return true; } $target = null; if(count($args) === 1 or count($args) === 3){ if($sender instanceof Player){ $target = $sender; }else{ $sender->sendMessage(TextFormat::RED . "Please provide a player!"); return true; } }else{ $target = Server::getInstance()->getPlayer($args[0]); if($target === null){ $sender->sendMessage(TextFormat::RED . "Can't find player ".$args[0]); return true; } } if(count($args) === 2){ $sourcePlayer = Server::getInstance()->getPlayer($args[0]); $targetPlayer = Server::getInstance()->getPlayer($args[1]); if($sourcePlayer === null){ $sender->sendMessage(TextFormat::RED . "Can't find player ".$args[0]); return true; } elseif($targetPlayer === null){ $sender->sendMessage(TextFormat::RED . "Can't find player ".$args[1]); return true; } if($targetPlayer->getLevel() === null){ $sender->sendMessage(TextFormat::RED . "Teleport failed."); return true; } $sourcePlayer->teleport(new Position($targetPlayer->x,$targetPlayer->y,$targetPlayer->z, $targetPlayer->getLevel())); Command::broadcastCommandMessage($sender, "Teleported ".$sourcePlayer->getName()." to ".$targetPlayer->getName()); } if(count($args) < 3){ $pos = new Position((int) $sender->x, (int) $sender->y, (int) $sender->z, $sender->getLevel()); $target->setSpawn($pos); Command::broadcastCommandMessage($sender, "Set ".$target->getName()."'s spawnpoint to ".$pos->x.", ".$pos->y.", ".$pos->z); return true; }elseif($target->getLevel() !== null){ $pos = count($args) === 4 ? 1:0; $x = $this->getRelativeDouble($target->x, $sender, $args[$pos++]); $y = $this->getRelativeDouble($target->y, $sender, $args[$pos++], 0, 128); $z = $this->getRelativeDouble($target->z, $sender, $args[$pos]); $target->teleport(new Vector3($x, $y, $z)); Command::broadcastCommandMessage($sender, "Teleported ".$target->getName()." to ".round($x, 2).", ".round($y, 2).", ".round($z, 2)); return true; } $sender->sendMessage(TextFormat::RED . "Usage: ".$this->usageMessage); return true; } }