From 096e2382426da87e2f67d55b59868168cdef41ea Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Mon, 14 Jul 2014 14:07:43 +0200 Subject: [PATCH] Fixed #1628 invalid sender x,y,z on /spawnpoint, closes #1671 --- src/pocketmine/command/defaults/SpawnpointCommand.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/pocketmine/command/defaults/SpawnpointCommand.php b/src/pocketmine/command/defaults/SpawnpointCommand.php index 42acf1868f..d5e2c65bdc 100644 --- a/src/pocketmine/command/defaults/SpawnpointCommand.php +++ b/src/pocketmine/command/defaults/SpawnpointCommand.php @@ -50,14 +50,12 @@ class SpawnpointCommand extends VanillaCommand{ $target = $sender; }else{ $sender->sendMessage(TextFormat::RED . "Please provide a player!"); - return true; } }else{ $target = $sender->getServer()->getPlayer($args[0]); if($target === null){ $sender->sendMessage(TextFormat::RED . "Can't find player " . $args[0]); - return true; } } @@ -66,11 +64,12 @@ class SpawnpointCommand extends VanillaCommand{ if(count($args) === 4){ if($level !== null){ - $x = (int) $this->getRelativeDouble($sender->x, $sender, $args[1]); - $y = (int) $this->getRelativeDouble($sender->y, $sender, $args[2], 0, 128); - $z = (int) $this->getRelativeDouble($sender->z, $sender, $args[3]); + $pos = $sender instanceof Player ? $sender->getPosition() : $level->getSpawn(); + $x = (int) $this->getRelativeDouble($pos->x, $sender, $args[1]); + $y = $this->getRelativeDouble($pos->y, $sender, $args[2], 0, 128); + $z = $this->getRelativeDouble($pos->z, $sender, $args[3]); $target->setSpawn(new Position($x, $y, $z, $level)); - Command::broadcastCommandMessage($sender, "Set " . $target->getName() . "'s spawnpoint to " . $x . ", " . $y . ", " . $z); + Command::broadcastCommandMessage($sender, "Set " . $target->getDisplayName() . "'s spawnpoint to " . $x . ", " . $y . ", " . $z); return true; }