aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server')
-rw-r--r--patches/server/0602-Add-missing-team-sidebar-display-slots.patch18
-rw-r--r--patches/server/1002-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch (renamed from patches/server/1003-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch)0
-rw-r--r--patches/server/1003-Use-distance-map-to-optimise-entity-tracker.patch (renamed from patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch)0
-rw-r--r--patches/server/1004-Optimize-Bit-Operations-by-inlining.patch (renamed from patches/server/1005-Optimize-Bit-Operations-by-inlining.patch)0
-rw-r--r--patches/server/1005-Remove-streams-from-hot-code.patch (renamed from patches/server/1006-Remove-streams-from-hot-code.patch)0
-rw-r--r--patches/server/1006-Eigencraft-redstone-implementation.patch (renamed from patches/server/1007-Eigencraft-redstone-implementation.patch)0
-rw-r--r--patches/server/1007-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch (renamed from patches/server/1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch)0
-rw-r--r--patches/server/1008-Improve-boat-collision-performance.patch (renamed from patches/server/1009-Improve-boat-collision-performance.patch)0
-rw-r--r--patches/server/1009-Optimise-general-POI-access.patch (renamed from patches/server/1010-Optimise-general-POI-access.patch)0
-rw-r--r--patches/server/1010-Custom-table-implementation-for-blockstate-state-loo.patch (renamed from patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch)0
-rw-r--r--patches/server/1011-Execute-chunk-tasks-mid-tick.patch (renamed from patches/server/1012-Execute-chunk-tasks-mid-tick.patch)8
-rw-r--r--patches/server/1012-Optimise-random-block-ticking.patch (renamed from patches/server/1013-Optimise-random-block-ticking.patch)2
-rw-r--r--patches/server/1013-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch (renamed from patches/server/1014-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch)0
-rw-r--r--patches/server/1014-Use-Velocity-compression-and-cipher-natives.patch (renamed from patches/server/1015-Use-Velocity-compression-and-cipher-natives.patch)0
-rw-r--r--patches/server/1015-Detail-more-information-in-watchdog-dumps.patch (renamed from patches/server/1016-Detail-more-information-in-watchdog-dumps.patch)2
-rw-r--r--patches/server/1016-Collision-optimisations.patch (renamed from patches/server/1017-Collision-optimisations.patch)0
-rw-r--r--patches/server/1017-Optimise-collision-checking-in-player-move-packet-ha.patch (renamed from patches/server/1018-Optimise-collision-checking-in-player-move-packet-ha.patch)0
-rw-r--r--patches/server/1018-Fix-tripwire-disarming-not-working-as-intended.patch (renamed from patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch)0
-rw-r--r--patches/server/1019-Fix-entity-type-tags-suggestions-in-selectors.patch (renamed from patches/server/1020-Fix-entity-type-tags-suggestions-in-selectors.patch)0
-rw-r--r--patches/server/1020-Add-Alternate-Current-redstone-implementation.patch (renamed from patches/server/1021-Add-Alternate-Current-redstone-implementation.patch)2
-rw-r--r--patches/server/1021-optimize-dirt-and-snow-spreading.patch (renamed from patches/server/1022-optimize-dirt-and-snow-spreading.patch)0
-rw-r--r--patches/server/1022-Properly-resend-entities.patch (renamed from patches/server/1023-Properly-resend-entities.patch)0
-rw-r--r--patches/server/1023-Optimize-Hoppers.patch (renamed from patches/server/1024-Optimize-Hoppers.patch)0
-rw-r--r--patches/server/1024-Improve-performance-of-mass-crafts.patch (renamed from patches/server/1025-Improve-performance-of-mass-crafts.patch)0
-rw-r--r--patches/server/1025-Actually-optimise-explosions.patch (renamed from patches/server/1026-Actually-optimise-explosions.patch)0
-rw-r--r--patches/server/1026-Optimise-chunk-tick-iteration.patch (renamed from patches/server/1027-Optimise-chunk-tick-iteration.patch)8
-rw-r--r--patches/server/1027-Lag-compensation-ticks.patch (renamed from patches/server/1028-Lag-compensation-ticks.patch)2
-rw-r--r--patches/server/1028-Optimise-nearby-player-retrieval.patch (renamed from patches/server/1029-Optimise-nearby-player-retrieval.patch)2
-rw-r--r--patches/server/1029-Distance-manager-tick-timings.patch (renamed from patches/server/1030-Distance-manager-tick-timings.patch)0
-rw-r--r--patches/server/1030-Handle-Oversized-block-entities-in-chunks.patch (renamed from patches/server/1031-Handle-Oversized-block-entities-in-chunks.patch)0
-rw-r--r--patches/server/1031-Send-full-pos-packets-for-hard-colliding-entities.patch (renamed from patches/server/1032-Send-full-pos-packets-for-hard-colliding-entities.patch)0
-rw-r--r--patches/server/1032-Fix-and-optimise-world-force-upgrading.patch (renamed from patches/server/1033-Fix-and-optimise-world-force-upgrading.patch)0
-rw-r--r--patches/server/1033-API-for-checking-sent-chunks.patch (renamed from patches/server/1034-API-for-checking-sent-chunks.patch)0
-rw-r--r--patches/server/1034-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch (renamed from patches/server/1035-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch)0
-rw-r--r--patches/server/1035-handle-converting-old-serialized-names-to-new-names.patch (renamed from patches/server/1036-handle-converting-old-serialized-names-to-new-names.patch)0
-rw-r--r--patches/server/1036-Add-config-for-mobs-immune-to-default-effects.patch (renamed from patches/server/1037-Add-config-for-mobs-immune-to-default-effects.patch)0
-rw-r--r--patches/server/1037-Deep-clone-nbt-tags-in-PDC.patch (renamed from patches/server/1038-Deep-clone-nbt-tags-in-PDC.patch)0
-rw-r--r--patches/server/1038-Support-old-UUID-format-for-NBT.patch (renamed from patches/server/1039-Support-old-UUID-format-for-NBT.patch)0
-rw-r--r--patches/server/1039-Fix-shield-disable-inconsistency.patch (renamed from patches/server/1040-Fix-shield-disable-inconsistency.patch)0
-rw-r--r--patches/server/1040-Write-SavedData-IO-async.patch (renamed from patches/server/1002-Write-SavedData-IO-async.patch)30
40 files changed, 46 insertions, 28 deletions
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
index 9d41c60b80..9d41c60b80 100644
--- 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
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
index 22535d896b..22535d896b 100644
--- a/patches/server/1004-Use-distance-map-to-optimise-entity-tracker.patch
+++ b/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
index a1f24dd8dc..a1f24dd8dc 100644
--- a/patches/server/1005-Optimize-Bit-Operations-by-inlining.patch
+++ b/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
index 4c6d94f7bf..4c6d94f7bf 100644
--- a/patches/server/1006-Remove-streams-from-hot-code.patch
+++ b/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
index b3e3db6504..b3e3db6504 100644
--- a/patches/server/1007-Eigencraft-redstone-implementation.patch
+++ b/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
index 6fc4445bbf..6fc4445bbf 100644
--- a/patches/server/1008-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
+++ b/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
index 3cd32de1e5..3cd32de1e5 100644
--- a/patches/server/1009-Improve-boat-collision-performance.patch
+++ b/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
index 118734c246..118734c246 100644
--- a/patches/server/1010-Optimise-general-POI-access.patch
+++ b/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
index 96d90abea3..96d90abea3 100644
--- a/patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch
+++ b/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
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
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
index 0bbbb36e0b..0bbbb36e0b 100644
--- 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
diff --git a/patches/server/1015-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1014-Use-Velocity-compression-and-cipher-natives.patch
index c357a07cf3..c357a07cf3 100644
--- a/patches/server/1015-Use-Velocity-compression-and-cipher-natives.patch
+++ b/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
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
index a6179487ff..a6179487ff 100644
--- a/patches/server/1017-Collision-optimisations.patch
+++ b/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
index 378e882366..378e882366 100644
--- 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
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
index fa7f6bde06..fa7f6bde06 100644
--- a/patches/server/1019-Fix-tripwire-disarming-not-working-as-intended.patch
+++ b/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
index a31aeb7f18..a31aeb7f18 100644
--- a/patches/server/1020-Fix-entity-type-tags-suggestions-in-selectors.patch
+++ b/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
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
index 49de7fcab9..49de7fcab9 100644
--- a/patches/server/1022-optimize-dirt-and-snow-spreading.patch
+++ b/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
index 4ac71e7b7c..4ac71e7b7c 100644
--- a/patches/server/1023-Properly-resend-entities.patch
+++ b/patches/server/1022-Properly-resend-entities.patch
diff --git a/patches/server/1024-Optimize-Hoppers.patch b/patches/server/1023-Optimize-Hoppers.patch
index 89784a86e5..89784a86e5 100644
--- a/patches/server/1024-Optimize-Hoppers.patch
+++ b/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
index f9839d9135..f9839d9135 100644
--- a/patches/server/1025-Improve-performance-of-mass-crafts.patch
+++ b/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
index a7db826672..a7db826672 100644
--- a/patches/server/1026-Actually-optimise-explosions.patch
+++ b/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
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
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
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
index f946d92596..f946d92596 100644
--- a/patches/server/1030-Distance-manager-tick-timings.patch
+++ b/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
index b9ea4832bd..b9ea4832bd 100644
--- a/patches/server/1031-Handle-Oversized-block-entities-in-chunks.patch
+++ b/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
index 6a98c63b52..6a98c63b52 100644
--- 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
diff --git a/patches/server/1033-Fix-and-optimise-world-force-upgrading.patch b/patches/server/1032-Fix-and-optimise-world-force-upgrading.patch
index d2ea2179d5..d2ea2179d5 100644
--- a/patches/server/1033-Fix-and-optimise-world-force-upgrading.patch
+++ b/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
index 6187f99887..6187f99887 100644
--- a/patches/server/1034-API-for-checking-sent-chunks.patch
+++ b/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
index b7399d5f48..b7399d5f48 100644
--- 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
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
index 0f14e72527..0f14e72527 100644
--- 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
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
index 7bf145751f..7bf145751f 100644
--- 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
diff --git a/patches/server/1038-Deep-clone-nbt-tags-in-PDC.patch b/patches/server/1037-Deep-clone-nbt-tags-in-PDC.patch
index 9e7d548220..9e7d548220 100644
--- a/patches/server/1038-Deep-clone-nbt-tags-in-PDC.patch
+++ b/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
index a38c2a7f7b..a38c2a7f7b 100644
--- a/patches/server/1039-Support-old-UUID-format-for-NBT.patch
+++ b/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
index 777f27d8bb..777f27d8bb 100644
--- a/patches/server/1040-Fix-shield-disable-inconsistency.patch
+++ b/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
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 <[email protected]>
+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
}