25    public const NETWORK_ID = ProtocolInfo::SET_SPAWN_POSITION_PACKET;
 
   27    public const TYPE_PLAYER_SPAWN = 0;
 
   28    public const TYPE_WORLD_SPAWN = 1;
 
   30    public int $spawnType;
 
   32    public int $dimension;
 
   45        $result->spawnType = $spawnType;
 
   46        $result->spawnPosition = $spawnPosition;
 
   47        $result->dimension = $dimension;
 
   53        return self::create(self::TYPE_PLAYER_SPAWN, $spawnPosition, $dimension, $causingBlockPosition);
 
   56    public static function worldSpawn(
BlockPosition $spawnPosition, 
int $dimension) : self{
 
   57        return self::create(self::TYPE_WORLD_SPAWN, $spawnPosition, $dimension, new 
BlockPosition(Limits::INT32_MIN, Limits::INT32_MIN, Limits::INT32_MIN));
 
   61        $this->spawnType = VarInt::readSignedInt($in);
 
   62        $this->spawnPosition = CommonTypes::getBlockPosition($in);
 
   63        $this->dimension = VarInt::readSignedInt($in);
 
   64        $this->causingBlockPosition = CommonTypes::getBlockPosition($in);
 
 
   68        VarInt::writeSignedInt($out, $this->spawnType);
 
   69        CommonTypes::putBlockPosition($out, $this->spawnPosition);
 
   70        VarInt::writeSignedInt($out, $this->dimension);
 
   71        CommonTypes::putBlockPosition($out, $this->causingBlockPosition);
 
 
   75        return $handler->handleSetSpawnPosition($this);