2019-08-19 07:40:04 +08:00
|
|
|
From 90d05dc9e70d89f1d55c4f96b06311ab0a7e37a7 Mon Sep 17 00:00:00 2001
|
2019-05-21 09:37:47 +08:00
|
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
|
|
Date: Tue, 21 May 2019 02:34:04 +0100
|
2019-05-22 04:32:47 +08:00
|
|
|
Subject: [PATCH] improve CraftWorld#isChunkLoaded
|
2019-05-21 09:37:47 +08:00
|
|
|
|
2019-05-22 04:32:47 +08:00
|
|
|
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
|
2019-05-21 09:37:47 +08:00
|
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
2019-08-19 07:40:04 +08:00
|
|
|
index 91b65fde05..b6ca8a9e94 100644
|
2019-05-21 09:37:47 +08:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
2019-08-19 07:40:04 +08:00
|
|
|
@@ -400,14 +400,13 @@ public class CraftWorld implements World {
|
2019-05-21 09:37:47 +08:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isChunkLoaded(int x, int z) {
|
|
|
|
- net.minecraft.server.Chunk chunk = world.getChunkProvider().getChunkAt(x, z, false);
|
2019-05-26 09:56:30 +08:00
|
|
|
- return chunk != null;
|
2019-06-11 08:29:30 +08:00
|
|
|
+ return world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z) != null; // Paper
|
2019-05-21 09:37:47 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2019-06-14 10:27:40 +08:00
|
|
|
public boolean isChunkGenerated(int x, int z) {
|
|
|
|
try {
|
|
|
|
- return isChunkLoaded(x, z) || world.getChunkProvider().playerChunkMap.chunkExists(new ChunkCoordIntPair(x, z));
|
|
|
|
+ return world.getChunkProvider().getChunkAtIfCachedImmediately(x, z) != null || world.getChunkProvider().playerChunkMap.chunkExists(new ChunkCoordIntPair(x, z)); // Paper
|
|
|
|
} catch (IOException ex) {
|
|
|
|
throw new RuntimeException(ex);
|
|
|
|
}
|
2019-05-21 09:37:47 +08:00
|
|
|
--
|
2019-08-19 07:40:04 +08:00
|
|
|
2.22.1
|
2019-05-21 09:37:47 +08:00
|
|
|
|