From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paul Sauve <paul@burngames.net> Date: Sun, 14 Jul 2019 21:05:03 -0500 Subject: [PATCH] Do less work if we have a custom Bukkit generator If the Bukkit generator already has a spawn, use it immediately instead of spending time generating one that we won't use diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 643d75b999c3da006eaaab11f4acd77e807683d4..753e6f609189c589514739bea80007bace3c89d2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -628,12 +628,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } else if (debugWorld) { iworlddataserver.setSpawn(BlockPos.ZERO.above(), 0.0F); } else { - BiomeSource worldchunkmanager = chunkgenerator.getBiomeSource(); - Random random = new Random(world.getSeed()); - BlockPos blockposition = worldchunkmanager.findBiomeHorizontal(0, world.getSeaLevel(), 0, 256, (biomebase) -> { - return biomebase.getMobSettings().playerSpawnFriendly(); - }, random); - ChunkPos chunkcoordintpair = blockposition == null ? new ChunkPos(0, 0) : new ChunkPos(blockposition); + // Paper start - moved down // CraftBukkit start if (world.generator != null) { Random rand = new Random(world.getSeed()); @@ -649,6 +644,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } } // CraftBukkit end + // Paper start - if the generator created a spawn for us, then there is no need for us to also create a spawn - + // only do it if the generator did not + BiomeSource worldchunkmanager = chunkgenerator.getBiomeSource(); + Random random = new Random(world.getSeed()); + BlockPos blockposition = worldchunkmanager.findBiomeHorizontal(0, world.getSeaLevel(), 0, 256, (biomebase) -> { + return biomebase.getMobSettings().playerSpawnFriendly(); + }, random); + ChunkPos chunkcoordintpair = blockposition == null ? new ChunkPos(0, 0) : new ChunkPos(blockposition); + // Paper end if (blockposition == null) { MinecraftServer.LOGGER.warn("Unable to find spawn biome");