Paper/Spigot-Server-Patches/0300-Add-async-chunk-load-API.patch

33 lines
1.3 KiB
Diff
Raw Normal View History

From 3787c26863d8c99bc691d42779ad2b414097f826 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 21 Jul 2018 16:55:04 -0400
Subject: [PATCH] Add async chunk load API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index e4c4cdb980..c2aa3917bf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -156,6 +156,18 @@ public class CraftWorld implements World {
}
}
+ // Paper start - Async chunk load API
+ @Override
+ public java.util.concurrent.CompletableFuture<Chunk> getChunkAtAsync(final int x, final int z, final boolean gen) {
+ final ChunkProviderServer cps = this.world.getChunkProviderServer();
+ java.util.concurrent.CompletableFuture<Chunk> future = new java.util.concurrent.CompletableFuture<>();
+ net.minecraft.server.Chunk chunk = cps.getChunkAt(x, z, true, gen);
+ // TODO: Add back async variant
+ future.complete(chunk != null ? chunk.bukkitChunk : null);
+ return future;
+ }
+ // Paper end
+
public Chunk getChunkAt(int x, int z) {
return this.world.getChunkProviderServer().getChunkAt(x, z, true, true).bukkitChunk;
}
--
2.19.0