geforkt von Mirrors/Paper
Fix plugins calling getChunkAtAsync asynchronously
While this method has async in it's name, it's not actually meant to be called asynchronously.... It just means IT will load the chunk asynchronously without blocking main. So fix this so that if a plugin calls it async, it forces the request back to main thread.
Dieser Commit ist enthalten in:
Ursprung
238ab72fce
Commit
18bd266258
@ -4182,6 +4182,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ if (immediate != null) {
|
||||
+ return CompletableFuture.completedFuture(immediate.getBukkitChunk());
|
||||
+ }
|
||||
+ } else {
|
||||
+ CompletableFuture<Chunk> future = new CompletableFuture<Chunk>();
|
||||
+ world.getMinecraftServer().execute(() -> {
|
||||
+ getChunkAtAsync(x, z, gen, urgent).whenComplete((chunk, err) -> {
|
||||
+ if (err != null) {
|
||||
+ future.completeExceptionally(err);
|
||||
+ } else {
|
||||
+ future.complete(chunk);
|
||||
+ }
|
||||
+ });
|
||||
+ });
|
||||
+ return future;
|
||||
+ }
|
||||
+
|
||||
+ return this.world.getChunkProvider().getChunkAtAsynchronously(x, z, gen, urgent).thenComposeAsync((either) -> {
|
||||
|
@ -823,7 +823,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
--- 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 {
|
||||
}
|
||||
return future;
|
||||
}
|
||||
|
||||
+ if (!urgent) {
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren