aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2024-04-26 10:45:00 +0200
committerNassim Jahnke <[email protected]>2024-04-26 10:45:00 +0200
commit813cfbf2b0c31f3468554cd6fd87bad5af03259c (patch)
tree248bb64d270c4822256a1db031b4a25dee20fe51
parent7e9da43b33aab434a49743e7bc5e969a7bf3e7d2 (diff)
downloadPaper-813cfbf2b0c31f3468554cd6fd87bad5af03259c.tar.gz
Paper-813cfbf2b0c31f3468554cd6fd87bad5af03259c.zip
Fix compile issues
-rw-r--r--patches/server/0971-Fix-bees-aging-inside-hives.patch (renamed from patches/server/1036-Fix-bees-aging-inside-hives.patch)0
-rw-r--r--patches/server/0972-Disable-memory-reserve-allocating.patch (renamed from patches/server/0971-Disable-memory-reserve-allocating.patch)0
-rw-r--r--patches/server/0973-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch (renamed from patches/server/0972-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch)0
-rw-r--r--patches/server/0974-Fix-DamageSource-API.patch (renamed from patches/server/0973-Fix-DamageSource-API.patch)0
-rw-r--r--patches/server/0975-Fix-creation-of-invalid-block-entity-during-world-ge.patch (renamed from patches/server/0974-Fix-creation-of-invalid-block-entity-during-world-ge.patch)0
-rw-r--r--patches/server/0976-Fix-possible-StackOverflowError-for-some-dispenses.patch (renamed from patches/server/0975-Fix-possible-StackOverflowError-for-some-dispenses.patch)0
-rw-r--r--patches/server/0977-Improve-tag-parser-handling.patch (renamed from patches/server/0976-Improve-tag-parser-handling.patch)0
-rw-r--r--patches/server/0978-Item-Mutation-Fixes.patch (renamed from patches/server/0977-Item-Mutation-Fixes.patch)0
-rw-r--r--patches/server/0979-Per-world-ticks-per-spawn-settings.patch (renamed from patches/server/0978-Per-world-ticks-per-spawn-settings.patch)0
-rw-r--r--patches/server/0980-Properly-track-the-changed-item-from-dispense-events.patch (renamed from patches/server/0979-Properly-track-the-changed-item-from-dispense-events.patch)0
-rw-r--r--patches/server/0981-Rewrite-dataconverter-system.patch (renamed from patches/server/0980-Rewrite-dataconverter-system.patch)0
-rw-r--r--patches/server/0982-Suspicious-Effect-Entry-API.patch (renamed from patches/server/0981-Suspicious-Effect-Entry-API.patch)0
-rw-r--r--patches/server/0983-check-if-itemstack-is-stackable-first.patch (renamed from patches/server/0982-check-if-itemstack-is-stackable-first.patch)0
-rw-r--r--patches/server/0984-disable-forced-empty-world-ticks.patch (renamed from patches/server/0983-disable-forced-empty-world-ticks.patch)0
-rw-r--r--patches/server/0985-Starlight.patch (renamed from patches/server/0984-Starlight.patch)0
-rw-r--r--patches/server/0986-Rewrite-chunk-system.patch (renamed from patches/server/0985-Rewrite-chunk-system.patch)22
-rw-r--r--patches/server/0987-incremental-chunk-and-player-saving.patch (renamed from patches/server/0986-incremental-chunk-and-player-saving.patch)2
-rw-r--r--patches/server/0988-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch (renamed from patches/server/0987-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch)0
-rw-r--r--patches/server/0989-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch (renamed from patches/server/0988-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch)2
-rw-r--r--patches/server/0990-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch (renamed from patches/server/0989-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch)0
-rw-r--r--patches/server/0991-Optimize-Network-Manager-and-add-advanced-packet-sup.patch (renamed from patches/server/0990-Optimize-Network-Manager-and-add-advanced-packet-sup.patch)0
-rw-r--r--patches/server/0992-Allow-Saving-of-Oversized-Chunks.patch (renamed from patches/server/0991-Allow-Saving-of-Oversized-Chunks.patch)0
-rw-r--r--patches/server/0993-Fix-World-isChunkGenerated-calls.patch (renamed from patches/server/0992-Fix-World-isChunkGenerated-calls.patch)0
-rw-r--r--patches/server/0994-Flat-bedrock-generator-settings.patch (renamed from patches/server/0993-Flat-bedrock-generator-settings.patch)0
-rw-r--r--patches/server/0995-Entity-Activation-Range-2.0.patch (renamed from patches/server/0994-Entity-Activation-Range-2.0.patch)2
-rw-r--r--patches/server/0996-Optional-per-player-mob-spawns.patch (renamed from patches/server/0995-Optional-per-player-mob-spawns.patch)0
-rw-r--r--patches/server/0997-Anti-Xray.patch (renamed from patches/server/0996-Anti-Xray.patch)2
-rw-r--r--patches/server/0998-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch (renamed from patches/server/0997-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch)0
-rw-r--r--patches/server/0999-Optimize-Collision-to-not-load-chunks.patch (renamed from patches/server/0998-Optimize-Collision-to-not-load-chunks.patch)0
-rw-r--r--patches/server/1000-Optimize-GoalSelector-Goal.Flag-Set-operations.patch (renamed from patches/server/0999-Optimize-GoalSelector-Goal.Flag-Set-operations.patch)0
-rw-r--r--patches/server/1001-Entity-load-save-limit-per-chunk.patch (renamed from patches/server/1000-Entity-load-save-limit-per-chunk.patch)0
-rw-r--r--patches/server/1002-Improved-Watchdog-Support.patch (renamed from patches/server/1001-Improved-Watchdog-Support.patch)0
-rw-r--r--patches/server/1003-Optimize-Voxel-Shape-Merging.patch (renamed from patches/server/1002-Optimize-Voxel-Shape-Merging.patch)0
-rw-r--r--patches/server/1004-Write-SavedData-IO-async.patch (renamed from patches/server/1003-Write-SavedData-IO-async.patch)4
-rw-r--r--patches/server/1005-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch (renamed from patches/server/1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch)0
-rw-r--r--patches/server/1006-Use-distance-map-to-optimise-entity-tracker.patch (renamed from patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch)0
-rw-r--r--patches/server/1007-Optimize-Bit-Operations-by-inlining.patch (renamed from patches/server/1006-Optimize-Bit-Operations-by-inlining.patch)0
-rw-r--r--patches/server/1008-Remove-streams-from-hot-code.patch (renamed from patches/server/1007-Remove-streams-from-hot-code.patch)0
-rw-r--r--patches/server/1009-Eigencraft-redstone-implementation.patch (renamed from patches/server/1008-Eigencraft-redstone-implementation.patch)0
-rw-r--r--patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch (renamed from patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch)0
-rw-r--r--patches/server/1011-Improve-boat-collision-performance.patch (renamed from patches/server/1010-Improve-boat-collision-performance.patch)0
-rw-r--r--patches/server/1012-Optimise-general-POI-access.patch (renamed from patches/server/1011-Optimise-general-POI-access.patch)0
-rw-r--r--patches/server/1013-Custom-table-implementation-for-blockstate-state-loo.patch (renamed from patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch)0
-rw-r--r--patches/server/1014-Execute-chunk-tasks-mid-tick.patch (renamed from patches/server/1013-Execute-chunk-tasks-mid-tick.patch)2
-rw-r--r--patches/server/1015-Optimise-random-block-ticking.patch (renamed from patches/server/1014-Optimise-random-block-ticking.patch)2
-rw-r--r--patches/server/1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch (renamed from patches/server/1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch)0
-rw-r--r--patches/server/1017-Use-Velocity-compression-and-cipher-natives.patch (renamed from patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch)0
-rw-r--r--patches/server/1018-Detail-more-information-in-watchdog-dumps.patch (renamed from patches/server/1017-Detail-more-information-in-watchdog-dumps.patch)2
-rw-r--r--patches/server/1019-Collision-optimisations.patch (renamed from patches/server/1018-Collision-optimisations.patch)0
-rw-r--r--patches/server/1020-Optimise-collision-checking-in-player-move-packet-ha.patch (renamed from patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch)0
-rw-r--r--patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch (renamed from patches/server/1020-Fix-tripwire-disarming-not-working-as-intended.patch)0
-rw-r--r--patches/server/1022-Fix-entity-type-tags-suggestions-in-selectors.patch (renamed from patches/server/1021-Fix-entity-type-tags-suggestions-in-selectors.patch)0
-rw-r--r--patches/server/1023-Add-Alternate-Current-redstone-implementation.patch (renamed from patches/server/1022-Add-Alternate-Current-redstone-implementation.patch)2
-rw-r--r--patches/server/1024-optimize-dirt-and-snow-spreading.patch (renamed from patches/server/1023-optimize-dirt-and-snow-spreading.patch)0
-rw-r--r--patches/server/1025-Properly-resend-entities.patch (renamed from patches/server/1024-Properly-resend-entities.patch)0
-rw-r--r--patches/server/1026-Optimize-Hoppers.patch (renamed from patches/server/1025-Optimize-Hoppers.patch)0
-rw-r--r--patches/server/1027-Improve-performance-of-mass-crafts.patch (renamed from patches/server/1026-Improve-performance-of-mass-crafts.patch)0
-rw-r--r--patches/server/1028-Actually-optimise-explosions.patch (renamed from patches/server/1027-Actually-optimise-explosions.patch)0
-rw-r--r--patches/server/1029-Optimise-chunk-tick-iteration.patch (renamed from patches/server/1028-Optimise-chunk-tick-iteration.patch)0
-rw-r--r--patches/server/1030-Lag-compensation-ticks.patch (renamed from patches/server/1029-Lag-compensation-ticks.patch)2
-rw-r--r--patches/server/1031-Optimise-nearby-player-retrieval.patch (renamed from patches/server/1030-Optimise-nearby-player-retrieval.patch)2
-rw-r--r--patches/server/1032-Distance-manager-tick-timings.patch (renamed from patches/server/1031-Distance-manager-tick-timings.patch)0
-rw-r--r--patches/server/1033-Handle-Oversized-block-entities-in-chunks.patch (renamed from patches/server/1032-Handle-Oversized-block-entities-in-chunks.patch)0
-rw-r--r--patches/server/1034-Send-full-pos-packets-for-hard-colliding-entities.patch (renamed from patches/server/1033-Send-full-pos-packets-for-hard-colliding-entities.patch)0
-rw-r--r--patches/server/1035-Fix-and-optimise-world-force-upgrading.patch (renamed from patches/server/1034-Fix-and-optimise-world-force-upgrading.patch)56
-rw-r--r--patches/server/1036-API-for-checking-sent-chunks.patch (renamed from patches/server/1035-API-for-checking-sent-chunks.patch)0
66 files changed, 65 insertions, 37 deletions
diff --git a/patches/server/1036-Fix-bees-aging-inside-hives.patch b/patches/server/0971-Fix-bees-aging-inside-hives.patch
index ae6a0ff63d..ae6a0ff63d 100644
--- a/patches/server/1036-Fix-bees-aging-inside-hives.patch
+++ b/patches/server/0971-Fix-bees-aging-inside-hives.patch
diff --git a/patches/server/0971-Disable-memory-reserve-allocating.patch b/patches/server/0972-Disable-memory-reserve-allocating.patch
index 30eabae9e8..30eabae9e8 100644
--- a/patches/server/0971-Disable-memory-reserve-allocating.patch
+++ b/patches/server/0972-Disable-memory-reserve-allocating.patch
diff --git a/patches/server/0972-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/server/0973-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch
index 5c5bb40964..5c5bb40964 100644
--- a/patches/server/0972-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch
+++ b/patches/server/0973-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch
diff --git a/patches/server/0973-Fix-DamageSource-API.patch b/patches/server/0974-Fix-DamageSource-API.patch
index 0e5c644bc1..0e5c644bc1 100644
--- a/patches/server/0973-Fix-DamageSource-API.patch
+++ b/patches/server/0974-Fix-DamageSource-API.patch
diff --git a/patches/server/0974-Fix-creation-of-invalid-block-entity-during-world-ge.patch b/patches/server/0975-Fix-creation-of-invalid-block-entity-during-world-ge.patch
index a745081446..a745081446 100644
--- a/patches/server/0974-Fix-creation-of-invalid-block-entity-during-world-ge.patch
+++ b/patches/server/0975-Fix-creation-of-invalid-block-entity-during-world-ge.patch
diff --git a/patches/server/0975-Fix-possible-StackOverflowError-for-some-dispenses.patch b/patches/server/0976-Fix-possible-StackOverflowError-for-some-dispenses.patch
index 21910b922f..21910b922f 100644
--- a/patches/server/0975-Fix-possible-StackOverflowError-for-some-dispenses.patch
+++ b/patches/server/0976-Fix-possible-StackOverflowError-for-some-dispenses.patch
diff --git a/patches/server/0976-Improve-tag-parser-handling.patch b/patches/server/0977-Improve-tag-parser-handling.patch
index 6f346ac4f2..6f346ac4f2 100644
--- a/patches/server/0976-Improve-tag-parser-handling.patch
+++ b/patches/server/0977-Improve-tag-parser-handling.patch
diff --git a/patches/server/0977-Item-Mutation-Fixes.patch b/patches/server/0978-Item-Mutation-Fixes.patch
index 736d493c99..736d493c99 100644
--- a/patches/server/0977-Item-Mutation-Fixes.patch
+++ b/patches/server/0978-Item-Mutation-Fixes.patch
diff --git a/patches/server/0978-Per-world-ticks-per-spawn-settings.patch b/patches/server/0979-Per-world-ticks-per-spawn-settings.patch
index ebdf89762d..ebdf89762d 100644
--- a/patches/server/0978-Per-world-ticks-per-spawn-settings.patch
+++ b/patches/server/0979-Per-world-ticks-per-spawn-settings.patch
diff --git a/patches/server/0979-Properly-track-the-changed-item-from-dispense-events.patch b/patches/server/0980-Properly-track-the-changed-item-from-dispense-events.patch
index 9957c97ca3..9957c97ca3 100644
--- a/patches/server/0979-Properly-track-the-changed-item-from-dispense-events.patch
+++ b/patches/server/0980-Properly-track-the-changed-item-from-dispense-events.patch
diff --git a/patches/server/0980-Rewrite-dataconverter-system.patch b/patches/server/0981-Rewrite-dataconverter-system.patch
index bbb4bda157..bbb4bda157 100644
--- a/patches/server/0980-Rewrite-dataconverter-system.patch
+++ b/patches/server/0981-Rewrite-dataconverter-system.patch
diff --git a/patches/server/0981-Suspicious-Effect-Entry-API.patch b/patches/server/0982-Suspicious-Effect-Entry-API.patch
index 3d193a8a75..3d193a8a75 100644
--- a/patches/server/0981-Suspicious-Effect-Entry-API.patch
+++ b/patches/server/0982-Suspicious-Effect-Entry-API.patch
diff --git a/patches/server/0982-check-if-itemstack-is-stackable-first.patch b/patches/server/0983-check-if-itemstack-is-stackable-first.patch
index 6143642997..6143642997 100644
--- a/patches/server/0982-check-if-itemstack-is-stackable-first.patch
+++ b/patches/server/0983-check-if-itemstack-is-stackable-first.patch
diff --git a/patches/server/0983-disable-forced-empty-world-ticks.patch b/patches/server/0984-disable-forced-empty-world-ticks.patch
index 6ef5295591..6ef5295591 100644
--- a/patches/server/0983-disable-forced-empty-world-ticks.patch
+++ b/patches/server/0984-disable-forced-empty-world-ticks.patch
diff --git a/patches/server/0984-Starlight.patch b/patches/server/0985-Starlight.patch
index 72b56b3d53..72b56b3d53 100644
--- a/patches/server/0984-Starlight.patch
+++ b/patches/server/0985-Starlight.patch
diff --git a/patches/server/0985-Rewrite-chunk-system.patch b/patches/server/0986-Rewrite-chunk-system.patch
index 7cc9f21e95..ccf7a62637 100644
--- a/patches/server/0985-Rewrite-chunk-system.patch
+++ b/patches/server/0986-Rewrite-chunk-system.patch
@@ -18392,7 +18392,7 @@ index 2d9d4d06b75873f888ef4d8f5779a52706f821a8..f74efe41cd0da2f9749fc96fb9e0f7cf
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 7dfbb3dd6100180abd2ebab4d1e9e34928666f9e..877f9d7a83fa817586f9f2dd2b10e06e9962b7c8 100644
+index 7dfbb3dd6100180abd2ebab4d1e9e34928666f9e..7f8793fa8260cb8a1f55d0ba405e6df0ae6f7321 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -199,7 +199,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -18733,7 +18733,7 @@ index 7dfbb3dd6100180abd2ebab4d1e9e34928666f9e..877f9d7a83fa817586f9f2dd2b10e06e
boolean flag2 = minecraftserver.forceSynchronousWrites();
DataFixer datafixer = minecraftserver.getFixerUpper();
- EntityPersistentStorage<Entity> entitypersistentstorage = new EntityStorage(new SimpleRegionStorage(new RegionStorageInfo(convertable_conversionsession.getLevelId(), resourcekey, "entities"), convertable_conversionsession.getDimensionPath(resourcekey).resolve("entities"), datafixer, flag2, DataFixTypes.ENTITY_CHUNK), this, minecraftserver);
-+ this.entityStorage = new EntityRegionFileStorage(convertable_conversionsession.getDimensionPath(resourcekey).resolve("entities"), flag2); // Paper - rewrite chunk system // EntityPersistentStorage<Entity> entitypersistentstorage = new EntityStorage(new SimpleRegionStorage(new RegionStorageInfo(convertable_conversionsession.getLevelId(), resourcekey, "entities"), convertable_conversionsession.getDimensionPath(resourcekey).resolve("entities"), datafixer, flag2, DataFixTypes.ENTITY_CHUNK), this, minecraftserver);
++ this.entityStorage = new EntityRegionFileStorage(new RegionStorageInfo(convertable_conversionsession.getLevelId(), resourcekey, "entities"), convertable_conversionsession.getDimensionPath(resourcekey).resolve("entities"), flag2); // Paper - rewrite chunk system
- this.entityManager = new PersistentEntitySectionManager<>(Entity.class, new ServerLevel.EntityCallbacks(), entitypersistentstorage);
+ // this.entityManager = new PersistentEntitySectionManager<>(Entity.class, new ServerLevel.EntityCallbacks(), entitypersistentstorage, this.entitySliceManager); // Paper // Paper - rewrite chunk system
@@ -19475,6 +19475,24 @@ index ea72dcb064a35bc6245bc5c94d592efedd8faf41..0793dfe47e68a2b48b010aad5b12dcfa
@Override
public boolean remove(Object object) {
int i = this.findIndex((T)object);
+diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
+index 7984f17cd9c4cef8100909b6c33b3144c8096fcf..639f72618a7c22fa94effa9d0406b97fffc64cb5 100644
+--- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
++++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
+@@ -227,7 +227,13 @@ public class WorldUpgrader {
+ this.previousWriteFuture.join();
+ }
+
++ // Paper start - async chunk io
++ try {
+ this.previousWriteFuture = storage.write(chunkPos, nbttagcompound1);
++ } catch (final IOException e) {
++ com.destroystokyo.paper.util.SneakyThrow.sneaky(e);
++ }
++ // Paper end - async chunk io
+ return true;
+ }
+ }
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3c1bcf8d1a07b35a8688160c9f05f792451338a3..03840f520624662d4ce3ac9f3065a01c71b5f299 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
diff --git a/patches/server/0986-incremental-chunk-and-player-saving.patch b/patches/server/0987-incremental-chunk-and-player-saving.patch
index 6dbbfeefeb..cd19b79c90 100644
--- a/patches/server/0986-incremental-chunk-and-player-saving.patch
+++ b/patches/server/0987-incremental-chunk-and-player-saving.patch
@@ -76,7 +76,7 @@ index f74efe41cd0da2f9749fc96fb9e0f7cf237ad1c6..d1728e13a7b649f308bde90ab633c79d
public void close() throws IOException {
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 877f9d7a83fa817586f9f2dd2b10e06e9962b7c8..412e167f6e29cbe905161c7e00736961f2c56c21 100644
+index 7f8793fa8260cb8a1f55d0ba405e6df0ae6f7321..db6a54c752ac39012537ec85ad31d5c8b886be1a 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1302,6 +1302,37 @@ public class ServerLevel extends Level implements WorldGenLevel {
diff --git a/patches/server/0987-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0988-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch
index 474f3d6165..474f3d6165 100644
--- a/patches/server/0987-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch
+++ b/patches/server/0988-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch
diff --git a/patches/server/0988-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0989-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
index b9e0875686..c004efe2f5 100644
--- a/patches/server/0988-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
+++ b/patches/server/0989-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
@@ -13,7 +13,7 @@ custom renderers are in use, defaulting to the much simpler Vanilla system.
Additionally, numerous issues to player position tracking on maps has been fixed.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 412e167f6e29cbe905161c7e00736961f2c56c21..3203f95b8a877efb752fe2e6c58da6df9c8eede7 100644
+index db6a54c752ac39012537ec85ad31d5c8b886be1a..5285cc76b001a8b5fd5e11764a3aa11e45c9d999 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2588,6 +2588,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
diff --git a/patches/server/0989-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0990-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
index 1a86ce02de..1a86ce02de 100644
--- a/patches/server/0989-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
+++ b/patches/server/0990-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
diff --git a/patches/server/0990-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0991-Optimize-Network-Manager-and-add-advanced-packet-sup.patch
index 84396ba635..84396ba635 100644
--- a/patches/server/0990-Optimize-Network-Manager-and-add-advanced-packet-sup.patch
+++ b/patches/server/0991-Optimize-Network-Manager-and-add-advanced-packet-sup.patch
diff --git a/patches/server/0991-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/0992-Allow-Saving-of-Oversized-Chunks.patch
index c190834bbb..c190834bbb 100644
--- a/patches/server/0991-Allow-Saving-of-Oversized-Chunks.patch
+++ b/patches/server/0992-Allow-Saving-of-Oversized-Chunks.patch
diff --git a/patches/server/0992-Fix-World-isChunkGenerated-calls.patch b/patches/server/0993-Fix-World-isChunkGenerated-calls.patch
index e2cdbd6062..e2cdbd6062 100644
--- a/patches/server/0992-Fix-World-isChunkGenerated-calls.patch
+++ b/patches/server/0993-Fix-World-isChunkGenerated-calls.patch
diff --git a/patches/server/0993-Flat-bedrock-generator-settings.patch b/patches/server/0994-Flat-bedrock-generator-settings.patch
index 7103386726..7103386726 100644
--- a/patches/server/0993-Flat-bedrock-generator-settings.patch
+++ b/patches/server/0994-Flat-bedrock-generator-settings.patch
diff --git a/patches/server/0994-Entity-Activation-Range-2.0.patch b/patches/server/0995-Entity-Activation-Range-2.0.patch
index f050b1b25b..fee8d41d7e 100644
--- a/patches/server/0994-Entity-Activation-Range-2.0.patch
+++ b/patches/server/0995-Entity-Activation-Range-2.0.patch
@@ -17,7 +17,7 @@ Adds villagers as separate config
public net.minecraft.world.entity.Entity isInsidePortal
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 3203f95b8a877efb752fe2e6c58da6df9c8eede7..246c5d3e04044f5c5802ec5134dc69b8d8403a1a 100644
+index 5285cc76b001a8b5fd5e11764a3aa11e45c9d999..b7ca39623348090c5b85e2d80f67a1747553d7d7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2,7 +2,6 @@ package net.minecraft.server.level;
diff --git a/patches/server/0995-Optional-per-player-mob-spawns.patch b/patches/server/0996-Optional-per-player-mob-spawns.patch
index 11bc946b57..11bc946b57 100644
--- a/patches/server/0995-Optional-per-player-mob-spawns.patch
+++ b/patches/server/0996-Optional-per-player-mob-spawns.patch
diff --git a/patches/server/0996-Anti-Xray.patch b/patches/server/0997-Anti-Xray.patch
index 00db1a4cc8..058f4c5c6a 100644
--- a/patches/server/0996-Anti-Xray.patch
+++ b/patches/server/0997-Anti-Xray.patch
@@ -1104,7 +1104,7 @@ index 183b2191fa1c1b27adedf39593e1b5a223fb1279..8ead66c134688b11dca15f6509147e72
private ClientboundLevelChunkWithLightPacket(RegistryFriendlyByteBuf buf) {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 246c5d3e04044f5c5802ec5134dc69b8d8403a1a..885c64bd58de40b8fd03725f23cdbd0714a8cc69 100644
+index b7ca39623348090c5b85e2d80f67a1747553d7d7..bc609da7105293dfa4ed339f553be66b0a632698 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -575,7 +575,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
diff --git a/patches/server/0997-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0998-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
index 990f9615a7..990f9615a7 100644
--- a/patches/server/0997-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
+++ b/patches/server/0998-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
diff --git a/patches/server/0998-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0999-Optimize-Collision-to-not-load-chunks.patch
index 17286aaa99..17286aaa99 100644
--- a/patches/server/0998-Optimize-Collision-to-not-load-chunks.patch
+++ b/patches/server/0999-Optimize-Collision-to-not-load-chunks.patch
diff --git a/patches/server/0999-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/1000-Optimize-GoalSelector-Goal.Flag-Set-operations.patch
index 1f46712639..1f46712639 100644
--- a/patches/server/0999-Optimize-GoalSelector-Goal.Flag-Set-operations.patch
+++ b/patches/server/1000-Optimize-GoalSelector-Goal.Flag-Set-operations.patch
diff --git a/patches/server/1000-Entity-load-save-limit-per-chunk.patch b/patches/server/1001-Entity-load-save-limit-per-chunk.patch
index 1dbf729bda..1dbf729bda 100644
--- a/patches/server/1000-Entity-load-save-limit-per-chunk.patch
+++ b/patches/server/1001-Entity-load-save-limit-per-chunk.patch
diff --git a/patches/server/1001-Improved-Watchdog-Support.patch b/patches/server/1002-Improved-Watchdog-Support.patch
index c97e7e150a..c97e7e150a 100644
--- a/patches/server/1001-Improved-Watchdog-Support.patch
+++ b/patches/server/1002-Improved-Watchdog-Support.patch
diff --git a/patches/server/1002-Optimize-Voxel-Shape-Merging.patch b/patches/server/1003-Optimize-Voxel-Shape-Merging.patch
index 4ec779560c..4ec779560c 100644
--- a/patches/server/1002-Optimize-Voxel-Shape-Merging.patch
+++ b/patches/server/1003-Optimize-Voxel-Shape-Merging.patch
diff --git a/patches/server/1003-Write-SavedData-IO-async.patch b/patches/server/1004-Write-SavedData-IO-async.patch
index 646bf73ba6..68fd4545a8 100644
--- a/patches/server/1003-Write-SavedData-IO-async.patch
+++ b/patches/server/1004-Write-SavedData-IO-async.patch
@@ -24,7 +24,7 @@ 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 885c64bd58de40b8fd03725f23cdbd0714a8cc69..75dc2f98cc2c723db01135a3a42f346a70c78208 100644
+index bc609da7105293dfa4ed339f553be66b0a632698..4b7cad5f551d620dbd091111df94fb39efcb79ac 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 {
@@ -61,7 +61,7 @@ index 885c64bd58de40b8fd03725f23cdbd0714a8cc69..75dc2f98cc2c723db01135a3a42f346a
public <T extends Entity> List<? extends T> getEntities(EntityTypeTest<Entity, T> filter, Predicate<? super T> predicate) {
diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
-index 7984f17cd9c4cef8100909b6c33b3144c8096fcf..868c9bbb12c8cfe76abb62774cf08102b727063b 100644
+index 639f72618a7c22fa94effa9d0406b97fffc64cb5..3e582c49069f2a820ba3baac03917493877d9875 100644
--- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
+++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
@@ -116,7 +116,13 @@ public class WorldUpgrader {
diff --git a/patches/server/1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/1005-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
index 9d41c60b80..9d41c60b80 100644
--- a/patches/server/1004-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
+++ b/patches/server/1005-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
diff --git a/patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1006-Use-distance-map-to-optimise-entity-tracker.patch
index 9b3aea7b9e..9b3aea7b9e 100644
--- a/patches/server/1005-Use-distance-map-to-optimise-entity-tracker.patch
+++ b/patches/server/1006-Use-distance-map-to-optimise-entity-tracker.patch
diff --git a/patches/server/1006-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1007-Optimize-Bit-Operations-by-inlining.patch
index a1f24dd8dc..a1f24dd8dc 100644
--- a/patches/server/1006-Optimize-Bit-Operations-by-inlining.patch
+++ b/patches/server/1007-Optimize-Bit-Operations-by-inlining.patch
diff --git a/patches/server/1007-Remove-streams-from-hot-code.patch b/patches/server/1008-Remove-streams-from-hot-code.patch
index 4c6d94f7bf..4c6d94f7bf 100644
--- a/patches/server/1007-Remove-streams-from-hot-code.patch
+++ b/patches/server/1008-Remove-streams-from-hot-code.patch
diff --git a/patches/server/1008-Eigencraft-redstone-implementation.patch b/patches/server/1009-Eigencraft-redstone-implementation.patch
index b3e3db6504..b3e3db6504 100644
--- a/patches/server/1008-Eigencraft-redstone-implementation.patch
+++ b/patches/server/1009-Eigencraft-redstone-implementation.patch
diff --git a/patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
index 6fc4445bbf..6fc4445bbf 100644
--- a/patches/server/1009-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
+++ b/patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
diff --git a/patches/server/1010-Improve-boat-collision-performance.patch b/patches/server/1011-Improve-boat-collision-performance.patch
index 3cd32de1e5..3cd32de1e5 100644
--- a/patches/server/1010-Improve-boat-collision-performance.patch
+++ b/patches/server/1011-Improve-boat-collision-performance.patch
diff --git a/patches/server/1011-Optimise-general-POI-access.patch b/patches/server/1012-Optimise-general-POI-access.patch
index 118734c246..118734c246 100644
--- a/patches/server/1011-Optimise-general-POI-access.patch
+++ b/patches/server/1012-Optimise-general-POI-access.patch
diff --git a/patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1013-Custom-table-implementation-for-blockstate-state-loo.patch
index 96d90abea3..96d90abea3 100644
--- a/patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch
+++ b/patches/server/1013-Custom-table-implementation-for-blockstate-state-loo.patch
diff --git a/patches/server/1013-Execute-chunk-tasks-mid-tick.patch b/patches/server/1014-Execute-chunk-tasks-mid-tick.patch
index dce1270092..a54580bc0d 100644
--- a/patches/server/1013-Execute-chunk-tasks-mid-tick.patch
+++ b/patches/server/1014-Execute-chunk-tasks-mid-tick.patch
@@ -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 75dc2f98cc2c723db01135a3a42f346a70c78208..54dcd9025b284dddc71b6821723be64d6e339613 100644
+index 4b7cad5f551d620dbd091111df94fb39efcb79ac..9cd54bc390f0629bf6b4494bd9c3a6e0927d1b7b 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/1014-Optimise-random-block-ticking.patch b/patches/server/1015-Optimise-random-block-ticking.patch
index 548eeb1931..07b98dffde 100644
--- a/patches/server/1014-Optimise-random-block-ticking.patch
+++ b/patches/server/1015-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 54dcd9025b284dddc71b6821723be64d6e339613..3aeaf62226ba0a4df3445b966fccdb4e2abb9c8a 100644
+index 9cd54bc390f0629bf6b4494bd9c3a6e0927d1b7b..215f03dfe0e6441588679efaedbcf04c352b404c 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/1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
index 0bbbb36e0b..0bbbb36e0b 100644
--- a/patches/server/1015-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
+++ b/patches/server/1016-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
diff --git a/patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1017-Use-Velocity-compression-and-cipher-natives.patch
index c357a07cf3..c357a07cf3 100644
--- a/patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch
+++ b/patches/server/1017-Use-Velocity-compression-and-cipher-natives.patch
diff --git a/patches/server/1017-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1018-Detail-more-information-in-watchdog-dumps.patch
index 748337cdcf..7859dad6a7 100644
--- a/patches/server/1017-Detail-more-information-in-watchdog-dumps.patch
+++ b/patches/server/1018-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 3aeaf62226ba0a4df3445b966fccdb4e2abb9c8a..8fcc14a2e7ebc5261948c9ad71965bdd9cfe6dc1 100644
+index 215f03dfe0e6441588679efaedbcf04c352b404c..aabaaf89f5e344791604a7e05122d9865bb0224e 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/1018-Collision-optimisations.patch b/patches/server/1019-Collision-optimisations.patch
index a6179487ff..a6179487ff 100644
--- a/patches/server/1018-Collision-optimisations.patch
+++ b/patches/server/1019-Collision-optimisations.patch
diff --git a/patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1020-Optimise-collision-checking-in-player-move-packet-ha.patch
index 378e882366..378e882366 100644
--- a/patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/1020-Optimise-collision-checking-in-player-move-packet-ha.patch
diff --git a/patches/server/1020-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch
index fa7f6bde06..fa7f6bde06 100644
--- a/patches/server/1020-Fix-tripwire-disarming-not-working-as-intended.patch
+++ b/patches/server/1021-Fix-tripwire-disarming-not-working-as-intended.patch
diff --git a/patches/server/1021-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1022-Fix-entity-type-tags-suggestions-in-selectors.patch
index a31aeb7f18..a31aeb7f18 100644
--- a/patches/server/1021-Fix-entity-type-tags-suggestions-in-selectors.patch
+++ b/patches/server/1022-Fix-entity-type-tags-suggestions-in-selectors.patch
diff --git a/patches/server/1022-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1023-Add-Alternate-Current-redstone-implementation.patch
index 175473f980..afb3758607 100644
--- a/patches/server/1022-Add-Alternate-Current-redstone-implementation.patch
+++ b/patches/server/1023-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 8fcc14a2e7ebc5261948c9ad71965bdd9cfe6dc1..285580485b60ca4cd95a5d8ff807cb05dbe38d39 100644
+index aabaaf89f5e344791604a7e05122d9865bb0224e..2bfebbe0bc5a7f72c9ebe60fded260b3f94ac749 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/1023-optimize-dirt-and-snow-spreading.patch b/patches/server/1024-optimize-dirt-and-snow-spreading.patch
index 49de7fcab9..49de7fcab9 100644
--- a/patches/server/1023-optimize-dirt-and-snow-spreading.patch
+++ b/patches/server/1024-optimize-dirt-and-snow-spreading.patch
diff --git a/patches/server/1024-Properly-resend-entities.patch b/patches/server/1025-Properly-resend-entities.patch
index 4ac71e7b7c..4ac71e7b7c 100644
--- a/patches/server/1024-Properly-resend-entities.patch
+++ b/patches/server/1025-Properly-resend-entities.patch
diff --git a/patches/server/1025-Optimize-Hoppers.patch b/patches/server/1026-Optimize-Hoppers.patch
index 1ac04bb94d..1ac04bb94d 100644
--- a/patches/server/1025-Optimize-Hoppers.patch
+++ b/patches/server/1026-Optimize-Hoppers.patch
diff --git a/patches/server/1026-Improve-performance-of-mass-crafts.patch b/patches/server/1027-Improve-performance-of-mass-crafts.patch
index f9839d9135..f9839d9135 100644
--- a/patches/server/1026-Improve-performance-of-mass-crafts.patch
+++ b/patches/server/1027-Improve-performance-of-mass-crafts.patch
diff --git a/patches/server/1027-Actually-optimise-explosions.patch b/patches/server/1028-Actually-optimise-explosions.patch
index a7db826672..a7db826672 100644
--- a/patches/server/1027-Actually-optimise-explosions.patch
+++ b/patches/server/1028-Actually-optimise-explosions.patch
diff --git a/patches/server/1028-Optimise-chunk-tick-iteration.patch b/patches/server/1029-Optimise-chunk-tick-iteration.patch
index 4f7003d529..4f7003d529 100644
--- a/patches/server/1028-Optimise-chunk-tick-iteration.patch
+++ b/patches/server/1029-Optimise-chunk-tick-iteration.patch
diff --git a/patches/server/1029-Lag-compensation-ticks.patch b/patches/server/1030-Lag-compensation-ticks.patch
index ea3ba5af19..0a7a4efe4a 100644
--- a/patches/server/1029-Lag-compensation-ticks.patch
+++ b/patches/server/1030-Lag-compensation-ticks.patch
@@ -28,7 +28,7 @@ index 1adcbfb16ea1fe3378cde7c53e8868840eade963..5f3b35f0dbd9e78ad18ef5cf7be1a807
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 285580485b60ca4cd95a5d8ff807cb05dbe38d39..5d79cabecc29b15ec4e71589fdbb7dc5d658d327 100644
+index 2bfebbe0bc5a7f72c9ebe60fded260b3f94ac749..89ecaaa774e59ad01eec0ce2fe546026a8b47ae8 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/1030-Optimise-nearby-player-retrieval.patch b/patches/server/1031-Optimise-nearby-player-retrieval.patch
index aec655bc5b..080816f839 100644
--- a/patches/server/1030-Optimise-nearby-player-retrieval.patch
+++ b/patches/server/1031-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 5d79cabecc29b15ec4e71589fdbb7dc5d658d327..901a764a8c3ae5259fdc4729d22c9986361d39a8 100644
+index 89ecaaa774e59ad01eec0ce2fe546026a8b47ae8..12a9342634ffa7d6aaa9a7fdd65a45bccec8dd13 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/1031-Distance-manager-tick-timings.patch b/patches/server/1032-Distance-manager-tick-timings.patch
index f946d92596..f946d92596 100644
--- a/patches/server/1031-Distance-manager-tick-timings.patch
+++ b/patches/server/1032-Distance-manager-tick-timings.patch
diff --git a/patches/server/1032-Handle-Oversized-block-entities-in-chunks.patch b/patches/server/1033-Handle-Oversized-block-entities-in-chunks.patch
index b9ea4832bd..b9ea4832bd 100644
--- a/patches/server/1032-Handle-Oversized-block-entities-in-chunks.patch
+++ b/patches/server/1033-Handle-Oversized-block-entities-in-chunks.patch
diff --git a/patches/server/1033-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/1034-Send-full-pos-packets-for-hard-colliding-entities.patch
index 6a98c63b52..6a98c63b52 100644
--- a/patches/server/1033-Send-full-pos-packets-for-hard-colliding-entities.patch
+++ b/patches/server/1034-Send-full-pos-packets-for-hard-colliding-entities.patch
diff --git a/patches/server/1034-Fix-and-optimise-world-force-upgrading.patch b/patches/server/1035-Fix-and-optimise-world-force-upgrading.patch
index b98aab549c..a2e8bf7bcb 100644
--- a/patches/server/1034-Fix-and-optimise-world-force-upgrading.patch
+++ b/patches/server/1035-Fix-and-optimise-world-force-upgrading.patch
@@ -33,15 +33,17 @@ public net.minecraft.util.worldupdate.WorldUpgrader REGEX
diff --git a/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java b/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java
new file mode 100644
-index 0000000000000000000000000000000000000000..90498d9a4f5aee0f6c8a202b5580b4260a28b378
+index 0000000000000000000000000000000000000000..e049fbe4038aaea896f45b11ce9ce8f05922c898
--- /dev/null
+++ b/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java
-@@ -0,0 +1,212 @@
+@@ -0,0 +1,222 @@
+package io.papermc.paper.world;
+
+import com.mojang.datafixers.DataFixer;
-+import com.mojang.serialization.Codec;
++import com.mojang.serialization.MapCodec;
+import net.minecraft.SharedConstants;
++import net.minecraft.core.RegistryAccess;
++import net.minecraft.core.registries.Registries;
+import net.minecraft.nbt.CompoundTag;
+import net.minecraft.resources.ResourceKey;
+import net.minecraft.util.worldupdate.WorldUpgrader;
@@ -50,9 +52,8 @@ index 0000000000000000000000000000000000000000..90498d9a4f5aee0f6c8a202b5580b426
+import net.minecraft.world.level.chunk.ChunkGenerator;
+import net.minecraft.world.level.chunk.storage.ChunkStorage;
+import net.minecraft.world.level.chunk.storage.RegionFileStorage;
-+import net.minecraft.world.level.dimension.DimensionType;
++import net.minecraft.world.level.chunk.storage.RegionStorageInfo;
+import net.minecraft.world.level.dimension.LevelStem;
-+import net.minecraft.world.level.levelgen.WorldGenSettings;
+import net.minecraft.world.level.storage.DimensionDataStorage;
+import net.minecraft.world.level.storage.LevelStorageSource;
+import org.apache.logging.log4j.LogManager;
@@ -77,12 +78,13 @@ index 0000000000000000000000000000000000000000..90498d9a4f5aee0f6c8a202b5580b426
+ private final File worldDir;
+ private final ExecutorService threadPool;
+ private final DataFixer dataFixer;
-+ private final Optional<ResourceKey<Codec<? extends ChunkGenerator>>> generatorKey;
++ private final RegistryAccess registryLookup;
++ private final Optional<ResourceKey<MapCodec<? extends ChunkGenerator>>> generatorKey;
+ private final boolean removeCaches;
+ private final boolean recreateRegionFiles; // TODO
+
+ public ThreadedWorldUpgrader(final ResourceKey<LevelStem> dimensionType, final String worldName, final File worldDir, final int threads,
-+ final DataFixer dataFixer, final Optional<ResourceKey<Codec<? extends ChunkGenerator>>> generatorKey,
++ final DataFixer dataFixer, final RegistryAccess registryLookup, final Optional<ResourceKey<MapCodec<? extends ChunkGenerator>>> generatorKey,
+ final boolean removeCaches, final boolean recreateRegionFiles) {
+ this.dimensionType = dimensionType;
+ this.worldName = worldName;
@@ -103,6 +105,7 @@ index 0000000000000000000000000000000000000000..90498d9a4f5aee0f6c8a202b5580b426
+ }
+ });
+ this.dataFixer = dataFixer;
++ this.registryLookup = registryLookup;
+ this.generatorKey = generatorKey;
+ this.removeCaches = removeCaches;
+ this.recreateRegionFiles = recreateRegionFiles;
@@ -110,24 +113,31 @@ index 0000000000000000000000000000000000000000..90498d9a4f5aee0f6c8a202b5580b426
+
+ public void convert() {
+ final File worldFolder = LevelStorageSource.getStorageFolder(this.worldDir.toPath(), this.dimensionType).toFile();
-+ final DimensionDataStorage worldPersistentData = new DimensionDataStorage(new File(worldFolder, "data"), this.dataFixer);
++ final DimensionDataStorage worldPersistentData = new DimensionDataStorage(new File(worldFolder, "data"), this.dataFixer, this.registryLookup);
+
+ final File regionFolder = new File(worldFolder, "region");
+
-+ LOGGER.info("Force upgrading " + this.worldName);
-+ LOGGER.info("Counting regionfiles for " + this.worldName);
++ LOGGER.info("Force upgrading {}", this.worldName);
++ LOGGER.info("Counting regionfiles for {}", this.worldName);
+ final File[] regionFiles = regionFolder.listFiles((final File dir, final String name) -> {
+ return WorldUpgrader.REGEX.matcher(name).matches();
+ });
+ if (regionFiles == null) {
-+ LOGGER.info("Found no regionfiles to convert for world " + this.worldName);
++ LOGGER.info("Found no regionfiles to convert for world {}", this.worldName);
+ return;
+ }
-+ LOGGER.info("Found " + regionFiles.length + " regionfiles to convert");
-+ LOGGER.info("Starting conversion now for world " + this.worldName);
++ LOGGER.info("Found {} regionfiles to convert", regionFiles.length);
++ LOGGER.info("Starting conversion now for world {}", this.worldName);
++
++ // Only used for profiling, let's fill it anyways just in case
++ final RegionStorageInfo storageInfo = new RegionStorageInfo(
++ this.worldName,
++ ResourceKey.create(Registries.DIMENSION, this.dimensionType.location()),
++ "region"
++ );
+
+ final WorldInfo info = new WorldInfo(() -> worldPersistentData,
-+ new ChunkStorage(regionFolder.toPath(), this.dataFixer, false), this.removeCaches, this.dimensionType, this.generatorKey);
++ new ChunkStorage(storageInfo, regionFolder.toPath(), this.dataFixer, false), this.removeCaches, this.dimensionType, this.generatorKey);
+
+ long expectedChunks = (long)regionFiles.length * (32L * 32L);
+
@@ -173,12 +183,12 @@ index 0000000000000000000000000000000000000000..90498d9a4f5aee0f6c8a202b5580b426
+ public final ChunkStorage loader;
+ public final boolean removeCaches;
+ public final ResourceKey<LevelStem> worldKey;
-+ public final Optional<ResourceKey<Codec<? extends ChunkGenerator>>> generatorKey;
++ public final Optional<ResourceKey<MapCodec<? extends ChunkGenerator>>> generatorKey;
+ public final AtomicLong convertedChunks = new AtomicLong();
+ public final AtomicLong modifiedChunks = new AtomicLong();
+
+ private WorldInfo(final Supplier<DimensionDataStorage> persistentDataSupplier, final ChunkStorage loader, final boolean removeCaches,
-+ final ResourceKey<LevelStem> worldKey, Optional<ResourceKey<Codec<? extends ChunkGenerator>>> generatorKey) {
++ final ResourceKey<LevelStem> worldKey, Optional<ResourceKey<MapCodec<? extends ChunkGenerator>>> generatorKey) {
+ this.persistentDataSupplier = persistentDataSupplier;
+ this.loader = loader;
+ this.removeCaches = removeCaches;
@@ -250,7 +260,7 @@ index 0000000000000000000000000000000000000000..90498d9a4f5aee0f6c8a202b5580b426
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
-index 244a19ecd0234fa1d7a6ecfea20751595688605d..8893aa1fe4b033fdc25ebe6f3a3606af1f9b5ea7 100644
+index 244a19ecd0234fa1d7a6ecfea20751595688605d..5443013060b62e3bfcc51cddca96d1c0bc59fe72 100644
--- a/src/main/java/net/minecraft/server/Main.java
+++ b/src/main/java/net/minecraft/server/Main.java
@@ -392,6 +392,15 @@ public class Main {
@@ -259,9 +269,9 @@ index 244a19ecd0234fa1d7a6ecfea20751595688605d..8893aa1fe4b033fdc25ebe6f3a3606af
+ // Paper start - fix and optimise world upgrading
+ public static void convertWorldButItWorks(net.minecraft.resources.ResourceKey<net.minecraft.world.level.dimension.LevelStem> dimensionType, net.minecraft.world.level.storage.LevelStorageSource.LevelStorageAccess worldSession,
-+ DataFixer dataFixer, Optional<net.minecraft.resources.ResourceKey<com.mojang.serialization.Codec<? extends net.minecraft.world.level.chunk.ChunkGenerator>>> generatorKey, boolean removeCaches, boolean recreateRegionFiles) {
++ DataFixer dataFixer, RegistryAccess registryLookup, Optional<net.minecraft.resources.ResourceKey<com.mojang.serialization.MapCodec<? extends net.minecraft.world.level.chunk.ChunkGenerator>>> generatorKey, boolean removeCaches, boolean recreateRegionFiles) {
+ int threads = Runtime.getRuntime().availableProcessors() * 3 / 8;
-+ final io.papermc.paper.world.ThreadedWorldUpgrader worldUpgrader = new io.papermc.paper.world.ThreadedWorldUpgrader(dimensionType, worldSession.getLevelId(), worldSession.levelDirectory.path().toFile(), threads, dataFixer, generatorKey, removeCaches, recreateRegionFiles);
++ final io.papermc.paper.world.ThreadedWorldUpgrader worldUpgrader = new io.papermc.paper.world.ThreadedWorldUpgrader(dimensionType, worldSession.getLevelId(), worldSession.levelDirectory.path().toFile(), threads, dataFixer, registryLookup, generatorKey, removeCaches, recreateRegionFiles);
+ worldUpgrader.convert();
+ }
+ // Paper end - fix and optimise world upgrading
@@ -270,7 +280,7 @@ index 244a19ecd0234fa1d7a6ecfea20751595688605d..8893aa1fe4b033fdc25ebe6f3a3606af
Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit
WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dynamicRegistryManager, eraseCache, recreateRegionFiles);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 5f3b35f0dbd9e78ad18ef5cf7be1a807beffeaf1..a43f597d1148e00a6533f74c25ce272cd4e26dc4 100644
+index 5f3b35f0dbd9e78ad18ef5cf7be1a807beffeaf1..b2d558d21ec22577c31543b79527bde3daa1b871 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -599,11 +599,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -293,7 +303,7 @@ index 5f3b35f0dbd9e78ad18ef5cf7be1a807beffeaf1..a43f597d1148e00a6533f74c25ce272c
+ // Paper start - fix and optimise world upgrading
+ if (options.has("forceUpgrade")) {
+ net.minecraft.server.Main.convertWorldButItWorks(
-+ dimensionKey, worldSession, DataFixers.getDataFixer(), worlddimension.generator().getTypeNameForDataFixer(), options.has("eraseCache"), console.has("recreateRegionFiles")
++ dimensionKey, worldSession, DataFixers.getDataFixer(), iregistrycustom_dimension, worlddimension.generator().getTypeNameForDataFixer(), options.has("eraseCache"), options.has("recreateRegionFiles")
+ );
+ }
+ // Paper end - fix and optimise world upgrading
@@ -355,7 +365,7 @@ index 249705ec1b8b692ef1d7fec34a04918afe6486bc..f6e3b745fc417354380d4a969f83aee4
return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ()));
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index ac9873c430a3ece5c4b5f5305496639a54ce35f5..3e29496ef9a551f692e4e9149d0e6ffc31fe66e9 100644
+index ac9873c430a3ece5c4b5f5305496639a54ce35f5..0a27ee956a623f6af3cd0f7d9dc1393fb2526412 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1366,9 +1366,7 @@ public final class CraftServer implements Server {
@@ -376,7 +386,7 @@ index ac9873c430a3ece5c4b5f5305496639a54ce35f5..3e29496ef9a551f692e4e9149d0e6ffc
+ // Paper start - fix and optimise world upgrading
+ if (this.console.options.has("forceUpgrade")) {
+ net.minecraft.server.Main.convertWorldButItWorks(
-+ actualDimension, worldSession, DataFixers.getDataFixer(), worlddimension.generator().getTypeNameForDataFixer(), this.console.options.has("eraseCache"), this.console.options.has("recreateRegionFiles")
++ actualDimension, worldSession, DataFixers.getDataFixer(), iregistrycustom_dimension, worlddimension.generator().getTypeNameForDataFixer(), this.console.options.has("eraseCache"), this.console.options.has("recreateRegionFiles")
+ );
+ }
+ // Paper end - fix and optimise world upgrading
diff --git a/patches/server/1035-API-for-checking-sent-chunks.patch b/patches/server/1036-API-for-checking-sent-chunks.patch
index 6187f99887..6187f99887 100644
--- a/patches/server/1035-API-for-checking-sent-chunks.patch
+++ b/patches/server/1036-API-for-checking-sent-chunks.patch