diff --git a/src/factions/engine/MainEngine.php b/src/factions/engine/MainEngine.php index 1fa8603..3fa8f07 100755 --- a/src/factions/engine/MainEngine.php +++ b/src/factions/engine/MainEngine.php @@ -282,11 +282,9 @@ public function onChunksChangeInner($event) */ public function teleportToHomeOnRespawn(PlayerRespawnEvent $event) { $player = Members::get($event->getPlayer()); - if($player->hasFaction()) { - if($player->getFaction()->isValidHome($player->getFaction()->getHome())) { - $event->setRespawnPosition($player->getFaction()->getHome()); - $player->sendMessage(Text::parse("Teleported to faction home")); - } + if($player->hasFaction() && $player->getFaction()->hasHome()) { + $event->setRespawnPosition($player->getFaction()->getHome()); + $player->sendMessage(Text::parse("Teleported to faction home")); } } diff --git a/src/factions/entity/Faction.php b/src/factions/entity/Faction.php index b67da4e..f18822c 100755 --- a/src/factions/entity/Faction.php +++ b/src/factions/entity/Faction.php @@ -279,10 +279,13 @@ public function verifyHome() $this->sendMessage(Localizer::translatable("home-out-of-bounds")); } - public function isValidHome($home): bool + public function hasHome(): bool { + $this->verifyHome(); + return $this->home instanceof Position; + } + + public function isValidHome(Position $home): bool { - if ($home === null) return false; - if (!$home instanceof Position) return false; if (!Gameplay::get("home.must-be-in-claimed-territories", true)) return true; if (Plots::getFactionAt($home) === $this) return true; return false;