123        if($player !== null){
 
  124            $other = $this->getOtherHalf();
 
  125            $playerPos = $player->getPosition();
 
  127                $player->sendMessage(TextFormat::GRAY . 
"This bed is incomplete");
 
  130            }elseif($playerPos->distanceSquared($this->position) > 4 && $playerPos->distanceSquared($other->position) > 4){
 
  131                $player->sendMessage(KnownTranslationFactory::tile_bed_tooFar()->prefix(TextFormat::GRAY));
 
  135            $time = $this->position->getWorld()->getTimeOfDay();
 
  137            $isNight = ($time >= World::TIME_NIGHT && $time < World::TIME_SUNRISE);
 
  140                $player->sendMessage(KnownTranslationFactory::tile_bed_noSleep()->prefix(TextFormat::GRAY));
 
  145            $b = ($this->isHeadPart() ? $this : $other);
 
  148                $player->sendMessage(KnownTranslationFactory::tile_bed_occupied()->prefix(TextFormat::GRAY));
 
  153            $player->sleepOn($b->position);
 
 
  176        if($this->canBeSupportedAt($blockReplace)){
 
  177            $this->facing = $player !== 
null ? $player->getHorizontalFacing() : Facing::NORTH;
 
  179            $next = $this->getSide($this->getOtherHalfSide());
 
  180            if($next->canBeReplaced() && $this->canBeSupportedAt($next)){
 
  181                $nextState = clone $this;
 
  182                $nextState->head = 
true;
 
  183                $tx->
addBlock($blockReplace->position, $this)->addBlock($next->position, $nextState);