geforkt von Mirrors/Paper
0ea3083817
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 1e843b72 #510: Add NamespacedKey#fromString() to fetch from user input a4d18241 #581: Add methods to modify despawn delay for wandering villagers CraftBukkit Changes: 0cd8f19f #802: Add methods to modify despawn delay for wandering villagers d5c5d998 SPIGOT-6362: ConcurrentModificationException: null --> Server Crash 8c7d69fe SPIGOT-5228: Entities that are removed during chunk unloads are not properly removed from the chunk.
43 Zeilen
2.5 KiB
Diff
43 Zeilen
2.5 KiB
Diff
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 04a149a4902790c6b6d3c54a1738fb0cf2d462f9..410e63e4d15fa6ba85683694444cd49c53446574 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -509,12 +509,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());
|
|
@@ -530,6 +525,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");
|