From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Sun, 27 Oct 2024 14:18:28 -0700 Subject: [PATCH] Avoid issues with certain tasks not processing during sleep Execute processQueue tasks during sleep: needed for console tab completions, pre join event, etc. Upstream has set precedent that the bukkit scheduler will still tick during sleep, which avoids some problems with plugins not accounting for the new sleep feature, but can still lead to others. Because of this we have disabled sleep by default, which avoids the problem and makes it more obvious to check if this is the cause of issues when enabled. We also unload chunks during sleep to prevent memory leaks caused by plugin chunk loads. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index af7c6f56444c0e495fd39da872f8030199afc634..7933d6900dac67a24fb5f9378097dbde34be30b1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1639,6 +1639,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop true, false); + } + // Paper end - avoid issues with certain tasks not processing during sleep this.server.spark.executeMainThreadTasks(); // Paper - spark this.tickConnection(); this.server.spark.tickEnd(((double)(System.nanoTime() - lastTick) / 1000000D)); // Paper - spark diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java index 52e61f75f922a075ccc745198f4ba6ad8fa58ea2..149a542c4afa09d491cb33ae33563ba15786758d 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java @@ -160,7 +160,7 @@ public class DedicatedServerProperties extends Settings