mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-06 18:50:51 +01:00
3360d06f76
* Houston, we got a patch * is this the end of the beginning or the beginning of the end
32 lines
No EOL
1.6 KiB
Diff
32 lines
No EOL
1.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Tue, 21 May 2019 02:34:04 +0100
|
|
Subject: [PATCH] improve CraftWorld#isChunkLoaded
|
|
|
|
getChunkAt will request the chunk using vanillas chunk loading system,
|
|
which while we're not going to load the chunk, does involve the server
|
|
waiting for the execution queue to get to our request; We can just query
|
|
the chunk status and get a response now, vs having to wait
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index 12362d560..29c14c707 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -0,0 +0,0 @@ public class CraftWorld implements World {
|
|
|
|
@Override
|
|
public boolean isChunkLoaded(int x, int z) {
|
|
- net.minecraft.server.Chunk chunk = world.getChunkProvider().getChunkAt(x, z, false);
|
|
- return chunk != null;
|
|
+ return world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z) != null; // Paper
|
|
}
|
|
|
|
@Override
|
|
public boolean isChunkGenerated(int x, int z) {
|
|
try {
|
|
- return isChunkLoaded(x, z) || world.getChunkProvider().playerChunkMap.read(new ChunkCoordIntPair(x, z)) != null;
|
|
+ return world.getChunkProvider().getChunkAtIfCachedImmediately(x, z) != null || world.getChunkProvider().playerChunkMap.read(new ChunkCoordIntPair(x, z)) != null; // Paper (TODO check if the first part can be removed)
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
--
|