/**
  * Listens for PlayerSetNameMessage and changes the player name.
  *
  * @param Connection $connection
  */
 private function handlePlayerNameChange(Connection $connection)
 {
     $connection->waitOnMessage(PlayerSetNameMessage::class, 9999)->then(function (PlayerSetNameMessage $message) use($connection) {
         $player = $connection->getPlayer();
         if ($player->getSeat() === null || $player->getTable() === null) {
             return;
         }
         if (!$message->isValid()) {
             $this->logger->info('Player sent invalid name', ['player' => $player->getName(), 'newName' => $message->getNewName()]);
             return;
         }
         $player->setName($message->getNewName());
         $table = $player->getTable();
         if ($table instanceof WebSocketObservableTable) {
             $table->broadcast(new PlayerNameChangedMessage($player));
         }
     });
 }