public function spawnTo(Player $player)
 {
     if (isset($this->hasSpawned[$player->getLoaderId()]) or !isset($player->usedChunks[Level::chunkHash($this->chunk->getX(), $this->chunk->getZ())])) {
         return;
     }
     if (!$this->dummyReceiver instanceof DummyReceiver) {
         return;
     }
     $pk = new AddPlayerPacket();
     $pk->uuid = $this->dummyReceiver->randomUUID;
     $pk->username = $this->dummyReceiver->getName();
     $pk->eid = $this->getId();
     $pk->x = $this->x;
     $pk->y = $this->y;
     $pk->z = $this->z;
     $pk->speedX = $this->motionX;
     $pk->speedY = $this->motionY;
     $pk->speedZ = $this->motionZ;
     $pk->yaw = $this->yaw;
     $pk->pitch = $this->pitch;
     $pk->item = Item::get(Item::DIAMOND_PICKAXE);
     $pk->metadata = $this->dummyReceiver->getDataProperties();
     $player->dataPacket($pk);
     $this->dummyReceiver->getInventory()->sendArmorContents($player);
     if (!$this instanceof Player) {
         $this->server->removePlayerListData($this->dummyReceiver->randomUUID, [$player]);
     }
     $this->hasSpawned[$player->getLoaderId()] = $player;
 }
 /**
  * 더미 이벤트 수신 세션을 생성합니다.
  *
  * @param string $username        	
  * @param string $address        	
  * @param number $port        	
  * @return DummyReceiver
  */
 public function openSession($username, $address = "DUMMYPLAYER", $port = 0)
 {
     $player = new DummyReceiver($this, null, $address, $port);
     $player->setName($username);
     $player->setDisplayName($username);
     $player->setNameTagVisible(true);
     $player->setNameTag($username);
     $player->setSkin($this->skin, "dummy");
     $player->doInit();
     $this->sessions->attach($player, $username);
     $this->ackStore[$username] = [];
     $this->replyStore[$username] = [];
     $this->server->addPlayer($username, $player);
     $this->server->addOnlinePlayer($player);
     return $player;
 }