From 81f4405e2630f408a07793564b6eb28b562ed78d Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Fri, 26 Apr 2024 19:33:30 -0700 Subject: [PATCH] add back hunk to async SavedData IO --- ...d-missing-team-sidebar-display-slots.patch | 18 +++++------ ...nd-End-Portal-Frames-from-being-des.patch} | 0 ...ance-map-to-optimise-entity-tracker.patch} | 0 ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...> 1005-Remove-streams-from-hot-code.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...=> 1009-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...> 1011-Execute-chunk-tasks-mid-tick.patch} | 8 ++--- ... 1012-Optimise-random-block-ticking.patch} | 2 +- ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 2 +- ...tch => 1016-Collision-optimisations.patch} | 0 ...n-checking-in-player-move-packet-ha.patch} | 0 ...e-disarming-not-working-as-intended.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ate-Current-redstone-implementation.patch} | 2 +- ...21-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1022-Properly-resend-entities.patch} | 0 ...pers.patch => 1023-Optimize-Hoppers.patch} | 0 ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1025-Actually-optimise-explosions.patch} | 0 ... 1026-Optimise-chunk-tick-iteration.patch} | 8 ++--- ...atch => 1027-Lag-compensation-ticks.patch} | 2 +- ...28-Optimise-nearby-player-retrieval.patch} | 2 +- ... 1029-Distance-manager-tick-timings.patch} | 0 ...-Oversized-block-entities-in-chunks.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 0 ...> 1033-API-for-checking-sent-chunks.patch} | 0 ...dle-pdc-and-custom-tags-in-ItemMeta.patch} | 0 ...g-old-serialized-names-to-new-names.patch} | 0 ...-for-mobs-immune-to-default-effects.patch} | 0 ... => 1037-Deep-clone-nbt-tags-in-PDC.patch} | 0 ...038-Support-old-UUID-format-for-NBT.patch} | 0 ...39-Fix-shield-disable-inconsistency.patch} | 0 ...ch => 1040-Write-SavedData-IO-async.patch} | 30 +++++++++++++++---- 40 files changed, 46 insertions(+), 28 deletions(-) rename patches/server/{1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 1002-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (100%) rename patches/server/{1004-Use-distance-map-to-optimise-entity-tracker.patch => 1003-Use-distance-map-to-optimise-entity-tracker.patch} (100%) rename patches/server/{1005-Optimize-Bit-Operations-by-inlining.patch => 1004-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/server/{1006-Remove-streams-from-hot-code.patch => 1005-Remove-streams-from-hot-code.patch} (100%) rename patches/server/{1007-Eigencraft-redstone-implementation.patch => 1006-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1007-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{1009-Improve-boat-collision-performance.patch => 1008-Improve-boat-collision-performance.patch} (100%) rename patches/server/{1010-Optimise-general-POI-access.patch => 1009-Optimise-general-POI-access.patch} (100%) rename patches/server/{1011-Custom-table-implementation-for-blockstate-state-loo.patch => 1010-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{1012-Execute-chunk-tasks-mid-tick.patch => 1011-Execute-chunk-tasks-mid-tick.patch} (96%) rename patches/server/{1013-Optimise-random-block-ticking.patch => 1012-Optimise-random-block-ticking.patch} (99%) rename patches/server/{1014-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1013-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{1015-Use-Velocity-compression-and-cipher-natives.patch => 1014-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{1016-Detail-more-information-in-watchdog-dumps.patch => 1015-Detail-more-information-in-watchdog-dumps.patch} (99%) rename patches/server/{1017-Collision-optimisations.patch => 1016-Collision-optimisations.patch} (100%) rename patches/server/{1018-Optimise-collision-checking-in-player-move-packet-ha.patch => 1017-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{1019-Fix-tripwire-disarming-not-working-as-intended.patch => 1018-Fix-tripwire-disarming-not-working-as-intended.patch} (100%) rename patches/server/{1020-Fix-entity-type-tags-suggestions-in-selectors.patch => 1019-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{1021-Add-Alternate-Current-redstone-implementation.patch => 1020-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{1022-optimize-dirt-and-snow-spreading.patch => 1021-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{1023-Properly-resend-entities.patch => 1022-Properly-resend-entities.patch} (100%) rename patches/server/{1024-Optimize-Hoppers.patch => 1023-Optimize-Hoppers.patch} (100%) rename patches/server/{1025-Improve-performance-of-mass-crafts.patch => 1024-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{1026-Actually-optimise-explosions.patch => 1025-Actually-optimise-explosions.patch} (100%) rename patches/server/{1027-Optimise-chunk-tick-iteration.patch => 1026-Optimise-chunk-tick-iteration.patch} (98%) rename patches/server/{1028-Lag-compensation-ticks.patch => 1027-Lag-compensation-ticks.patch} (98%) rename patches/server/{1029-Optimise-nearby-player-retrieval.patch => 1028-Optimise-nearby-player-retrieval.patch} (99%) rename patches/server/{1030-Distance-manager-tick-timings.patch => 1029-Distance-manager-tick-timings.patch} (100%) rename patches/server/{1031-Handle-Oversized-block-entities-in-chunks.patch => 1030-Handle-Oversized-block-entities-in-chunks.patch} (100%) rename patches/server/{1032-Send-full-pos-packets-for-hard-colliding-entities.patch => 1031-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{1033-Fix-and-optimise-world-force-upgrading.patch => 1032-Fix-and-optimise-world-force-upgrading.patch} (100%) rename patches/server/{1034-API-for-checking-sent-chunks.patch => 1033-API-for-checking-sent-chunks.patch} (100%) rename patches/server/{1035-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch => 1034-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch} (100%) rename patches/server/{1036-handle-converting-old-serialized-names-to-new-names.patch => 1035-handle-converting-old-serialized-names-to-new-names.patch} (100%) rename patches/server/{1037-Add-config-for-mobs-immune-to-default-effects.patch => 1036-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{1038-Deep-clone-nbt-tags-in-PDC.patch => 1037-Deep-clone-nbt-tags-in-PDC.patch} (100%) rename patches/server/{1039-Support-old-UUID-format-for-NBT.patch => 1038-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/server/{1040-Fix-shield-disable-inconsistency.patch => 1039-Fix-shield-disable-inconsistency.patch} (100%) rename patches/server/{1002-Write-SavedData-IO-async.patch => 1040-Write-SavedData-IO-async.patch} (86%) diff --git a/patches/server/0602-Add-missing-team-sidebar-display-slots.patch b/patches/server/0602-Add-missing-team-sidebar-display-slots.patch index 9d0068df5a..8e253e2960 100644 --- a/patches/server/0602-Add-missing-team-sidebar-display-slots.patch +++ b/patches/server/0602-Add-missing-team-sidebar-display-slots.patch @@ -9,30 +9,28 @@ public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations toBukkitSlo public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations fromBukkitSlot(Lorg/bukkit/scoreboard/DisplaySlot;)Lnet/minecraft/world/scores/DisplaySlot; diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java -index 658f3962543a36bc8c16f306ccb3e254b5b3d0a8..7bef8539d26bced77406f49c0b6fd2c04e6e641e 100644 +index 658f3962543a36bc8c16f306ccb3e254b5b3d0a8..a1510dfd4824c0e246543d770f0e74f0f97c4ace 100644 --- a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java +++ b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java @@ -27,6 +27,7 @@ public class FieldRename { } return switch (owner) { -+ case "org/bukkit/scoreboard/DisplaySlot" -> FieldRename.convertDisplaySlot(apiVersion, from); // Paper - DisplaySlot ++ case "org/bukkit/scoreboard/DisplaySlot" -> FieldRename.convertDisplaySlot(from); // Paper - DisplaySlot case "org/bukkit/block/banner/PatternType" -> FieldRename.convertPatternTypeName(apiVersion, from); case "org/bukkit/enchantments/Enchantment" -> FieldRename.convertEnchantmentName(apiVersion, from); case "org/bukkit/block/Biome" -> FieldRename.convertBiomeName(apiVersion, from); -@@ -43,6 +44,18 @@ public class FieldRename { +@@ -43,6 +44,16 @@ public class FieldRename { }; } + // Paper start - DisplaySlot -+ private static final FieldRenameData DISPLAY_SLOT_DATA = FieldRenameData.Builder.newBuilder() -+ .forAllVersions() -+ .change("SIDEBAR_TEAM_", "SIDEBAR_") -+ .build(); -+ + @DoNotReroute -+ public static String convertDisplaySlot(ApiVersion version, String from) { -+ return FieldRename.DISPLAY_SLOT_DATA.getReplacement(version, from); ++ public static String convertDisplaySlot(final String from) { ++ if (from.startsWith("SIDEBAR_") && !from.startsWith("SIDEBAR_TEAM_")) { ++ return from.replace("SIDEBAR_", "SIDEBAR_TEAM_"); ++ } ++ return from; + } + // Paper end - DisplaySlot + diff --git a/patches/server/1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/1002-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 100% rename from patches/server/1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/server/1002-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch diff --git a/patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1003-Use-distance-map-to-optimise-entity-tracker.patch similarity index 100% rename from patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch rename to patches/server/1003-Use-distance-map-to-optimise-entity-tracker.patch diff --git a/patches/server/1005-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1004-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from patches/server/1005-Optimize-Bit-Operations-by-inlining.patch rename to patches/server/1004-Optimize-Bit-Operations-by-inlining.patch diff --git a/patches/server/1006-Remove-streams-from-hot-code.patch b/patches/server/1005-Remove-streams-from-hot-code.patch similarity index 100% rename from patches/server/1006-Remove-streams-from-hot-code.patch rename to patches/server/1005-Remove-streams-from-hot-code.patch diff --git a/patches/server/1007-Eigencraft-redstone-implementation.patch b/patches/server/1006-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/1007-Eigencraft-redstone-implementation.patch rename to patches/server/1006-Eigencraft-redstone-implementation.patch diff --git a/patches/server/1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1007-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/1007-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/1009-Improve-boat-collision-performance.patch b/patches/server/1008-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/1009-Improve-boat-collision-performance.patch rename to patches/server/1008-Improve-boat-collision-performance.patch diff --git a/patches/server/1010-Optimise-general-POI-access.patch b/patches/server/1009-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/1010-Optimise-general-POI-access.patch rename to patches/server/1009-Optimise-general-POI-access.patch diff --git a/patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1010-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/1010-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/1012-Execute-chunk-tasks-mid-tick.patch b/patches/server/1011-Execute-chunk-tasks-mid-tick.patch similarity index 96% rename from patches/server/1012-Execute-chunk-tasks-mid-tick.patch rename to patches/server/1011-Execute-chunk-tasks-mid-tick.patch index 5fb8977769..191ea66bd4 100644 --- a/patches/server/1012-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/1011-Execute-chunk-tasks-mid-tick.patch @@ -103,10 +103,10 @@ index f31fcf3054b201e52ee84b9523820dc619762eef..2cd2e260e9a958c8aee7b2fb4e010ef8 } else { boolean ret = false; // Paper - force execution of all worlds, do not just bias the first diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 0b7a38b9e92b19345a34c6226413a9b133264077..18640c8681f6a3b2276123d19e3e8f0a8c630b41 100644 +index c7b7f153895a4b95b2071a31db00c9c4b69fa094..7fbeebe63f755624b967374072aa2e0565ce8c35 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -566,6 +566,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -559,6 +559,7 @@ public class ServerChunkCache extends ChunkSource { boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit Iterator iterator1 = list.iterator(); @@ -114,7 +114,7 @@ index 0b7a38b9e92b19345a34c6226413a9b133264077..18640c8681f6a3b2276123d19e3e8f0a while (iterator1.hasNext()) { ServerChunkCache.ChunkAndHolder chunkproviderserver_a = (ServerChunkCache.ChunkAndHolder) iterator1.next(); LevelChunk chunk1 = chunkproviderserver_a.chunk; -@@ -579,6 +580,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -572,6 +573,7 @@ public class ServerChunkCache extends ChunkSource { if (this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { this.level.tickChunk(chunk1, l); @@ -123,7 +123,7 @@ index 0b7a38b9e92b19345a34c6226413a9b133264077..18640c8681f6a3b2276123d19e3e8f0a } } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4b7cad5f551d620dbd091111df94fb39efcb79ac..9cd54bc390f0629bf6b4494bd9c3a6e0927d1b7b 100644 +index bc609da7105293dfa4ed339f553be66b0a632698..f9de1196c01c6e32ff1bfad33761bc64c1c6dc5d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1013-Optimise-random-block-ticking.patch b/patches/server/1012-Optimise-random-block-ticking.patch similarity index 99% rename from patches/server/1013-Optimise-random-block-ticking.patch rename to patches/server/1012-Optimise-random-block-ticking.patch index 07b98dffde..b3874d8f37 100644 --- a/patches/server/1013-Optimise-random-block-ticking.patch +++ b/patches/server/1012-Optimise-random-block-ticking.patch @@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9cd54bc390f0629bf6b4494bd9c3a6e0927d1b7b..215f03dfe0e6441588679efaedbcf04c352b404c 100644 +index f9de1196c01c6e32ff1bfad33761bc64c1c6dc5d..b776f1083b8693d13ea523985bf6ec6a3f7ba8dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -867,6 +867,10 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1014-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1013-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/1014-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/1013-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/1015-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1014-Use-Velocity-compression-and-cipher-natives.patch similarity index 100% rename from patches/server/1015-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/1014-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/server/1016-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1015-Detail-more-information-in-watchdog-dumps.patch similarity index 99% rename from patches/server/1016-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/1015-Detail-more-information-in-watchdog-dumps.patch index 7859dad6a7..6aa867b8a8 100644 --- a/patches/server/1016-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/1015-Detail-more-information-in-watchdog-dumps.patch @@ -76,7 +76,7 @@ index e161ad0f53a21a68e8c78575ba5d3cdbdb11fca0..57e76b53e5e314c3e6b8856010f7a841 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 215f03dfe0e6441588679efaedbcf04c352b404c..aabaaf89f5e344791604a7e05122d9865bb0224e 100644 +index b776f1083b8693d13ea523985bf6ec6a3f7ba8dc..b27dbee5bef643ed6e79845587f5c02ef238124c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1251,7 +1251,26 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1017-Collision-optimisations.patch b/patches/server/1016-Collision-optimisations.patch similarity index 100% rename from patches/server/1017-Collision-optimisations.patch rename to patches/server/1016-Collision-optimisations.patch diff --git a/patches/server/1018-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1017-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 100% rename from patches/server/1018-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/1017-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/1018-Fix-tripwire-disarming-not-working-as-intended.patch similarity index 100% rename from patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch rename to patches/server/1018-Fix-tripwire-disarming-not-working-as-intended.patch diff --git a/patches/server/1020-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1019-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/1020-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/1019-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/1021-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1020-Add-Alternate-Current-redstone-implementation.patch similarity index 99% rename from patches/server/1021-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/1020-Add-Alternate-Current-redstone-implementation.patch index afb3758607..5b234ecc82 100644 --- a/patches/server/1021-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/1020-Add-Alternate-Current-redstone-implementation.patch @@ -2009,7 +2009,7 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index aabaaf89f5e344791604a7e05122d9865bb0224e..2bfebbe0bc5a7f72c9ebe60fded260b3f94ac749 100644 +index b27dbee5bef643ed6e79845587f5c02ef238124c..232ee4e3f32b93f5ae725b025abd538fe8927d90 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -228,6 +228,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1022-optimize-dirt-and-snow-spreading.patch b/patches/server/1021-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/1022-optimize-dirt-and-snow-spreading.patch rename to patches/server/1021-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/1023-Properly-resend-entities.patch b/patches/server/1022-Properly-resend-entities.patch similarity index 100% rename from patches/server/1023-Properly-resend-entities.patch rename to patches/server/1022-Properly-resend-entities.patch diff --git a/patches/server/1024-Optimize-Hoppers.patch b/patches/server/1023-Optimize-Hoppers.patch similarity index 100% rename from patches/server/1024-Optimize-Hoppers.patch rename to patches/server/1023-Optimize-Hoppers.patch diff --git a/patches/server/1025-Improve-performance-of-mass-crafts.patch b/patches/server/1024-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/1025-Improve-performance-of-mass-crafts.patch rename to patches/server/1024-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/1026-Actually-optimise-explosions.patch b/patches/server/1025-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/1026-Actually-optimise-explosions.patch rename to patches/server/1025-Actually-optimise-explosions.patch diff --git a/patches/server/1027-Optimise-chunk-tick-iteration.patch b/patches/server/1026-Optimise-chunk-tick-iteration.patch similarity index 98% rename from patches/server/1027-Optimise-chunk-tick-iteration.patch rename to patches/server/1026-Optimise-chunk-tick-iteration.patch index 1452dcd9c5..21131380ce 100644 --- a/patches/server/1027-Optimise-chunk-tick-iteration.patch +++ b/patches/server/1026-Optimise-chunk-tick-iteration.patch @@ -187,10 +187,10 @@ index ed5154e41ca858f4d6b4d1c276c66831c038d2a6..cdb3c2cde5d9133ef60cf96d91762e6a public String getDebugStatus() { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 18640c8681f6a3b2276123d19e3e8f0a8c630b41..b99f50604bafecbc68835974c9ed0caa91911a40 100644 +index 7fbeebe63f755624b967374072aa2e0565ce8c35..36caf354634d6675a3f1ec6829f4778e1d0623bc 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -506,18 +506,10 @@ public class ServerChunkCache extends ChunkSource { +@@ -499,18 +499,10 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.push("pollingChunks"); gameprofilerfiller.push("filteringLoadedChunks"); @@ -211,7 +211,7 @@ index 18640c8681f6a3b2276123d19e3e8f0a8c630b41..b99f50604bafecbc68835974c9ed0caa if (this.level.tickRateManager().runsNormally()) { gameprofilerfiller.popPush("naturalSpawnCount"); -@@ -552,38 +544,109 @@ public class ServerChunkCache extends ChunkSource { +@@ -545,38 +537,109 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.popPush("spawnAndTick"); boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit @@ -337,7 +337,7 @@ index 18640c8681f6a3b2276123d19e3e8f0a8c630b41..b99f50604bafecbc68835974c9ed0caa this.level.timings.chunkTicks.stopTiming(); // Paper gameprofilerfiller.popPush("customSpawners"); -@@ -595,11 +658,23 @@ public class ServerChunkCache extends ChunkSource { +@@ -588,11 +651,23 @@ public class ServerChunkCache extends ChunkSource { } gameprofilerfiller.popPush("broadcast"); diff --git a/patches/server/1028-Lag-compensation-ticks.patch b/patches/server/1027-Lag-compensation-ticks.patch similarity index 98% rename from patches/server/1028-Lag-compensation-ticks.patch rename to patches/server/1027-Lag-compensation-ticks.patch index 2d5fbb4444..fb9ab1a352 100644 --- a/patches/server/1028-Lag-compensation-ticks.patch +++ b/patches/server/1027-Lag-compensation-ticks.patch @@ -28,7 +28,7 @@ index b21daeeb043df885fba5e6a7572d311fd0830815..8515cec5e21ad291ca427baaafb4c2f3 this.profiler.push(() -> { String s = String.valueOf(worldserver); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2bfebbe0bc5a7f72c9ebe60fded260b3f94ac749..89ecaaa774e59ad01eec0ce2fe546026a8b47ae8 100644 +index 232ee4e3f32b93f5ae725b025abd538fe8927d90..05e7a908c18b5eef49afb088b7519185bc806056 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1029-Optimise-nearby-player-retrieval.patch b/patches/server/1028-Optimise-nearby-player-retrieval.patch similarity index 99% rename from patches/server/1029-Optimise-nearby-player-retrieval.patch rename to patches/server/1028-Optimise-nearby-player-retrieval.patch index 080816f839..92bfc2ab50 100644 --- a/patches/server/1029-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1028-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 89ecaaa774e59ad01eec0ce2fe546026a8b47ae8..12a9342634ffa7d6aaa9a7fdd65a45bccec8dd13 100644 +index 05e7a908c18b5eef49afb088b7519185bc806056..de3da37c40053789ba2c5d3754452ab49fa9962b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -581,6 +581,115 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1030-Distance-manager-tick-timings.patch b/patches/server/1029-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/1030-Distance-manager-tick-timings.patch rename to patches/server/1029-Distance-manager-tick-timings.patch diff --git a/patches/server/1031-Handle-Oversized-block-entities-in-chunks.patch b/patches/server/1030-Handle-Oversized-block-entities-in-chunks.patch similarity index 100% rename from patches/server/1031-Handle-Oversized-block-entities-in-chunks.patch rename to patches/server/1030-Handle-Oversized-block-entities-in-chunks.patch diff --git a/patches/server/1032-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/1031-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/1032-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/1031-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/1033-Fix-and-optimise-world-force-upgrading.patch b/patches/server/1032-Fix-and-optimise-world-force-upgrading.patch similarity index 100% rename from patches/server/1033-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/1032-Fix-and-optimise-world-force-upgrading.patch diff --git a/patches/server/1034-API-for-checking-sent-chunks.patch b/patches/server/1033-API-for-checking-sent-chunks.patch similarity index 100% rename from patches/server/1034-API-for-checking-sent-chunks.patch rename to patches/server/1033-API-for-checking-sent-chunks.patch diff --git a/patches/server/1035-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch b/patches/server/1034-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch similarity index 100% rename from patches/server/1035-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch rename to patches/server/1034-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch diff --git a/patches/server/1036-handle-converting-old-serialized-names-to-new-names.patch b/patches/server/1035-handle-converting-old-serialized-names-to-new-names.patch similarity index 100% rename from patches/server/1036-handle-converting-old-serialized-names-to-new-names.patch rename to patches/server/1035-handle-converting-old-serialized-names-to-new-names.patch diff --git a/patches/server/1037-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/1036-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/1037-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/1036-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/1038-Deep-clone-nbt-tags-in-PDC.patch b/patches/server/1037-Deep-clone-nbt-tags-in-PDC.patch similarity index 100% rename from patches/server/1038-Deep-clone-nbt-tags-in-PDC.patch rename to patches/server/1037-Deep-clone-nbt-tags-in-PDC.patch diff --git a/patches/server/1039-Support-old-UUID-format-for-NBT.patch b/patches/server/1038-Support-old-UUID-format-for-NBT.patch similarity index 100% rename from patches/server/1039-Support-old-UUID-format-for-NBT.patch rename to patches/server/1038-Support-old-UUID-format-for-NBT.patch diff --git a/patches/server/1040-Fix-shield-disable-inconsistency.patch b/patches/server/1039-Fix-shield-disable-inconsistency.patch similarity index 100% rename from patches/server/1040-Fix-shield-disable-inconsistency.patch rename to patches/server/1039-Fix-shield-disable-inconsistency.patch diff --git a/patches/server/1002-Write-SavedData-IO-async.patch b/patches/server/1040-Write-SavedData-IO-async.patch similarity index 86% rename from patches/server/1002-Write-SavedData-IO-async.patch rename to patches/server/1040-Write-SavedData-IO-async.patch index 68fd4545a8..601abd1ff6 100644 --- a/patches/server/1002-Write-SavedData-IO-async.patch +++ b/patches/server/1040-Write-SavedData-IO-async.patch @@ -5,8 +5,28 @@ Subject: [PATCH] Write SavedData IO async Co-Authored-By: Shane Freeder +diff --git a/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java b/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java +index e049fbe4038aaea896f45b11ce9ce8f05922c898..7f6d1ccd147e5593412567bb2934ce5662da7ef0 100644 +--- a/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java ++++ b/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java +@@ -110,6 +110,15 @@ public class ThreadedWorldUpgrader { + } + + this.threadPool.execute(new ConvertTask(info, regionPos.x >> 5, regionPos.z >> 5)); ++ // Paper start - Write SavedData IO async ++ this.threadPool.execute(() -> { ++ try { ++ worldPersistentData.close(); ++ } catch (IOException exception) { ++ LOGGER.error("Failed to close persistent world data", exception); ++ } ++ }); ++ // Paper end - Write SavedData IO async + } + this.threadPool.shutdown(); + diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index c7b7f153895a4b95b2071a31db00c9c4b69fa094..0b7a38b9e92b19345a34c6226413a9b133264077 100644 +index 36caf354634d6675a3f1ec6829f4778e1d0623bc..b99f50604bafecbc68835974c9ed0caa91911a40 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -447,6 +447,13 @@ public class ServerChunkCache extends ChunkSource { @@ -24,10 +44,10 @@ index c7b7f153895a4b95b2071a31db00c9c4b69fa094..0b7a38b9e92b19345a34c6226413a9b1 // CraftBukkit start - modelled on below diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bc609da7105293dfa4ed339f553be66b0a632698..4b7cad5f551d620dbd091111df94fb39efcb79ac 100644 +index de3da37c40053789ba2c5d3754452ab49fa9962b..12a9342634ffa7d6aaa9a7fdd65a45bccec8dd13 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1330,7 +1330,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1498,7 +1498,7 @@ public class ServerLevel extends Level implements WorldGenLevel { try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { if (doFull) { @@ -36,7 +56,7 @@ index bc609da7105293dfa4ed339f553be66b0a632698..4b7cad5f551d620dbd091111df94fb39 } this.timings.worldSaveChunks.startTiming(); // Paper -@@ -1366,7 +1366,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1534,7 +1534,7 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } @@ -45,7 +65,7 @@ index bc609da7105293dfa4ed339f553be66b0a632698..4b7cad5f551d620dbd091111df94fb39 if (progressListener != null) { progressListener.progressStage(Component.translatable("menu.savingChunks")); } -@@ -1389,12 +1389,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1557,12 +1557,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit end }