From 211f8e041c69147d305897bfbba251295e93eaa9 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Thu, 1 Apr 2021 16:33:36 +0100 Subject: [PATCH] Prevent light queue overfill when no players are online --- .../0493-Optimize-Light-Engine.patch | 16 ++-------------- ...hangeEvent-not-firing-for-all-use-cases.patch | 6 +++--- ...drop-capture-to-capture-all-items-added.patch | 4 ++-- .../0646-Remove-stale-POIs.patch | 6 +++--- ...to-disable-pathfinding-updates-on-block.patch | 6 +++--- 5 files changed, 13 insertions(+), 25 deletions(-) diff --git a/Spigot-Server-Patches/0493-Optimize-Light-Engine.patch b/Spigot-Server-Patches/0493-Optimize-Light-Engine.patch index b47f9027f..f0edd65ee 100644 --- a/Spigot-Server-Patches/0493-Optimize-Light-Engine.patch +++ b/Spigot-Server-Patches/0493-Optimize-Light-Engine.patch @@ -25,7 +25,7 @@ Massive update to light to improve performance and chunk loading/generation. 8) Fix NPE risk that crashes server in getting nibble data diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java -index 19e02d12bb0c5a73066f7c57da40277918276210..f46f3ca87badefd668e70d792de5b3d3c0172a68 100644 +index 19e02d12bb0c5a73066f7c57da40277918276210..326c52f9f2cc729fd52162aeae18ec9dae3a4eaf 100644 --- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java @@ -1070,7 +1070,7 @@ public class ChunkProviderServer extends IChunkProvider { @@ -33,7 +33,7 @@ index 19e02d12bb0c5a73066f7c57da40277918276210..f46f3ca87badefd668e70d792de5b3d3 return true; } else { - ChunkProviderServer.this.lightEngine.queueUpdate(); -+ //ChunkProviderServer.this.lightEngine.queueUpdate(); // Paper - not needed ++ ChunkProviderServer.this.lightEngine.queueUpdate(); // Paper - not needed return super.executeNext() || execChunkTask; // Paper } } finally { @@ -439,18 +439,6 @@ index 7318103feafd12ed631f907a450c9dc3d665a9a3..b47cd2a8fb4920531d80acfcfe40f821 this.p.close(); this.world.asyncChunkTaskManager.close(true); // Paper - Required since we're closing regionfiles in the next line this.m.close(); -diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index e7cebe1277cb8fc54a080b93b34a66a2e962119b..0e738ace7d37011547378954aae91f79c7ebd544 100644 ---- a/src/main/java/net/minecraft/server/level/WorldServer.java -+++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -826,6 +826,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { - } - gameprofilerfiller.exit(); - timings.chunkTicksBlocks.stopTiming(); // Paper -+ getChunkProvider().getLightEngine().queueUpdate(); // Paper - // Paper end - } - } diff --git a/src/main/java/net/minecraft/util/thread/ThreadedMailbox.java b/src/main/java/net/minecraft/util/thread/ThreadedMailbox.java index 2efca1fe92b2e93dcbf5337eea8855b1b2b9a564..72bfda620f073fd3c3e4c43d78583386dadf95e6 100644 --- a/src/main/java/net/minecraft/util/thread/ThreadedMailbox.java diff --git a/Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 060c516f4..2eda283a6 100644 --- a/Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 0e738ace7d37011547378954aae91f79c7ebd544..7f5d3bcf8be30a6bcdd077bfbc416079e3d969c1 100644 +index e7cebe1277cb8fc54a080b93b34a66a2e962119b..ea6f7397add28e87d60834495420e52920d6e95c 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1987,12 +1987,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1986,12 +1986,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { } // Paper end @@ -24,7 +24,7 @@ index 0e738ace7d37011547378954aae91f79c7ebd544..7f5d3bcf8be30a6bcdd077bfbc416079 // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig.keepLoadedRange, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 54625156dd21607f27eb97f95dead60b806f19e1..1d1b150215c1e226fa2583829f0260cba4133f23 100644 +index 4a5027d6fbd6c68d0e3b43f74afdd49ffa22188c..0d22a15f91b1613f5f289ed570af3410d987f0dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -389,11 +389,13 @@ public class CraftWorld implements World { diff --git a/Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch b/Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch index 482af3fc0..cca4bb25e 100644 --- a/Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -33,7 +33,7 @@ index 831bc83cdbf15f08961cc8703be348b458d47fd3..5974cc9f895478eebd4922faa26d5a94 // Drop event experience if (flag && event != null) { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 7f5d3bcf8be30a6bcdd077bfbc416079e3d969c1..595194e0a0e746c45e3766433bb827b7b51129b5 100644 +index ea6f7397add28e87d60834495420e52920d6e95c..1a2fc4883ed16c98a2c96881bfee7e744feb24fc 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -99,6 +99,7 @@ import net.minecraft.world.entity.animal.EntityWaterAnimal; @@ -44,7 +44,7 @@ index 7f5d3bcf8be30a6bcdd077bfbc416079e3d969c1..595194e0a0e746c45e3766433bb827b7 import net.minecraft.world.entity.npc.NPC; import net.minecraft.world.entity.player.EntityHuman; import net.minecraft.world.entity.raid.PersistentRaid; -@@ -1289,6 +1290,13 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1288,6 +1289,13 @@ public class WorldServer extends World implements GeneratorAccessSeed { } else if (this.isUUIDTaken(entity)) { return false; } else { diff --git a/Spigot-Server-Patches/0646-Remove-stale-POIs.patch b/Spigot-Server-Patches/0646-Remove-stale-POIs.patch index b3acb7e6d..1532b6344 100644 --- a/Spigot-Server-Patches/0646-Remove-stale-POIs.patch +++ b/Spigot-Server-Patches/0646-Remove-stale-POIs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove stale POIs diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 595194e0a0e746c45e3766433bb827b7b51129b5..5da7d1df97e70248d01cb1c452b26cfba415a5b0 100644 +index 1a2fc4883ed16c98a2c96881bfee7e744feb24fc..066897256ebe0927b5c62c1d096df74e81aa0363 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -2066,8 +2066,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2065,8 +2065,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { Optional optional = VillagePlaceType.b(iblockdata); Optional optional1 = VillagePlaceType.b(iblockdata1); @@ -26,7 +26,7 @@ index 595194e0a0e746c45e3766433bb827b7b51129b5..5da7d1df97e70248d01cb1c452b26cfb optional.ifPresent((villageplacetype) -> { this.getMinecraftServer().execute(() -> { -@@ -2084,6 +2092,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2083,6 +2091,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } diff --git a/Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch b/Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch index 233f4b2be..4dbeae0b9 100644 --- a/Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch @@ -19,10 +19,10 @@ index 1ceacb6bbfe99069763845a8aef48a3fb4841e32..d2f6e1308a4dfec663770e2c7f4de0cf + } } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 07396504fbabc2eb006f2b7f8e53faafe67d5672..0a698a5a4a6502a488c9afb0ad97165e60030896 100644 +index ebb785df8c98e053f4e60f7fc7f216ea935cc541..492b57395cd51e39e1d88b193399ce02be378658 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1684,6 +1684,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1683,6 +1683,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @Override public void notify(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) { this.getChunkProvider().flagDirty(blockposition); @@ -30,7 +30,7 @@ index 07396504fbabc2eb006f2b7f8e53faafe67d5672..0a698a5a4a6502a488c9afb0ad97165e VoxelShape voxelshape = iblockdata.getCollisionShape(this, blockposition); VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition); -@@ -1712,6 +1713,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1711,6 +1712,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.tickingEntities = wasTicking; // Paper }