mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-20 15:39:37 +00:00
Always poll ServerChunkCache tasks on main
This commit is contained in:
@@ -45,6 +45,40 @@ index 2723d5377567241921fef61952e474c1c0ee9bbf..548a33b857aef542279255368031a095
|
|||||||
Pair<BlockPos, Holder<Structure>> pair = level.getChunkSource().getGenerator().findNearestMapStructure(level, holderSet, blockPos, 100, false);
|
Pair<BlockPos, Holder<Structure>> pair = level.getChunkSource().getGenerator().findNearestMapStructure(level, holderSet, blockPos, 100, false);
|
||||||
stopwatch.stop();
|
stopwatch.stop();
|
||||||
if (pair == null) {
|
if (pair == null) {
|
||||||
|
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
index 6d5a15122079f2d1568ceb7086db21ad454f58e6..ecab2befa1f2f993ea4b4d088529745c2a37b73d 100644
|
||||||
|
--- a/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
+++ b/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
@@ -848,14 +848,25 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean pollTask() {
|
||||||
|
+ // Leaf start - Async Locator
|
||||||
|
// Paper start - rewrite chunk system
|
||||||
|
- final ServerChunkCache serverChunkCache = ServerChunkCache.this;
|
||||||
|
- if (serverChunkCache.runDistanceManagerUpdates()) {
|
||||||
|
- return true;
|
||||||
|
+ java.util.function.Supplier<Boolean> supplier = () -> {
|
||||||
|
+ final ServerChunkCache serverChunkCache = ServerChunkCache.this;
|
||||||
|
+ if (serverChunkCache.runDistanceManagerUpdates()) {
|
||||||
|
+ return true;
|
||||||
|
+ } else {
|
||||||
|
+ return super.pollTask() | ((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel) serverChunkCache.level).moonrise$getChunkTaskScheduler().executeMainThreadTask();
|
||||||
|
+ }
|
||||||
|
+ };
|
||||||
|
+ if (org.dreeam.leaf.config.modules.async.AsyncLocator.enabled && Thread.currentThread() instanceof org.dreeam.leaf.async.locate.AsyncLocator.AsyncLocatorThread) {
|
||||||
|
+ return MinecraftServer.getServer().scheduleWithResult((java.util.concurrent.CompletableFuture<Boolean> future) -> {
|
||||||
|
+ future.complete(supplier.get());
|
||||||
|
+ }).join();
|
||||||
|
} else {
|
||||||
|
- return super.pollTask() | ((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)serverChunkCache.level).moonrise$getChunkTaskScheduler().executeMainThreadTask();
|
||||||
|
+ return supplier.get();
|
||||||
|
}
|
||||||
|
// Paper end - rewrite chunk system
|
||||||
|
+ // Leaf end - Async Locator
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java
|
diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java
|
||||||
index 87ba416479df56bad5d13c01e96e92e45b7802a3..2508645b62e7f935dee00fe87b3a6446dbd22cf2 100644
|
index 87ba416479df56bad5d13c01e96e92e45b7802a3..2508645b62e7f935dee00fe87b3a6446dbd22cf2 100644
|
||||||
--- a/net/minecraft/world/entity/animal/Dolphin.java
|
--- a/net/minecraft/world/entity/animal/Dolphin.java
|
||||||
|
|||||||
Reference in New Issue
Block a user