public function onJoin(PlayerJoinEvent $event) { $JoinMessage = $this->getConfig()->get("JoinMessage"); // So it can pull the users config (Message) via config :) $Sound = $this->getConfig()->get("Sound"); // So it can pull the sound the user wants $player = $event->getPlayer(); $event->getPlayer->sendMessage("{$JoinMessage}"); $player->getLevel()->addSound(new $Sound($player), [$player]); }
protected function doFirstSpawn() { $this->spawned = true; $this->sendSettings(); $this->setSpeed(0.1); $this->sendPotionEffects($this); $this->sendData($this); $this->inventory->sendContents($this); $this->inventory->sendArmorContents($this); $pk = new SetTimePacket(); $pk->time = $this->level->getTime(); $pk->started = $this->level->stopTime == false; $this->dataPacket($pk); $pos = $this->level->getSafeSpawn($this); $this->server->getPluginManager()->callEvent($ev = new PlayerRespawnEvent($this, $pos)); $pos = $ev->getRespawnPosition(); $pk = new RespawnPacket(); $pk->x = $pos->x; $pk->y = $pos->y; $pk->z = $pos->z; $this->dataPacket($pk); $pk = new PlayStatusPacket(); $pk->status = PlayStatusPacket::PLAYER_SPAWN; $this->dataPacket($pk); $this->server->getPluginManager()->callEvent($ev = new PlayerJoinEvent($this, new TranslationContainer(TextFormat::YELLOW . "%multiplayer.player.joined", [$this->getDisplayName()]))); if (strlen(trim($ev->getJoinMessage())) > 0) { $this->server->broadcastMessage($ev->getJoinMessage()); } $this->noDamageTicks = 60; foreach ($this->usedChunks as $index => $c) { Level::getXZ($index, $chunkX, $chunkZ); foreach ($this->level->getChunkEntities($chunkX, $chunkZ) as $entity) { if ($entity !== $this and !$entity->closed and $entity->isAlive()) { $entity->spawnTo($this); } } } $this->teleport($pos); $this->spawnToAll(); $this->updateExperience(); $this->setHealth($this->getHealth()); $this->setFood($this->getFood()); if ($this->getHealth() <= 0) { $pk = new RespawnPacket(); $pos = $this->getSpawn(); $pk->x = $pos->x; $pk->y = $pos->y; $pk->z = $pos->z; $this->dataPacket($pk); } $this->getLevel()->broadcastWeather($this->getLevel()->getWeather(), $this); }