Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 19:10:09 +01:00
a054aa6f02
We store a reference to the chunk the entity is currently in, so use it to more accurately unregister it in chunkCheck Should maybe fix some entity loss issues.
47 Zeilen
2.8 KiB
Diff
47 Zeilen
2.8 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/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
index d6cb21e3c3d1ccfd27f684a701bf7f74648634f8..b5b8fdcab1c84b52d56ed67bbded745763915ff7 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -814,12 +814,13 @@ public class WorldServer extends World {
|
|
} else if (this.worldData.getType() == WorldType.DEBUG_ALL_BLOCK_STATES) {
|
|
this.worldData.setSpawn(BlockPosition.ZERO.up());
|
|
} else {
|
|
- WorldChunkManager worldchunkmanager = this.getChunkProvider().getChunkGenerator().getWorldChunkManager();
|
|
- List<BiomeBase> list = worldchunkmanager.a();
|
|
- Random random = new Random(this.getSeed());
|
|
- BlockPosition blockposition = worldchunkmanager.a(0, this.getSeaLevel(), 0, 256, list, random);
|
|
- ChunkCoordIntPair chunkcoordintpair = blockposition == null ? new ChunkCoordIntPair(0, 0) : new ChunkCoordIntPair(blockposition);
|
|
-
|
|
+// Paper start - moved down
|
|
+// WorldChunkManager worldchunkmanager = this.getChunkProvider().getChunkGenerator().getWorldChunkManager();
|
|
+// List<BiomeBase> list = worldchunkmanager.a();
|
|
+// Random random = new Random(this.getSeed());
|
|
+// BlockPosition blockposition = worldchunkmanager.a(0, this.getSeaLevel(), 0, 256, list, random);
|
|
+// ChunkCoordIntPair chunkcoordintpair = blockposition == null ? new ChunkCoordIntPair(0, 0) : new ChunkCoordIntPair(blockposition);
|
|
+// Paper end
|
|
// CraftBukkit start
|
|
if (this.generator != null) {
|
|
Random rand = new Random(this.getSeed());
|
|
@@ -836,6 +837,13 @@ public class WorldServer extends World {
|
|
}
|
|
// CraftBukkit end
|
|
|
|
+ // Paper start - this is useless if craftbukkit returns early
|
|
+ WorldChunkManager worldchunkmanager = this.getChunkProvider().getChunkGenerator().getWorldChunkManager();
|
|
+ List<BiomeBase> list = worldchunkmanager.a();
|
|
+ Random random = new Random(this.getSeed());
|
|
+ BlockPosition blockposition = worldchunkmanager.a(0, this.getSeaLevel(), 0, 256, list, random);
|
|
+ ChunkCoordIntPair chunkcoordintpair = blockposition == null ? new ChunkCoordIntPair(0, 0) : new ChunkCoordIntPair(blockposition);
|
|
+ // Paper end
|
|
if (blockposition == null) {
|
|
WorldServer.LOGGER.warn("Unable to find spawn biome");
|
|
}
|