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 e6e8ab0b39a11b0aed247b9b80a6c1f97505546b..eb134ccb68dc135ab6db4c5a1d29edb321cf3f59 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -630,12 +630,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas } else if (flag1) { iworlddataserver.setSpawn(BlockPosition.ZERO.up(), 0.0F); } else { - WorldChunkManager worldchunkmanager = chunkgenerator.getWorldChunkManager(); - Random random = new Random(worldserver.getSeed()); - BlockPosition blockposition = worldchunkmanager.a(0, worldserver.getSeaLevel(), 0, 256, (biomebase) -> { - return biomebase.b().b(); - }, random); - ChunkCoordIntPair chunkcoordintpair = blockposition == null ? new ChunkCoordIntPair(0, 0) : new ChunkCoordIntPair(blockposition); + // Paper start - moved down // CraftBukkit start if (worldserver.generator != null) { Random rand = new Random(worldserver.getSeed()); @@ -651,6 +646,15 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas } } // 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 + WorldChunkManager worldchunkmanager = chunkgenerator.getWorldChunkManager(); + Random random = new Random(worldserver.getSeed()); + BlockPosition blockposition = worldchunkmanager.a(0, worldserver.getSeaLevel(), 0, 256, (biomebase) -> { + return biomebase.b().b(); + }, random); + ChunkCoordIntPair chunkcoordintpair = blockposition == null ? new ChunkCoordIntPair(0, 0) : new ChunkCoordIntPair(blockposition); + // Paper end if (blockposition == null) { MinecraftServer.LOGGER.warn("Unable to find spawn biome");