|
245 | 245 | if (profiledDuration != null) { |
246 | 246 | profiledDuration.finish(true); |
247 | 247 | } |
248 | | -@@ -391,31 +_,133 @@ |
| 248 | +@@ -391,31 +_,137 @@ |
249 | 249 | } |
250 | 250 | } |
251 | 251 |
|
|
366 | 366 | + ); |
367 | 367 | + } |
368 | 368 | + this.addLevel(serverLevel); |
369 | | -+ this.initWorld(serverLevel, serverLevelData, worldOptions, null, 0.0F, 0.0F); |
| 369 | ++ this.initWorld(serverLevel, serverLevelData, worldOptions, null); |
370 | 370 | + } |
371 | | -+ public void initWorld(ServerLevel serverLevel, net.minecraft.world.level.storage.PrimaryLevelData serverLevelData, WorldOptions worldOptions, io.papermc.paper.math.@Nullable Position forcedPosition, float forcedPitch, float forcedYaw) { |
| 371 | ++ public void initWorld(ServerLevel serverLevel, net.minecraft.world.level.storage.PrimaryLevelData serverLevelData, WorldOptions worldOptions, org.bukkit.@Nullable WorldCreator worldCreator) { |
372 | 372 | + final boolean isDebugWorld = this.worldData.isDebugWorld(); |
373 | 373 | + if (serverLevel.generator != null) { |
374 | 374 | + serverLevel.getWorld().getPopulators().addAll(serverLevel.generator.getDefaultPopulators(serverLevel.getWorld())); |
|
380 | 380 | try { |
381 | 381 | - setInitialSpawn(serverLevel, serverLevelData, worldOptions.generateBonusChest(), isDebugWorld, this.levelLoadListener); |
382 | 382 | + // Paper start - Allow zeroing spawn location |
383 | | -+ if (forcedPosition == null) { |
| 383 | ++ if (worldCreator == null || worldCreator.forcedSpawnPosition() == null) { |
384 | 384 | + setInitialSpawn(serverLevel, serverLevelData, worldOptions.generateBonusChest(), isDebugWorld, serverLevel.levelLoadListener); // Paper - per world level load listener & rework world loading process |
385 | 385 | + } else { |
386 | | -+ serverLevelData.setSpawn(LevelData.RespawnData.of(serverLevel.dimension(), io.papermc.paper.util.MCUtil.toBlockPos(forcedPosition), forcedYaw, forcedPitch)); |
| 386 | ++ serverLevelData.setSpawn(LevelData.RespawnData.of(serverLevel.dimension(), |
| 387 | ++ io.papermc.paper.util.MCUtil.toBlockPos(worldCreator.forcedSpawnPosition()), |
| 388 | ++ java.util.Objects.requireNonNullElse(worldCreator.forcedSpawnYaw(), 0.0F), |
| 389 | ++ java.util.Objects.requireNonNullElse(worldCreator.forcedSpawnPitch(), 0.0F) |
| 390 | ++ )); |
387 | 391 | + } |
388 | 392 | + // Paper end - Allow zeroing spawn location |
389 | 393 | serverLevelData.setInitialized(true); |
|
0 commit comments