55    public function __construct(
 
   62    public function setUp() : 
void{
 
   63        Timings::$playerNetworkSendPreSpawnGameData->startTiming();
 
   65            $location = $this->player->getLocation();
 
   66            $world = $location->getWorld();
 
   68            $typeConverter = $this->session->getTypeConverter();
 
   70            $this->session->getLogger()->debug(
"Preparing StartGamePacket");
 
   72            $levelSettings->seed = -1;
 
   73            $levelSettings->spawnSettings = 
new SpawnSettings(SpawnSettings::BIOME_TYPE_DEFAULT, 
"", DimensionIds::OVERWORLD); 
 
   74            $levelSettings->worldGamemode = $typeConverter->coreGameModeToProtocol($this->
server->getGamemode());
 
   75            $levelSettings->difficulty = $world->getDifficulty();
 
   76            $levelSettings->spawnPosition = BlockPosition::fromVector3($world->getSpawnLocation());
 
   77            $levelSettings->hasAchievementsDisabled = 
true;
 
   78            $levelSettings->time = $world->getTime();
 
   79            $levelSettings->eduEditionOffer = 0;
 
   80            $levelSettings->rainLevel = 0; 
 
   81            $levelSettings->lightningLevel = 0;
 
   82            $levelSettings->commandsEnabled = 
true;
 
   83            $levelSettings->gameRules = [
 
   87            $levelSettings->experiments = 
new Experiments([], 
false);
 
   90                $this->player->getId(),
 
   91                $this->player->getId(),
 
   92                $typeConverter->coreGameModeToProtocol($this->player->getGamemode()),
 
   93                $this->player->getOffsetPosition($location),
 
  107                sprintf(
"%s %s", VersionInfo::NAME, VersionInfo::VERSION()->getFullVersion(
true)),
 
  108                Uuid::fromString(Uuid::NIL),
 
  117            $this->session->getLogger()->debug(
"Sending items");
 
  120            $this->session->getLogger()->debug(
"Sending actor identifiers");
 
  121            $this->session->sendDataPacket(StaticPacketCache::getInstance()->getAvailableActorIdentifiers());
 
  123            $this->session->getLogger()->debug(
"Sending biome definitions");
 
  124            $this->session->sendDataPacket(StaticPacketCache::getInstance()->getBiomeDefs());
 
  126            $this->session->getLogger()->debug(
"Sending attributes");
 
  127            $this->session->getEntityEventBroadcaster()->syncAttributes([$this->session], $this->player, $this->player->getAttributeMap()->getAll());
 
  129            $this->session->getLogger()->debug(
"Sending available commands");
 
  130            $this->session->syncAvailableCommands();
 
  132            $this->session->getLogger()->debug(
"Sending abilities");
 
  133            $this->session->syncAbilities($this->player);
 
  134            $this->session->syncAdventureSettings();
 
  136            $this->session->getLogger()->debug(
"Sending effects");
 
  137            foreach($this->player->getEffects()->all() as $effect){
 
  138                $this->session->getEntityEventBroadcaster()->onEntityEffectAdded([$this->session], $this->player, $effect, 
false);
 
  141            $this->session->getLogger()->debug(
"Sending actor metadata");
 
  142            $this->player->sendData([$this->player]);
 
  144            $this->session->getLogger()->debug(
"Sending inventory");
 
  145            $this->inventoryManager->syncAll();
 
  146            $this->inventoryManager->syncSelectedHotbarSlot();
 
  148            $this->session->getLogger()->debug(
"Sending creative inventory data");
 
  149            $this->inventoryManager->syncCreative();
 
  151            $this->session->getLogger()->debug(
"Sending crafting data");
 
  152            $this->session->sendDataPacket(CraftingDataCache::getInstance()->getCache($this->
server->getCraftingManager()));
 
  154            $this->session->getLogger()->debug(
"Sending player list");
 
  155            $this->session->syncPlayerList($this->
server->getOnlinePlayers());
 
  157            Timings::$playerNetworkSendPreSpawnGameData->stopTiming();
 
  162        $this->player->setViewDistance($packet->radius);
 
 
static create(int $actorUniqueId, int $actorRuntimeId, int $playerGamemode, Vector3 $playerPosition, float $pitch, float $yaw, CacheableNbt $playerActorProperties, LevelSettings $levelSettings, string $levelId, string $worldName, string $premiumWorldTemplateId, bool $isTrial, PlayerMovementSettings $playerMovementSettings, int $currentTick, int $enchantmentSeed, string $multiplayerCorrelationId, bool $enableNewInventorySystem, string $serverSoftwareVersion, UuidInterface $worldTemplateId, bool $enableClientSideChunkGeneration, bool $blockNetworkIdsAreHashes, bool $enableTickDeathSystems, NetworkPermissions $networkPermissions, array $blockPalette, int $blockPaletteChecksum,)