aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--patches/server/0740-Respect-despawn-rate-in-item-merge-check.patch (renamed from patches/server/0741-Respect-despawn-rate-in-item-merge-check.patch)0
-rw-r--r--patches/server/0740-Set-AsyncAppender-dispatch-thread-to-be-a-daemon-thr.patch19
-rw-r--r--patches/server/0741-Move-BlockPistonRetractEvent-to-fix-duplication.patch (renamed from patches/server/0742-Move-BlockPistonRetractEvent-to-fix-duplication.patch)0
-rw-r--r--patches/server/0742-Change-EnderEye-target-without-changing-other-things.patch (renamed from patches/server/0743-Change-EnderEye-target-without-changing-other-things.patch)0
-rw-r--r--patches/server/0743-Add-BlockBreakBlockEvent.patch (renamed from patches/server/0744-Add-BlockBreakBlockEvent.patch)0
-rw-r--r--patches/server/0744-Vanilla-command-permission-fixes.patch (renamed from patches/server/0745-Vanilla-command-permission-fixes.patch)2
-rw-r--r--patches/server/0745-Make-CallbackExecutor-strict-again.patch (renamed from patches/server/0746-Make-CallbackExecutor-strict-again.patch)2
-rw-r--r--patches/server/0746-Prevent-unload-calls-removing-tickets-for-sync-loads.patch (renamed from patches/server/0747-Prevent-unload-calls-removing-tickets-for-sync-loads.patch)0
-rw-r--r--patches/server/0747-Do-not-allow-ticket-level-changes-while-unloading-pl.patch (renamed from patches/server/0748-Do-not-allow-ticket-level-changes-while-unloading-pl.patch)0
-rw-r--r--patches/server/0748-Do-not-allow-the-server-to-unload-chunks-at-request-.patch (renamed from patches/server/0749-Do-not-allow-the-server-to-unload-chunks-at-request-.patch)0
-rw-r--r--patches/server/0749-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch (renamed from patches/server/0750-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch)4
-rw-r--r--patches/server/0750-Correctly-handle-recursion-for-chunkholder-updates.patch (renamed from patches/server/0751-Correctly-handle-recursion-for-chunkholder-updates.patch)2
-rw-r--r--patches/server/0751-Separate-lookup-locking-from-state-access-in-UserCac.patch (renamed from patches/server/0752-Separate-lookup-locking-from-state-access-in-UserCac.patch)0
-rw-r--r--patches/server/0752-Fix-chunks-refusing-to-unload-at-low-TPS.patch (renamed from patches/server/0753-Fix-chunks-refusing-to-unload-at-low-TPS.patch)2
-rw-r--r--patches/server/0753-Do-not-allow-ticket-level-changes-when-updating-chun.patch (renamed from patches/server/0754-Do-not-allow-ticket-level-changes-when-updating-chun.patch)2
-rw-r--r--patches/server/0754-Do-not-submit-profile-lookups-to-worldgen-threads.patch (renamed from patches/server/0755-Do-not-submit-profile-lookups-to-worldgen-threads.patch)0
-rw-r--r--patches/server/0755-Log-when-the-async-catcher-is-tripped.patch (renamed from patches/server/0756-Log-when-the-async-catcher-is-tripped.patch)0
-rw-r--r--patches/server/0756-Sanitize-ResourceLocation-error-logging.patch (renamed from patches/server/0757-Sanitize-ResourceLocation-error-logging.patch)0
-rw-r--r--patches/server/0757-Fix-and-optimize-legacy-world-conversion.patch (renamed from patches/server/0758-Fix-and-optimize-legacy-world-conversion.patch)2
-rw-r--r--patches/server/0758-Optimise-general-POI-access.patch (renamed from patches/server/0759-Optimise-general-POI-access.patch)0
-rw-r--r--patches/server/0759-Allow-controlled-flushing-for-network-manager.patch (renamed from patches/server/0760-Allow-controlled-flushing-for-network-manager.patch)0
-rw-r--r--patches/server/0760-Add-more-async-catchers.patch (renamed from patches/server/0761-Add-more-async-catchers.patch)0
-rw-r--r--patches/server/0761-Rewrite-the-light-engine.patch (renamed from patches/server/0762-Rewrite-the-light-engine.patch)6
-rw-r--r--patches/server/0762-Rewrite-entity-bounding-box-lookup-calls.patch (renamed from patches/server/0763-Rewrite-entity-bounding-box-lookup-calls.patch)0
-rw-r--r--patches/server/0763-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch (renamed from patches/server/0764-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch)6
-rw-r--r--patches/server/0764-Optimise-chunk-tick-iteration.patch (renamed from patches/server/0765-Optimise-chunk-tick-iteration.patch)0
-rw-r--r--patches/server/0765-Execute-chunk-tasks-mid-tick.patch (renamed from patches/server/0766-Execute-chunk-tasks-mid-tick.patch)0
-rw-r--r--patches/server/0766-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch (renamed from patches/server/0767-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch)0
-rw-r--r--patches/server/0767-Do-not-copy-visible-chunks.patch (renamed from patches/server/0768-Do-not-copy-visible-chunks.patch)4
-rw-r--r--patches/server/0768-Replace-player-chunk-loader-system.patch (renamed from patches/server/0769-Replace-player-chunk-loader-system.patch)0
-rw-r--r--patches/server/0769-Replace-ticket-level-propagator.patch (renamed from patches/server/0770-Replace-ticket-level-propagator.patch)0
-rw-r--r--patches/server/0770-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch (renamed from patches/server/0771-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch)0
-rw-r--r--patches/server/0771-Custom-table-implementation-for-blockstate-state-loo.patch (renamed from patches/server/0772-Custom-table-implementation-for-blockstate-state-loo.patch)0
-rw-r--r--patches/server/0772-Detail-more-information-in-watchdog-dumps.patch (renamed from patches/server/0773-Detail-more-information-in-watchdog-dumps.patch)6
-rw-r--r--patches/server/0773-Optimise-collision-checking-in-player-move-packet-ha.patch (renamed from patches/server/0774-Optimise-collision-checking-in-player-move-packet-ha.patch)2
-rw-r--r--patches/server/0774-Manually-inline-methods-in-BlockPosition.patch (renamed from patches/server/0775-Manually-inline-methods-in-BlockPosition.patch)0
-rw-r--r--patches/server/0775-Distance-manager-tick-timings.patch (renamed from patches/server/0776-Distance-manager-tick-timings.patch)0
-rw-r--r--patches/server/0776-Name-craft-scheduler-threads-according-to-the-plugin.patch (renamed from patches/server/0777-Name-craft-scheduler-threads-according-to-the-plugin.patch)0
-rw-r--r--patches/server/0777-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch (renamed from patches/server/0778-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch)0
-rw-r--r--patches/server/0778-Add-packet-limiter-config.patch (renamed from patches/server/0779-Add-packet-limiter-config.patch)2
-rw-r--r--patches/server/0779-Lag-compensate-block-breaking.patch (renamed from patches/server/0780-Lag-compensate-block-breaking.patch)0
-rw-r--r--patches/server/0780-Use-hash-table-for-maintaing-changed-block-set.patch (renamed from patches/server/0781-Use-hash-table-for-maintaing-changed-block-set.patch)2
-rw-r--r--patches/server/0781-Consolidate-flush-calls-for-entity-tracker-packets.patch (renamed from patches/server/0782-Consolidate-flush-calls-for-entity-tracker-packets.patch)0
-rw-r--r--patches/server/0782-Don-t-lookup-fluid-state-when-raytracing.patch (renamed from patches/server/0783-Don-t-lookup-fluid-state-when-raytracing.patch)0
-rw-r--r--patches/server/0783-Time-scoreboard-search.patch (renamed from patches/server/0784-Time-scoreboard-search.patch)0
-rw-r--r--patches/server/0784-Send-full-pos-packets-for-hard-colliding-entities.patch (renamed from patches/server/0785-Send-full-pos-packets-for-hard-colliding-entities.patch)2
-rw-r--r--patches/server/0785-Do-not-run-raytrace-logic-for-AIR.patch (renamed from patches/server/0786-Do-not-run-raytrace-logic-for-AIR.patch)0
-rw-r--r--patches/server/0786-Oprimise-map-impl-for-tracked-players.patch (renamed from patches/server/0787-Oprimise-map-impl-for-tracked-players.patch)2
-rw-r--r--patches/server/0787-Optimise-BlockSoil-nearby-water-lookup.patch (renamed from patches/server/0788-Optimise-BlockSoil-nearby-water-lookup.patch)0
-rw-r--r--patches/server/0788-Allow-removal-addition-of-entities-to-entity-ticklis.patch (renamed from patches/server/0789-Allow-removal-addition-of-entities-to-entity-ticklis.patch)0
-rw-r--r--patches/server/0789-Optimise-random-block-ticking.patch (renamed from patches/server/0790-Optimise-random-block-ticking.patch)0
-rw-r--r--patches/server/0790-Optimise-non-flush-packet-sending.patch (renamed from patches/server/0791-Optimise-non-flush-packet-sending.patch)2
-rw-r--r--patches/server/0791-Optimise-nearby-player-lookups.patch (renamed from patches/server/0792-Optimise-nearby-player-lookups.patch)8
-rw-r--r--patches/server/0792-Fix-Codec-log-spam.patch (renamed from patches/server/0793-Fix-Codec-log-spam.patch)2
-rw-r--r--patches/server/0793-Optimise-WorldServer-notify.patch (renamed from patches/server/0794-Optimise-WorldServer-notify.patch)2
-rw-r--r--patches/server/0794-Remove-streams-for-villager-AI.patch (renamed from patches/server/0795-Remove-streams-for-villager-AI.patch)0
-rw-r--r--patches/server/0795-Rewrite-dataconverter-system.patch (renamed from patches/server/0796-Rewrite-dataconverter-system.patch)2
-rw-r--r--patches/server/0796-Use-Velocity-compression-and-cipher-natives.patch (renamed from patches/server/0797-Use-Velocity-compression-and-cipher-natives.patch)4
-rw-r--r--patches/server/0797-Always-parse-protochunk-light-sources-unless-it-is-m.patch (renamed from patches/server/0798-Always-parse-protochunk-light-sources-unless-it-is-m.patch)0
-rw-r--r--patches/server/0798-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch (renamed from patches/server/0799-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch)0
-rw-r--r--patches/server/0799-Configurable-feature-seeds.patch (renamed from patches/server/0800-Configurable-feature-seeds.patch)0
-rw-r--r--patches/server/0800-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch (renamed from patches/server/0801-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch)0
-rw-r--r--patches/server/0801-Prevent-softlocked-end-exit-portal-generation.patch (renamed from patches/server/0802-Prevent-softlocked-end-exit-portal-generation.patch)0
-rw-r--r--patches/server/0802-Add-paper-mobcaps-and-paper-playermobcaps.patch (renamed from patches/server/0803-Add-paper-mobcaps-and-paper-playermobcaps.patch)0
-rw-r--r--patches/server/0803-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch (renamed from patches/server/0804-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch)0
-rw-r--r--patches/server/0804-Don-t-log-debug-logging-being-disabled.patch (renamed from patches/server/0805-Don-t-log-debug-logging-being-disabled.patch)0
-rw-r--r--patches/server/0805-Mark-fish-and-axolotls-from-buckets-as-persistent.patch (renamed from patches/server/0806-Mark-fish-and-axolotls-from-buckets-as-persistent.patch)0
-rw-r--r--patches/server/0806-fix-various-menus-with-empty-level-accesses.patch (renamed from patches/server/0807-fix-various-menus-with-empty-level-accesses.patch)0
-rw-r--r--patches/server/0807-Ensure-valid-vehicle-status.patch (renamed from patches/server/0808-Ensure-valid-vehicle-status.patch)2
-rw-r--r--patches/server/0808-Option-to-prevent-NBT-copy-in-smithing-recipes.patch (renamed from patches/server/0809-Option-to-prevent-NBT-copy-in-smithing-recipes.patch)0
-rw-r--r--patches/server/0809-More-CommmandBlock-API.patch (renamed from patches/server/0810-More-CommmandBlock-API.patch)0
-rw-r--r--patches/server/0810-Preserve-overstacked-loot.patch (renamed from patches/server/0811-Preserve-overstacked-loot.patch)0
-rw-r--r--patches/server/0811-Update-head-rotation-in-missing-places.patch (renamed from patches/server/0812-Update-head-rotation-in-missing-places.patch)2
-rw-r--r--patches/server/0812-prevent-unintended-light-block-manipulation.patch (renamed from patches/server/0813-prevent-unintended-light-block-manipulation.patch)0
-rw-r--r--patches/server/0813-Add-missing-team-sidebar-display-slots.patch (renamed from patches/server/0814-Add-missing-team-sidebar-display-slots.patch)0
-rw-r--r--patches/server/0814-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch (renamed from patches/server/0815-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch)2
-rw-r--r--patches/server/0815-Fix-CraftCriteria-defaults-map.patch (renamed from patches/server/0816-Fix-CraftCriteria-defaults-map.patch)0
-rw-r--r--patches/server/0816-Add-back-EntityPortalExitEvent.patch (renamed from patches/server/0817-Add-back-EntityPortalExitEvent.patch)2
-rw-r--r--patches/server/0817-Fix-upstreams-block-state-factories.patch (renamed from patches/server/0818-Fix-upstreams-block-state-factories.patch)0
-rw-r--r--patches/server/0818-Add-config-option-for-logging-player-ip-addresses.patch (renamed from patches/server/0819-Add-config-option-for-logging-player-ip-addresses.patch)2
-rw-r--r--patches/server/0819-Add-methods-to-find-targets-for-lightning-strikes.patch (renamed from patches/server/0820-Add-methods-to-find-targets-for-lightning-strikes.patch)2
-rw-r--r--patches/server/0820-VanillaCommandWrapper-didnt-account-for-entity-sende.patch (renamed from patches/server/0821-VanillaCommandWrapper-didnt-account-for-entity-sende.patch)0
-rw-r--r--patches/server/0821-Add-root-admin-user-detection.patch (renamed from patches/server/0822-Add-root-admin-user-detection.patch)0
-rw-r--r--patches/server/0822-Always-allow-item-changing-in-Fireball.patch (renamed from patches/server/0823-Always-allow-item-changing-in-Fireball.patch)0
-rw-r--r--patches/server/0823-Fix-merchant-inventory-not-closing-on-entity-removal.patch (renamed from patches/server/0824-Fix-merchant-inventory-not-closing-on-entity-removal.patch)0
-rw-r--r--patches/server/0824-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch (renamed from patches/server/0825-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch)2
-rw-r--r--patches/server/0825-Use-correct-LevelStem-registry-when-loading-default-.patch (renamed from patches/server/0826-Use-correct-LevelStem-registry-when-loading-default-.patch)0
-rw-r--r--patches/server/0826-Get-entity-default-attributes.patch (renamed from patches/server/0827-Get-entity-default-attributes.patch)0
-rw-r--r--patches/server/0827-Left-handed-API.patch (renamed from patches/server/0828-Left-handed-API.patch)0
-rw-r--r--patches/server/0828-Add-advancement-display-API.patch (renamed from patches/server/0829-Add-advancement-display-API.patch)0
-rw-r--r--patches/server/0829-Add-ItemFactory-getMonsterEgg-API.patch (renamed from patches/server/0830-Add-ItemFactory-getMonsterEgg-API.patch)0
-rw-r--r--patches/server/0830-Add-critical-damage-API.patch (renamed from patches/server/0831-Add-critical-damage-API.patch)4
-rw-r--r--patches/server/0831-Check-requirement-before-suggesting-root-nodes.patch (renamed from patches/server/0832-Check-requirement-before-suggesting-root-nodes.patch)0
-rw-r--r--patches/server/0832-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch (renamed from patches/server/0833-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch)2
-rw-r--r--patches/server/0833-don-t-attempt-to-teleport-dead-entities.patch (renamed from patches/server/0834-don-t-attempt-to-teleport-dead-entities.patch)2
-rw-r--r--patches/server/0834-Async-catch-modifications-to-critical-entity-state.patch (renamed from patches/server/0835-Async-catch-modifications-to-critical-entity-state.patch)0
-rw-r--r--patches/server/0835-Cache-palette-array.patch (renamed from patches/server/0836-Cache-palette-array.patch)0
-rw-r--r--patches/server/0836-Fix-Bukkit-NamespacedKey-shenanigans.patch (renamed from patches/server/0837-Fix-Bukkit-NamespacedKey-shenanigans.patch)0
-rw-r--r--patches/server/0837-Fix-issues-with-mob-conversion.patch (renamed from patches/server/0838-Fix-issues-with-mob-conversion.patch)0
-rw-r--r--patches/server/0838-Add-isCollidable-methods-to-various-places.patch (renamed from patches/server/0839-Add-isCollidable-methods-to-various-places.patch)0
-rw-r--r--patches/server/0839-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch (renamed from patches/server/0840-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch)0
-rw-r--r--patches/server/0840-Goat-ram-API.patch (renamed from patches/server/0841-Goat-ram-API.patch)0
-rw-r--r--patches/server/0841-Add-Raw-Byte-Entity-Serialization.patch (renamed from patches/server/0842-Add-Raw-Byte-Entity-Serialization.patch)2
-rw-r--r--patches/server/0842-Call-onRemove-logic-for-breakNaturally.patch (renamed from patches/server/0843-Call-onRemove-logic-for-breakNaturally.patch)0
-rw-r--r--patches/server/0843-Add-API-for-resetting-a-single-score.patch (renamed from patches/server/0844-Add-API-for-resetting-a-single-score.patch)0
-rw-r--r--patches/server/0844-Fix-anvil-prepare-event-not-working-with-zero-xp.patch (renamed from patches/server/0845-Fix-anvil-prepare-event-not-working-with-zero-xp.patch)0
-rw-r--r--patches/server/0845-Prevent-ContainerOpenersCounter-openCount-from-going.patch (renamed from patches/server/0846-Prevent-ContainerOpenersCounter-openCount-from-going.patch)0
-rw-r--r--patches/server/0846-Update-Log4J.patch27
-rw-r--r--patches/server/0847-Backport-log4j-2.15.0-bugfix.patch384
109 files changed, 73 insertions, 449 deletions
diff --git a/patches/server/0741-Respect-despawn-rate-in-item-merge-check.patch b/patches/server/0740-Respect-despawn-rate-in-item-merge-check.patch
index 2b374d388a..2b374d388a 100644
--- a/patches/server/0741-Respect-despawn-rate-in-item-merge-check.patch
+++ b/patches/server/0740-Respect-despawn-rate-in-item-merge-check.patch
diff --git a/patches/server/0740-Set-AsyncAppender-dispatch-thread-to-be-a-daemon-thr.patch b/patches/server/0740-Set-AsyncAppender-dispatch-thread-to-be-a-daemon-thr.patch
deleted file mode 100644
index 4a7c6f9fc7..0000000000
--- a/patches/server/0740-Set-AsyncAppender-dispatch-thread-to-be-a-daemon-thr.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jason Penilla <[email protected]>
-Date: Wed, 18 Aug 2021 12:02:02 -0500
-Subject: [PATCH] Set AsyncAppender dispatch thread to be a daemon thread
-
-This diff will be included in the not yet released Log4j 2.14.2. When Log4j 2.14.2 is released this patch should be dropped in favor of bumping Log4j.
-
-diff --git a/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java b/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java
-index a01f68db840b6e953fa6908ad10cd25744be6471..d406c3d38059b1e4012ca5ebd938b8a6f8ce152f 100644
---- a/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java
-+++ b/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java
-@@ -50,6 +50,7 @@ class AsyncAppenderEventDispatcher extends Log4jThread {
- final List<AppenderControl> appenders,
- final BlockingQueue<LogEvent> queue) {
- super("AsyncAppenderEventDispatcher-" + THREAD_COUNTER.incrementAndGet() + "-" + name);
-+ this.setDaemon(true); // Paper - Backport change from not yet released Log4j 2.14.2
- this.errorAppender = errorAppender;
- this.appenders = appenders;
- this.queue = queue;
diff --git a/patches/server/0742-Move-BlockPistonRetractEvent-to-fix-duplication.patch b/patches/server/0741-Move-BlockPistonRetractEvent-to-fix-duplication.patch
index ab755b8fb7..ab755b8fb7 100644
--- a/patches/server/0742-Move-BlockPistonRetractEvent-to-fix-duplication.patch
+++ b/patches/server/0741-Move-BlockPistonRetractEvent-to-fix-duplication.patch
diff --git a/patches/server/0743-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0742-Change-EnderEye-target-without-changing-other-things.patch
index 5f7821d0a6..5f7821d0a6 100644
--- a/patches/server/0743-Change-EnderEye-target-without-changing-other-things.patch
+++ b/patches/server/0742-Change-EnderEye-target-without-changing-other-things.patch
diff --git a/patches/server/0744-Add-BlockBreakBlockEvent.patch b/patches/server/0743-Add-BlockBreakBlockEvent.patch
index 5360c87687..5360c87687 100644
--- a/patches/server/0744-Add-BlockBreakBlockEvent.patch
+++ b/patches/server/0743-Add-BlockBreakBlockEvent.patch
diff --git a/patches/server/0745-Vanilla-command-permission-fixes.patch b/patches/server/0744-Vanilla-command-permission-fixes.patch
index 46e803d4e5..9d2853b29d 100644
--- a/patches/server/0745-Vanilla-command-permission-fixes.patch
+++ b/patches/server/0744-Vanilla-command-permission-fixes.patch
@@ -30,7 +30,7 @@ index 899008b2980d13f1be6280cd8cb959c53a29bebf..f875507241ac6769545e91cd3285232b
private RedirectModifier<S> modifier = null;
private boolean forks;
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
-index 816ea85a5880123c970d227d61426a0ae2b9539f..b7c24a7ff4dc50d03f74b21a0b353d0ce559b4d4 100644
+index e269bc8f6282a73ceac6e8aec8652fe2b685adab..0766f272068248175bc929a145bafaf9efc8978d 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -204,6 +204,13 @@ public class Commands {
diff --git a/patches/server/0746-Make-CallbackExecutor-strict-again.patch b/patches/server/0745-Make-CallbackExecutor-strict-again.patch
index 92205e8c6d..33efc0e20b 100644
--- a/patches/server/0746-Make-CallbackExecutor-strict-again.patch
+++ b/patches/server/0745-Make-CallbackExecutor-strict-again.patch
@@ -10,7 +10,7 @@ schedules. Effectively, use the callback executor as a tool of
finding issues rather than hiding these issues.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 047f1772c8f9346ba4541d46af8e144141865cfb..173c9d06b28db3e776c762903a0409234c08b13c 100644
+index dc1aca025a6e54ee0d494e20a4a72ac6a6c976fb..ba1c55c4f2486cae25ce570132d9222f6ab77d49 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -154,17 +154,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0747-Prevent-unload-calls-removing-tickets-for-sync-loads.patch b/patches/server/0746-Prevent-unload-calls-removing-tickets-for-sync-loads.patch
index b95a4cdfea..b95a4cdfea 100644
--- a/patches/server/0747-Prevent-unload-calls-removing-tickets-for-sync-loads.patch
+++ b/patches/server/0746-Prevent-unload-calls-removing-tickets-for-sync-loads.patch
diff --git a/patches/server/0748-Do-not-allow-ticket-level-changes-while-unloading-pl.patch b/patches/server/0747-Do-not-allow-ticket-level-changes-while-unloading-pl.patch
index 6adcb35aef..6adcb35aef 100644
--- a/patches/server/0748-Do-not-allow-ticket-level-changes-while-unloading-pl.patch
+++ b/patches/server/0747-Do-not-allow-ticket-level-changes-while-unloading-pl.patch
diff --git a/patches/server/0749-Do-not-allow-the-server-to-unload-chunks-at-request-.patch b/patches/server/0748-Do-not-allow-the-server-to-unload-chunks-at-request-.patch
index 834f48a1c9..834f48a1c9 100644
--- a/patches/server/0749-Do-not-allow-the-server-to-unload-chunks-at-request-.patch
+++ b/patches/server/0748-Do-not-allow-the-server-to-unload-chunks-at-request-.patch
diff --git a/patches/server/0750-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0749-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
index 3ccfde3cd9..ae87b61b5a 100644
--- a/patches/server/0750-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
+++ b/patches/server/0749-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
@@ -9,7 +9,7 @@ chunk through it. This should also be OK from a leak prevention/
state desync POV because the TE is getting unloaded anyways.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index f8c0574137cab33d0b5efe5d532efb132dcb914a..80f59abeb0081fe4784f3c0d027e8dfce752814b 100644
+index 43a740eb644629bf88d60d7ab559793a1965f9d8..ac3ef76f0db5a2d0f02b5e48a8bf511d9b0104d4 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1292,9 +1292,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -28,7 +28,7 @@ index f8c0574137cab33d0b5efe5d532efb132dcb914a..80f59abeb0081fe4784f3c0d027e8dfc
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 9b02f054493ad69c7a595374e6fd600c3d64e61e..e40587b9c13d9170ef5dd0811e96b02ecaccebb2 100644
+index 80f7ff6117d15d1e0f19a497a8a2172a75d14734..bb7185009ece552baeba6de72166eb22a39ccbed 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1562,6 +1562,18 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0751-Correctly-handle-recursion-for-chunkholder-updates.patch b/patches/server/0750-Correctly-handle-recursion-for-chunkholder-updates.patch
index 850a20267c..f82a342b6a 100644
--- a/patches/server/0751-Correctly-handle-recursion-for-chunkholder-updates.patch
+++ b/patches/server/0750-Correctly-handle-recursion-for-chunkholder-updates.patch
@@ -8,7 +8,7 @@ cause a recursive call which would handle the increase but then
the caller would think the chunk would be unloaded.
diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java
-index 823451570e02ee75bfce1c106779a0502187fcea..d4ea81824acdc1220616b24ea0f465db97f4a343 100644
+index 6df2167204ef1a8e9ad1d8b1e73df762f0523fa3..b4f8e67b1e4d1ea481d4270597fff86d7faf1bd5 100644
--- a/src/main/java/net/minecraft/server/level/ChunkHolder.java
+++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java
@@ -619,8 +619,10 @@ public class ChunkHolder {
diff --git a/patches/server/0752-Separate-lookup-locking-from-state-access-in-UserCac.patch b/patches/server/0751-Separate-lookup-locking-from-state-access-in-UserCac.patch
index b5bd2f63c9..b5bd2f63c9 100644
--- a/patches/server/0752-Separate-lookup-locking-from-state-access-in-UserCac.patch
+++ b/patches/server/0751-Separate-lookup-locking-from-state-access-in-UserCac.patch
diff --git a/patches/server/0753-Fix-chunks-refusing-to-unload-at-low-TPS.patch b/patches/server/0752-Fix-chunks-refusing-to-unload-at-low-TPS.patch
index 2f37de0d73..4ac3f081ff 100644
--- a/patches/server/0753-Fix-chunks-refusing-to-unload-at-low-TPS.patch
+++ b/patches/server/0752-Fix-chunks-refusing-to-unload-at-low-TPS.patch
@@ -10,7 +10,7 @@ chunk future to complete. We can simply schedule to the immediate
executor to get this effect, rather than the main mailbox.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index dcb5b1022eb72c50dc1df3654b0c9db7c782517c..efaab00b73f48e267a033a4ef466dcbaf2af2044 100644
+index fe15f8fdb886674278513c5fdbf17f066c9f0b4f..19bd06be74f144393be6aa6e392d60c88bdb1c2d 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1451,9 +1451,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0754-Do-not-allow-ticket-level-changes-when-updating-chun.patch b/patches/server/0753-Do-not-allow-ticket-level-changes-when-updating-chun.patch
index b270fb651b..7f42f6c716 100644
--- a/patches/server/0754-Do-not-allow-ticket-level-changes-when-updating-chun.patch
+++ b/patches/server/0753-Do-not-allow-ticket-level-changes-when-updating-chun.patch
@@ -8,7 +8,7 @@ This WILL cause state corruption if it happens. So, don't
allow it.
diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java
-index d4ea81824acdc1220616b24ea0f465db97f4a343..b0a6eb7846580489e0476e69565676e77fd224cd 100644
+index b4f8e67b1e4d1ea481d4270597fff86d7faf1bd5..dd18ee4ac478d64fca7b311148a85507232e602f 100644
--- a/src/main/java/net/minecraft/server/level/ChunkHolder.java
+++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java
@@ -599,7 +599,13 @@ public class ChunkHolder {
diff --git a/patches/server/0755-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/server/0754-Do-not-submit-profile-lookups-to-worldgen-threads.patch
index a636b5f2f5..a636b5f2f5 100644
--- a/patches/server/0755-Do-not-submit-profile-lookups-to-worldgen-threads.patch
+++ b/patches/server/0754-Do-not-submit-profile-lookups-to-worldgen-threads.patch
diff --git a/patches/server/0756-Log-when-the-async-catcher-is-tripped.patch b/patches/server/0755-Log-when-the-async-catcher-is-tripped.patch
index 7006040b25..7006040b25 100644
--- a/patches/server/0756-Log-when-the-async-catcher-is-tripped.patch
+++ b/patches/server/0755-Log-when-the-async-catcher-is-tripped.patch
diff --git a/patches/server/0757-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0756-Sanitize-ResourceLocation-error-logging.patch
index 1f990a622a..1f990a622a 100644
--- a/patches/server/0757-Sanitize-ResourceLocation-error-logging.patch
+++ b/patches/server/0756-Sanitize-ResourceLocation-error-logging.patch
diff --git a/patches/server/0758-Fix-and-optimize-legacy-world-conversion.patch b/patches/server/0757-Fix-and-optimize-legacy-world-conversion.patch
index ba0f43086d..1fcaa41fe7 100644
--- a/patches/server/0758-Fix-and-optimize-legacy-world-conversion.patch
+++ b/patches/server/0757-Fix-and-optimize-legacy-world-conversion.patch
@@ -46,7 +46,7 @@ index 8703f97dc2f392b136c6851aa09b607cbfdfa5de..ade010fe3b62a4624b009c6d665e9909
exception.printStackTrace();
ServerInternalException.reportInternalException(exception); // Paper
diff --git a/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java b/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java
-index af8a555c777b5abbaa2615d2ff03f03a9a93847e..b794c02ea36bdc901b1f6a160095abb3fcfe9b60 100644
+index b1a65ec9258a3a74ef29e7856870132b1097f566..83ed842325c30dc3d62af697db87fe95b38a400d 100644
--- a/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java
+++ b/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java
@@ -348,6 +348,12 @@ public class LevelStorageSource {
diff --git a/patches/server/0759-Optimise-general-POI-access.patch b/patches/server/0758-Optimise-general-POI-access.patch
index d7a3900e0e..d7a3900e0e 100644
--- a/patches/server/0759-Optimise-general-POI-access.patch
+++ b/patches/server/0758-Optimise-general-POI-access.patch
diff --git a/patches/server/0760-Allow-controlled-flushing-for-network-manager.patch b/patches/server/0759-Allow-controlled-flushing-for-network-manager.patch
index 447bf41386..447bf41386 100644
--- a/patches/server/0760-Allow-controlled-flushing-for-network-manager.patch
+++ b/patches/server/0759-Allow-controlled-flushing-for-network-manager.patch
diff --git a/patches/server/0761-Add-more-async-catchers.patch b/patches/server/0760-Add-more-async-catchers.patch
index 6dba1f42b8..6dba1f42b8 100644
--- a/patches/server/0761-Add-more-async-catchers.patch
+++ b/patches/server/0760-Add-more-async-catchers.patch
diff --git a/patches/server/0762-Rewrite-the-light-engine.patch b/patches/server/0761-Rewrite-the-light-engine.patch
index 214c76a928..22a207f19b 100644
--- a/patches/server/0762-Rewrite-the-light-engine.patch
+++ b/patches/server/0761-Rewrite-the-light-engine.patch
@@ -3843,7 +3843,7 @@ index d8be2ad889f46491e50404916fb4ae0de5f42098..29ba097a7b230ef67d4d1b5f4ebe20cd
}
diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java
-index b0a6eb7846580489e0476e69565676e77fd224cd..54822e418e319db551bfea3218d00faf0e043f43 100644
+index dd18ee4ac478d64fca7b311148a85507232e602f..a9267e64e54f451c896e35693f469b8563f578f9 100644
--- a/src/main/java/net/minecraft/server/level/ChunkHolder.java
+++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java
@@ -55,7 +55,7 @@ public class ChunkHolder {
@@ -3856,7 +3856,7 @@ index b0a6eb7846580489e0476e69565676e77fd224cd..54822e418e319db551bfea3218d00faf
private final DebugBuffer<ChunkHolder.ChunkSaveDebug> chunkToSaveHistory;
public int oldTicketLevel;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index efaab00b73f48e267a033a4ef466dcbaf2af2044..aae8dca773686bec3f867b79aa11d668032b9244 100644
+index 19bd06be74f144393be6aa6e392d60c88bdb1c2d..0006b8af2f9f774068ed5b8c906fe9b9383666e1 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -121,7 +121,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -4196,7 +4196,7 @@ index 41ddcf6775f99c56cf4b13b284420061e5dd6bdc..ae46429264e6a7e5c88b6b6a41a6df4d
public static <T> TicketType<T> create(String name, Comparator<T> argumentComparator) {
return new TicketType<>(name, argumentComparator, 0L);
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index b534fd9e5d2a17926282cf40c9d66a2143a37bfe..4a7fdea6a5f966db444dc41f7215faa99e3820b3 100644
+index 2f35e145de9cd5a065eb6e6a0996afb78291bd62..b1b4dad73b69180cb4c3344e4a5e7e49bb467f62 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -643,6 +643,7 @@ public abstract class BlockBehaviour {
diff --git a/patches/server/0763-Rewrite-entity-bounding-box-lookup-calls.patch b/patches/server/0762-Rewrite-entity-bounding-box-lookup-calls.patch
index d80d218906..d80d218906 100644
--- a/patches/server/0763-Rewrite-entity-bounding-box-lookup-calls.patch
+++ b/patches/server/0762-Rewrite-entity-bounding-box-lookup-calls.patch
diff --git a/patches/server/0764-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/server/0763-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
index fcfb420703..c899bb1262 100644
--- a/patches/server/0764-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
+++ b/patches/server/0763-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
@@ -926,7 +926,7 @@ index 0000000000000000000000000000000000000000..d67a40e7be030142443680c89e1763fc
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e40587b9c13d9170ef5dd0811e96b02ecaccebb2..52ffc39715def70a8ad3a99356be19bea5ef892b 100644
+index bb7185009ece552baeba6de72166eb22a39ccbed..d0a6da33bb9152b6fafe6b3a788817d523c1fe49 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -419,7 +419,7 @@ public class ServerPlayer extends Player {
@@ -961,7 +961,7 @@ index 450dd486269450be88c9a9a4d895184199e655aa..9b6770a41d272eea4b0a1d2076c936af
}
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 74fcc1b45a9e57280da82f7c181530d4183872a5..481e84fda6dccfaf684c922a12fa19ed35c87b3c 100644
+index b7b802053c48c740161747c89cc55ade80094cb7..880723e59e4ca52d7b30a4dcad3b929e86128d2a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1025,9 +1025,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
@@ -1229,7 +1229,7 @@ index 94130509e3a7980c378cc95c46821cf0fc753ce6..7224c56e8a68870364c6538c82c04f37
if (true || entityx.getBoundingBox().intersects(aABB)) { // Paper - always true
if (entity == null) {
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 4a7fdea6a5f966db444dc41f7215faa99e3820b3..d87f8d106834678364f8720447d671de60c2454e 100644
+index b1b4dad73b69180cb4c3344e4a5e7e49bb467f62..83d813025efca5846538e36508a5d4fe38b02108 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -685,7 +685,7 @@ public abstract class BlockBehaviour {
diff --git a/patches/server/0765-Optimise-chunk-tick-iteration.patch b/patches/server/0764-Optimise-chunk-tick-iteration.patch
index 7ca2497335..7ca2497335 100644
--- a/patches/server/0765-Optimise-chunk-tick-iteration.patch
+++ b/patches/server/0764-Optimise-chunk-tick-iteration.patch
diff --git a/patches/server/0766-Execute-chunk-tasks-mid-tick.patch b/patches/server/0765-Execute-chunk-tasks-mid-tick.patch
index a1266038ec..a1266038ec 100644
--- a/patches/server/0766-Execute-chunk-tasks-mid-tick.patch
+++ b/patches/server/0765-Execute-chunk-tasks-mid-tick.patch
diff --git a/patches/server/0767-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0766-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
index dbf1b0db95..dbf1b0db95 100644
--- a/patches/server/0767-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
+++ b/patches/server/0766-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
diff --git a/patches/server/0768-Do-not-copy-visible-chunks.patch b/patches/server/0767-Do-not-copy-visible-chunks.patch
index 09bbc5118f..5d907e436b 100644
--- a/patches/server/0768-Do-not-copy-visible-chunks.patch
+++ b/patches/server/0767-Do-not-copy-visible-chunks.patch
@@ -22,7 +22,7 @@ index 807bbe54f6516f794bdcb735bb7b8d6812e3ef01..2ef4b4c2ff81d0fa33d4630593266066
continue;
}
diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java
-index 436ea61d284120a43123709f0213ec56870147dc..d2ea11d35ea111c349df5aa375d7ee8831658262 100644
+index 14d31bc2fb19b1265ee3e72280f2aba22ec0a26d..82a233b413791eff4bc6b9140b5bbf99354ed671 100644
--- a/src/main/java/net/minecraft/server/MCUtil.java
+++ b/src/main/java/net/minecraft/server/MCUtil.java
@@ -619,7 +619,7 @@ public final class MCUtil {
@@ -35,7 +35,7 @@ index 436ea61d284120a43123709f0213ec56870147dc..d2ea11d35ea111c349df5aa375d7ee88
List<ChunkHolder> allChunks = new ArrayList<>(visibleChunks.values());
List<ServerPlayer> players = world.players;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index aae8dca773686bec3f867b79aa11d668032b9244..2f5ab00d26dcf027ec0e152a8bf17686a280ae50 100644
+index 0006b8af2f9f774068ed5b8c906fe9b9383666e1..85c97767cdaf45b24f5764a6a1ef3c56535bb37f 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -114,9 +114,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0769-Replace-player-chunk-loader-system.patch b/patches/server/0768-Replace-player-chunk-loader-system.patch
index ef546632f7..ef546632f7 100644
--- a/patches/server/0769-Replace-player-chunk-loader-system.patch
+++ b/patches/server/0768-Replace-player-chunk-loader-system.patch
diff --git a/patches/server/0770-Replace-ticket-level-propagator.patch b/patches/server/0769-Replace-ticket-level-propagator.patch
index 5ed73f61e6..5ed73f61e6 100644
--- a/patches/server/0770-Replace-ticket-level-propagator.patch
+++ b/patches/server/0769-Replace-ticket-level-propagator.patch
diff --git a/patches/server/0771-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0770-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
index a0bc2c19ec..a0bc2c19ec 100644
--- a/patches/server/0771-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
+++ b/patches/server/0770-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
diff --git a/patches/server/0772-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0771-Custom-table-implementation-for-blockstate-state-loo.patch
index acc5535802..acc5535802 100644
--- a/patches/server/0772-Custom-table-implementation-for-blockstate-state-loo.patch
+++ b/patches/server/0771-Custom-table-implementation-for-blockstate-state-loo.patch
diff --git a/patches/server/0773-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0772-Detail-more-information-in-watchdog-dumps.patch
index 7af32a532d..2234220b9e 100644
--- a/patches/server/0773-Detail-more-information-in-watchdog-dumps.patch
+++ b/patches/server/0772-Detail-more-information-in-watchdog-dumps.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Detail more information in watchdog dumps
- Dump player name, player uuid, position, and world for packet handling
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
-index 23757f466da571aec35a373112dcbba0d1f46dcb..3321bb7582a3e0227fbc1d41982529c23548269b 100644
+index 580bdaa99129c8edb82b835edfa822892f1cd243..40875229e37d41b922add280e11a85cb3565e079 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -481,7 +481,14 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -77,7 +77,7 @@ index bcf53ec07b8eeec7a88fb67e6fb908362e6f51b0..acc12307f61e1e055896b68fe16654c9
});
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 9c69855874da2c18e9c80decf4244a0f50021a28..a999fece43b1b3f687061b541a975d889886db60 100644
+index e219e385df356531639cb1b4bf993dca9034aa1d..960aa86d64ce6bfc84fff06a7698490c7c32c5fa 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -962,7 +962,26 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -123,7 +123,7 @@ index 9c69855874da2c18e9c80decf4244a0f50021a28..a999fece43b1b3f687061b541a975d88
private void tickPassenger(Entity vehicle, Entity passenger) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 481e84fda6dccfaf684c922a12fa19ed35c87b3c..94857a736d2a16e8ade286c6f2ddf8bd798008eb 100644
+index 880723e59e4ca52d7b30a4dcad3b929e86128d2a..f3c5bf25c13b52b0843a45f2732a657b00e546a7 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -888,7 +888,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
diff --git a/patches/server/0774-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0773-Optimise-collision-checking-in-player-move-packet-ha.patch
index b99cdf62ed..c06a8bbd33 100644
--- a/patches/server/0774-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/0773-Optimise-collision-checking-in-player-move-packet-ha.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Optimise collision checking in player move packet handling
Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index efa7c4b1e8c2e4297f89eb62aab76c43d2947e16..5d7c47b0a302f7db95a0b2bb811c5656c6b02beb 100644
+index 2a1614a514e35c473e5497d6293c63ca70268c0d..43014e542600f4565615d33f5c1d19ec029af91d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -582,12 +582,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
diff --git a/patches/server/0775-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0774-Manually-inline-methods-in-BlockPosition.patch
index 547ad97708..547ad97708 100644
--- a/patches/server/0775-Manually-inline-methods-in-BlockPosition.patch
+++ b/patches/server/0774-Manually-inline-methods-in-BlockPosition.patch
diff --git a/patches/server/0776-Distance-manager-tick-timings.patch b/patches/server/0775-Distance-manager-tick-timings.patch
index 8825901f21..8825901f21 100644
--- a/patches/server/0776-Distance-manager-tick-timings.patch
+++ b/patches/server/0775-Distance-manager-tick-timings.patch
diff --git a/patches/server/0777-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0776-Name-craft-scheduler-threads-according-to-the-plugin.patch
index 7d081ee195..7d081ee195 100644
--- a/patches/server/0777-Name-craft-scheduler-threads-according-to-the-plugin.patch
+++ b/patches/server/0776-Name-craft-scheduler-threads-according-to-the-plugin.patch
diff --git a/patches/server/0778-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0777-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
index f395f91274..f395f91274 100644
--- a/patches/server/0778-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
+++ b/patches/server/0777-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
diff --git a/patches/server/0779-Add-packet-limiter-config.patch b/patches/server/0778-Add-packet-limiter-config.patch
index a273c156dd..ce1321cca0 100644
--- a/patches/server/0779-Add-packet-limiter-config.patch
+++ b/patches/server/0778-Add-packet-limiter-config.patch
@@ -131,7 +131,7 @@ index a72f15c10410508ff344caf3ca376fd3d7317518..5ccc86d714d5e6e40df853bb30be1166
+ }
}
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
-index 3321bb7582a3e0227fbc1d41982529c23548269b..73457ae24ba6f605dd831a870499f1a990570e53 100644
+index 40875229e37d41b922add280e11a85cb3565e079..c44b2d5d043340b12eed80d766aa17dd9e8bd5a3 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -148,6 +148,22 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
diff --git a/patches/server/0780-Lag-compensate-block-breaking.patch b/patches/server/0779-Lag-compensate-block-breaking.patch
index 18f58cddec..18f58cddec 100644
--- a/patches/server/0780-Lag-compensate-block-breaking.patch
+++ b/patches/server/0779-Lag-compensate-block-breaking.patch
diff --git a/patches/server/0781-Use-hash-table-for-maintaing-changed-block-set.patch b/patches/server/0780-Use-hash-table-for-maintaing-changed-block-set.patch
index 568e3dbe25..f7d4582c36 100644
--- a/patches/server/0781-Use-hash-table-for-maintaing-changed-block-set.patch
+++ b/patches/server/0780-Use-hash-table-for-maintaing-changed-block-set.patch
@@ -7,7 +7,7 @@ When a lot of block changes occur the iteration for checking can
add up a bit and cause a small performance impact.
diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java
-index de0c6316c9b75a2ecc7d6abf7bcca24e25de0ac0..4588ae8037407b81c99135863eb0c4e97c564c24 100644
+index 326aecc38a7f93fe0d25fb9b772d06f78f99781d..df33755f0196399a32cdbc993272e74919aa3f44 100644
--- a/src/main/java/net/minecraft/server/level/ChunkHolder.java
+++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java
@@ -41,6 +41,8 @@ import net.minecraft.world.level.lighting.LevelLightEngine;
diff --git a/patches/server/0782-Consolidate-flush-calls-for-entity-tracker-packets.patch b/patches/server/0781-Consolidate-flush-calls-for-entity-tracker-packets.patch
index 0e44c24f7b..0e44c24f7b 100644
--- a/patches/server/0782-Consolidate-flush-calls-for-entity-tracker-packets.patch
+++ b/patches/server/0781-Consolidate-flush-calls-for-entity-tracker-packets.patch
diff --git a/patches/server/0783-Don-t-lookup-fluid-state-when-raytracing.patch b/patches/server/0782-Don-t-lookup-fluid-state-when-raytracing.patch
index bf4e1f243f..bf4e1f243f 100644
--- a/patches/server/0783-Don-t-lookup-fluid-state-when-raytracing.patch
+++ b/patches/server/0782-Don-t-lookup-fluid-state-when-raytracing.patch
diff --git a/patches/server/0784-Time-scoreboard-search.patch b/patches/server/0783-Time-scoreboard-search.patch
index 48469b83af..48469b83af 100644
--- a/patches/server/0784-Time-scoreboard-search.patch
+++ b/patches/server/0783-Time-scoreboard-search.patch
diff --git a/patches/server/0785-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0784-Send-full-pos-packets-for-hard-colliding-entities.patch
index 79c80daacc..65987be51d 100644
--- a/patches/server/0785-Send-full-pos-packets-for-hard-colliding-entities.patch
+++ b/patches/server/0784-Send-full-pos-packets-for-hard-colliding-entities.patch
@@ -24,7 +24,7 @@ index cf9a72b7fe0b41e1ca68bbae2164162447405fc5..0940655792402ed29a1ec80a2a6fb2f1
+ }
}
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
-index 9950541e0432240207458274b76b1c5d402ac704..b7c9294fdd3d799d410afba4a1118aa371c98533 100644
+index 764d449aa63af88029f80918884a0c942d630113..1c6bf5a3014beaf5f9c1c38aed4cf3225e50b8bb 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -173,7 +173,7 @@ public class ServerEntity {
diff --git a/patches/server/0786-Do-not-run-raytrace-logic-for-AIR.patch b/patches/server/0785-Do-not-run-raytrace-logic-for-AIR.patch
index f8c4d1a7af..f8c4d1a7af 100644
--- a/patches/server/0786-Do-not-run-raytrace-logic-for-AIR.patch
+++ b/patches/server/0785-Do-not-run-raytrace-logic-for-AIR.patch
diff --git a/patches/server/0787-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0786-Oprimise-map-impl-for-tracked-players.patch
index 62ec327fe7..ef90de5d14 100644
--- a/patches/server/0787-Oprimise-map-impl-for-tracked-players.patch
+++ b/patches/server/0786-Oprimise-map-impl-for-tracked-players.patch
@@ -7,7 +7,7 @@ Reference2BooleanOpenHashMap is going to have
better lookups than HashMap.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 9b4d689c04c59056f0a2ec39cf26e173cb722641..87172ee94f5796a23c22c58bbb591dede2b2dc3c 100644
+index 8e0762bc1d705b7df664b6270c4d536f77572b87..dd35947f0367527682b29e07b191f47ad32e2059 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -103,6 +103,7 @@ import org.apache.logging.log4j.LogManager;
diff --git a/patches/server/0788-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0787-Optimise-BlockSoil-nearby-water-lookup.patch
index a3213ee164..a3213ee164 100644
--- a/patches/server/0788-Optimise-BlockSoil-nearby-water-lookup.patch
+++ b/patches/server/0787-Optimise-BlockSoil-nearby-water-lookup.patch
diff --git a/patches/server/0789-Allow-removal-addition-of-entities-to-entity-ticklis.patch b/patches/server/0788-Allow-removal-addition-of-entities-to-entity-ticklis.patch
index d68c8524e7..d68c8524e7 100644
--- a/patches/server/0789-Allow-removal-addition-of-entities-to-entity-ticklis.patch
+++ b/patches/server/0788-Allow-removal-addition-of-entities-to-entity-ticklis.patch
diff --git a/patches/server/0790-Optimise-random-block-ticking.patch b/patches/server/0789-Optimise-random-block-ticking.patch
index c03d323b51..c03d323b51 100644
--- a/patches/server/0790-Optimise-random-block-ticking.patch
+++ b/patches/server/0789-Optimise-random-block-ticking.patch
diff --git a/patches/server/0791-Optimise-non-flush-packet-sending.patch b/patches/server/0790-Optimise-non-flush-packet-sending.patch
index c5f1223f87..d10e49bfc4 100644
--- a/patches/server/0791-Optimise-non-flush-packet-sending.patch
+++ b/patches/server/0790-Optimise-non-flush-packet-sending.patch
@@ -20,7 +20,7 @@ up on this optimisation before he came along.
Locally this patch drops the entity tracker tick by a full 1.5x.
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
-index 300cd4d2861c7f155cc6a5bb5a0c47b0b77ff240..7c66d5d51efd3ec55f5170cf828db22e26131517 100644
+index c44b2d5d043340b12eed80d766aa17dd9e8bd5a3..8e90deafe3c2c960290dd944953f546559facc21 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -49,6 +49,8 @@ import org.apache.logging.log4j.Logger;
diff --git a/patches/server/0792-Optimise-nearby-player-lookups.patch b/patches/server/0791-Optimise-nearby-player-lookups.patch
index 7ac99c624f..84ee9e4b35 100644
--- a/patches/server/0792-Optimise-nearby-player-lookups.patch
+++ b/patches/server/0791-Optimise-nearby-player-lookups.patch
@@ -9,7 +9,7 @@ since the penalty of a map lookup could outweigh the benefits of
searching less players (as it basically did in the outside range patch).
diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java
-index 4588ae8037407b81c99135863eb0c4e97c564c24..2a33071c4b69cb7b5a7e296e8fd903e3a528b210 100644
+index df33755f0196399a32cdbc993272e74919aa3f44..aeb011cbcfa59d023a093f2d617bcdea311ab7df 100644
--- a/src/main/java/net/minecraft/server/level/ChunkHolder.java
+++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java
@@ -242,6 +242,12 @@ public class ChunkHolder {
@@ -26,7 +26,7 @@ index 4588ae8037407b81c99135863eb0c4e97c564c24..2a33071c4b69cb7b5a7e296e8fd903e3
// Paper end - optimise isOutsideOfRange
long lastAutoSaveTime; // Paper - incremental autosave
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 6522eb4b72c50be3ff7d1b094066a1cbec88634d..10d1e1f728519ad49379895c7fd3668badcbfd5a 100644
+index dd35947f0367527682b29e07b191f47ad32e2059..934e1233a65fc07554088bf775b1758dc47a5a9c 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -217,6 +217,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -114,7 +114,7 @@ index 6522eb4b72c50be3ff7d1b094066a1cbec88634d..10d1e1f728519ad49379895c7fd3668b
holder = new ChunkHolder(new ChunkPos(pos), level, this.level, this.lightEngine, this.queueSorter, this);
// Paper start
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index ed696ed93251e644c2b71e468e2556d24b273933..3afb8b91dceb86e88b848462a5b8dbd5c8365239 100644
+index 2d322cc13dabc041911991e6c8dfde4374ac76bd..89a8138e97ab6a399cfbc69cab0ecaa70bb2fe8d 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -392,6 +392,83 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -235,7 +235,7 @@ index 5f4556505d831ea45e576a4c4e10f99e1353684e..55d07e70a67e08bab3a7a66076c98098
if (entityhuman != null) {
double d0 = entityhuman.distanceToSqr((Entity) this); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 64d5e71a8a26116385cee195d86fce1ef1574a8c..f936e9f9a9fa655fa997d6862b5ed54c04169d35 100644
+index 326ce282ae333d9b3ba3a2f9904ecaf62c0734be..9cafd000b3533ed9fd35df2ec880f55e262084fb 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -247,6 +247,69 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0793-Fix-Codec-log-spam.patch b/patches/server/0792-Fix-Codec-log-spam.patch
index 56249884d3..bc66ffbb3a 100644
--- a/patches/server/0793-Fix-Codec-log-spam.patch
+++ b/patches/server/0792-Fix-Codec-log-spam.patch
@@ -14,7 +14,7 @@ This fixes two instances:
be provided for two new values (WITHOUT changing behavior).
diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java
-index c4117dcffd705d044f07eb5840a177b1b5825bb9..f80791bd383dc6dc4a9c1aac5f8e4c1561e33ad9 100644
+index 15fb4ee2066df1c8ce341913a64f350fb8b9718c..b5be0486d1cffe60808948b4b0bfd709664b2ae4 100644
--- a/src/main/java/net/minecraft/server/MCUtil.java
+++ b/src/main/java/net/minecraft/server/MCUtil.java
@@ -723,4 +723,70 @@ public final class MCUtil {
diff --git a/patches/server/0794-Optimise-WorldServer-notify.patch b/patches/server/0793-Optimise-WorldServer-notify.patch
index 8657ce3d53..79ec375a97 100644
--- a/patches/server/0794-Optimise-WorldServer-notify.patch
+++ b/patches/server/0793-Optimise-WorldServer-notify.patch
@@ -8,7 +8,7 @@ Instead, only iterate over navigators in the current region that are
eligible for repathing.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index bef7d5b4c8b99d2fbcd975127b16653e0f391338..19a853ceeded1c8803d182d035f0362abfa29933 100644
+index 934e1233a65fc07554088bf775b1758dc47a5a9c..7175d510b74e4cf81d479e6c6330bad77344d9c0 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -290,15 +290,81 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0795-Remove-streams-for-villager-AI.patch b/patches/server/0794-Remove-streams-for-villager-AI.patch
index 227d34f188..227d34f188 100644
--- a/patches/server/0795-Remove-streams-for-villager-AI.patch
+++ b/patches/server/0794-Remove-streams-for-villager-AI.patch
diff --git a/patches/server/0796-Rewrite-dataconverter-system.patch b/patches/server/0795-Rewrite-dataconverter-system.patch
index cc35e27dfc..ec61285470 100644
--- a/patches/server/0796-Rewrite-dataconverter-system.patch
+++ b/patches/server/0795-Rewrite-dataconverter-system.patch
@@ -19599,7 +19599,7 @@ index b889dbad607b6508fb4987d21d3be691a5b37072..747e2a31f055d84d4321c8241e1b6c29
nbttagcompound.putInt("DataVersion", SharedConstants.getCurrentVersion().getWorldVersion());
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
-index 0e13a1f898a793799416056bd468851013f9c5cb..916f93b097a65f95e830fe5e1567c85d304f808f 100644
+index bab6e0ac7b57a86ff36e8caf1014f1625ca976b6..1c77959518039e4b4fb2ffa8b93f5f69e8587ade 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
@@ -148,7 +148,7 @@ public class EntityStorage implements EntityPersistentStorage<Entity> {
diff --git a/patches/server/0797-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0796-Use-Velocity-compression-and-cipher-natives.patch
index 2d7569820c..85a7ec6afc 100644
--- a/patches/server/0797-Use-Velocity-compression-and-cipher-natives.patch
+++ b/patches/server/0796-Use-Velocity-compression-and-cipher-natives.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Use Velocity compression and cipher natives
diff --git a/build.gradle.kts b/build.gradle.kts
-index c7ebad49e04c36c27341cabc4a024f170d762f3f..f46f11c32560da6f4955284d93da3dd7e22555a3 100644
+index e789d52955cf9f353cf52af3a5a69bb7b54085bd..e067c69fea1dec79ef8e97cad1c74020b6a3a235 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -55,6 +55,7 @@ dependencies {
@@ -267,7 +267,7 @@ index 524c0c674f63cfcb601416a18348f37aabb4e3ff..89bf5066b83e8d79c77c90fce1f7858c
return this.threshold;
}
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
-index 0dae504f49a4a3c66a01eb03896833a010cd5821..5f43459884daea61178c3fdb913204e64f833f61 100644
+index 8e90deafe3c2c960290dd944953f546559facc21..291241502bdbb4bac666735b0d6365b612612e04 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -657,11 +657,28 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
diff --git a/patches/server/0798-Always-parse-protochunk-light-sources-unless-it-is-m.patch b/patches/server/0797-Always-parse-protochunk-light-sources-unless-it-is-m.patch
index 263c8c5693..263c8c5693 100644
--- a/patches/server/0798-Always-parse-protochunk-light-sources-unless-it-is-m.patch
+++ b/patches/server/0797-Always-parse-protochunk-light-sources-unless-it-is-m.patch
diff --git a/patches/server/0799-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch b/patches/server/0798-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch
index 5b9fbcac1f..5b9fbcac1f 100644
--- a/patches/server/0799-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch
+++ b/patches/server/0798-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch
diff --git a/patches/server/0800-Configurable-feature-seeds.patch b/patches/server/0799-Configurable-feature-seeds.patch
index 60f93a8baa..60f93a8baa 100644
--- a/patches/server/0800-Configurable-feature-seeds.patch
+++ b/patches/server/0799-Configurable-feature-seeds.patch
diff --git a/patches/server/0801-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch b/patches/server/0800-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch
index 12edb886b9..12edb886b9 100644
--- a/patches/server/0801-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch
+++ b/patches/server/0800-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch
diff --git a/patches/server/0802-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0801-Prevent-softlocked-end-exit-portal-generation.patch
index 42e617cf5f..42e617cf5f 100644
--- a/patches/server/0802-Prevent-softlocked-end-exit-portal-generation.patch
+++ b/patches/server/0801-Prevent-softlocked-end-exit-portal-generation.patch
diff --git a/patches/server/0803-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0802-Add-paper-mobcaps-and-paper-playermobcaps.patch
index b03a1ed147..b03a1ed147 100644
--- a/patches/server/0803-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0802-Add-paper-mobcaps-and-paper-playermobcaps.patch
diff --git a/patches/server/0804-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0803-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
index 2ce994e362..2ce994e362 100644
--- a/patches/server/0804-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
+++ b/patches/server/0803-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
diff --git a/patches/server/0805-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0804-Don-t-log-debug-logging-being-disabled.patch
index 6ff8025b3b..6ff8025b3b 100644
--- a/patches/server/0805-Don-t-log-debug-logging-being-disabled.patch
+++ b/patches/server/0804-Don-t-log-debug-logging-being-disabled.patch
diff --git a/patches/server/0806-Mark-fish-and-axolotls-from-buckets-as-persistent.patch b/patches/server/0805-Mark-fish-and-axolotls-from-buckets-as-persistent.patch
index ee3bb34c33..ee3bb34c33 100644
--- a/patches/server/0806-Mark-fish-and-axolotls-from-buckets-as-persistent.patch
+++ b/patches/server/0805-Mark-fish-and-axolotls-from-buckets-as-persistent.patch
diff --git a/patches/server/0807-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0806-fix-various-menus-with-empty-level-accesses.patch
index 3bda24b9c6..3bda24b9c6 100644
--- a/patches/server/0807-fix-various-menus-with-empty-level-accesses.patch
+++ b/patches/server/0806-fix-various-menus-with-empty-level-accesses.patch
diff --git a/patches/server/0808-Ensure-valid-vehicle-status.patch b/patches/server/0807-Ensure-valid-vehicle-status.patch
index cb45c347b6..9160635028 100644
--- a/patches/server/0808-Ensure-valid-vehicle-status.patch
+++ b/patches/server/0807-Ensure-valid-vehicle-status.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 4dfd185e47849c18c552e28370d93b48799d2eb9..11f46c1b8f4c8414e0667d1873542c17d6e01f2a 100644
+index 6614954dd30efdd6a53d561fcb3cbfba8b168805..78fda0c982810b8b881a87099f355247566e513a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -509,7 +509,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0809-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0808-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
index 788db2c022..788db2c022 100644
--- a/patches/server/0809-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
+++ b/patches/server/0808-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
diff --git a/patches/server/0810-More-CommmandBlock-API.patch b/patches/server/0809-More-CommmandBlock-API.patch
index f7ef8c10d6..f7ef8c10d6 100644
--- a/patches/server/0810-More-CommmandBlock-API.patch
+++ b/patches/server/0809-More-CommmandBlock-API.patch
diff --git a/patches/server/0811-Preserve-overstacked-loot.patch b/patches/server/0810-Preserve-overstacked-loot.patch
index e5cd46277b..e5cd46277b 100644
--- a/patches/server/0811-Preserve-overstacked-loot.patch
+++ b/patches/server/0810-Preserve-overstacked-loot.patch
diff --git a/patches/server/0812-Update-head-rotation-in-missing-places.patch b/patches/server/0811-Update-head-rotation-in-missing-places.patch
index dfc0762eca..bf89fad1ef 100644
--- a/patches/server/0812-Update-head-rotation-in-missing-places.patch
+++ b/patches/server/0811-Update-head-rotation-in-missing-places.patch
@@ -8,7 +8,7 @@ This is because bukkit uses a separate head rotation field for yaw.
This issue only applies to players.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 94857a736d2a16e8ade286c6f2ddf8bd798008eb..4f164f238177b5e2b18c76b7cc14596ec93409d1 100644
+index f3c5bf25c13b52b0843a45f2732a657b00e546a7..9fa01acbe1373a0975bd0c8a02f9b8317c2d0780 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1742,6 +1742,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
diff --git a/patches/server/0813-prevent-unintended-light-block-manipulation.patch b/patches/server/0812-prevent-unintended-light-block-manipulation.patch
index ba7dcc0e94..ba7dcc0e94 100644
--- a/patches/server/0813-prevent-unintended-light-block-manipulation.patch
+++ b/patches/server/0812-prevent-unintended-light-block-manipulation.patch
diff --git a/patches/server/0814-Add-missing-team-sidebar-display-slots.patch b/patches/server/0813-Add-missing-team-sidebar-display-slots.patch
index 5581728a48..5581728a48 100644
--- a/patches/server/0814-Add-missing-team-sidebar-display-slots.patch
+++ b/patches/server/0813-Add-missing-team-sidebar-display-slots.patch
diff --git a/patches/server/0815-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch b/patches/server/0814-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch
index 351633a78e..0f7e0584d7 100644
--- a/patches/server/0815-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch
+++ b/patches/server/0814-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Dont count named piglins and hoglins towards mob cap
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index 0b228b8bcae5ed2840ab244b6de35732f737504d..f316585ccf6baf5e7e514ba3a68b4344e781a82d 100644
+index 790999fea74e4d03a80a4c0c9665af87bd683577..d63d89960839b506e240349043ab77c4d81ca71a 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -83,7 +83,7 @@ public final class NaturalSpawner {
diff --git a/patches/server/0816-Fix-CraftCriteria-defaults-map.patch b/patches/server/0815-Fix-CraftCriteria-defaults-map.patch
index 11fce3ca24..11fce3ca24 100644
--- a/patches/server/0816-Fix-CraftCriteria-defaults-map.patch
+++ b/patches/server/0815-Fix-CraftCriteria-defaults-map.patch
diff --git a/patches/server/0817-Add-back-EntityPortalExitEvent.patch b/patches/server/0816-Add-back-EntityPortalExitEvent.patch
index 36ceb88a14..614e6009fd 100644
--- a/patches/server/0817-Add-back-EntityPortalExitEvent.patch
+++ b/patches/server/0816-Add-back-EntityPortalExitEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4f164f238177b5e2b18c76b7cc14596ec93409d1..e17bda0d13bae337cfad5ae31b118aa7a85499fc 100644
+index 9fa01acbe1373a0975bd0c8a02f9b8317c2d0780..a19ec0026d9a4ce26a0fc1eb9a55841712c7102f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3181,6 +3181,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
diff --git a/patches/server/0818-Fix-upstreams-block-state-factories.patch b/patches/server/0817-Fix-upstreams-block-state-factories.patch
index 3a4d1c9bc6..3a4d1c9bc6 100644
--- a/patches/server/0818-Fix-upstreams-block-state-factories.patch
+++ b/patches/server/0817-Fix-upstreams-block-state-factories.patch
diff --git a/patches/server/0819-Add-config-option-for-logging-player-ip-addresses.patch b/patches/server/0818-Add-config-option-for-logging-player-ip-addresses.patch
index e4c7591bd0..6222e5e1ff 100644
--- a/patches/server/0819-Add-config-option-for-logging-player-ip-addresses.patch
+++ b/patches/server/0818-Add-config-option-for-logging-player-ip-addresses.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add config option for logging player ip addresses
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
-index b3f4ac2ce6f515e406d2f31b1d2429729c9e2b60..0277627e97b51e20470ccf578cee48470e06a34b 100644
+index 0940655792402ed29a1ec80a2a6fb2f100de4659..2509a170b8ddd812ad5be49e5345ec5a3c0cf2b8 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -489,6 +489,11 @@ public class PaperConfig {
diff --git a/patches/server/0820-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0819-Add-methods-to-find-targets-for-lightning-strikes.patch
index 37fb358660..52146a7f66 100644
--- a/patches/server/0820-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/server/0819-Add-methods-to-find-targets-for-lightning-strikes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 08c6ea9f19fa9218af089ed3bd2dcda1e83591ed..710a1064cec9c7ec93e1258b0786e74ab9af0c12 100644
+index c01b5611fe6946a24fe21eac6a80e3ddadf9f3c1..536c53fd1d009b86d2c1c3ca2364f458448bc38c 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -956,6 +956,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
diff --git a/patches/server/0821-VanillaCommandWrapper-didnt-account-for-entity-sende.patch b/patches/server/0820-VanillaCommandWrapper-didnt-account-for-entity-sende.patch
index 6e33709dbe..6e33709dbe 100644
--- a/patches/server/0821-VanillaCommandWrapper-didnt-account-for-entity-sende.patch
+++ b/patches/server/0820-VanillaCommandWrapper-didnt-account-for-entity-sende.patch
diff --git a/patches/server/0822-Add-root-admin-user-detection.patch b/patches/server/0821-Add-root-admin-user-detection.patch
index 053e03ef52..053e03ef52 100644
--- a/patches/server/0822-Add-root-admin-user-detection.patch
+++ b/patches/server/0821-Add-root-admin-user-detection.patch
diff --git a/patches/server/0823-Always-allow-item-changing-in-Fireball.patch b/patches/server/0822-Always-allow-item-changing-in-Fireball.patch
index 1bb4c5dd5b..1bb4c5dd5b 100644
--- a/patches/server/0823-Always-allow-item-changing-in-Fireball.patch
+++ b/patches/server/0822-Always-allow-item-changing-in-Fireball.patch
diff --git a/patches/server/0824-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0823-Fix-merchant-inventory-not-closing-on-entity-removal.patch
index 136d0c2f97..136d0c2f97 100644
--- a/patches/server/0824-Fix-merchant-inventory-not-closing-on-entity-removal.patch
+++ b/patches/server/0823-Fix-merchant-inventory-not-closing-on-entity-removal.patch
diff --git a/patches/server/0825-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch b/patches/server/0824-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch
index ab7e4fb93f..36f906c6da 100644
--- a/patches/server/0825-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch
+++ b/patches/server/0824-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch
@@ -12,7 +12,7 @@ time to save, as flush saving performs a full flush at
the end anyways.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 4b1797659f6bb5913b105641ecaac38954ce8bc0..65090afbb510231c05db3132ba416502d188f1c0 100644
+index 7175d510b74e4cf81d479e6c6330bad77344d9c0..7bb12a30d8b4a817f5a85969c6200306fd45a43d 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -950,6 +950,16 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0826-Use-correct-LevelStem-registry-when-loading-default-.patch b/patches/server/0825-Use-correct-LevelStem-registry-when-loading-default-.patch
index 1fdfe05599..1fdfe05599 100644
--- a/patches/server/0826-Use-correct-LevelStem-registry-when-loading-default-.patch
+++ b/patches/server/0825-Use-correct-LevelStem-registry-when-loading-default-.patch
diff --git a/patches/server/0827-Get-entity-default-attributes.patch b/patches/server/0826-Get-entity-default-attributes.patch
index 98147486b9..98147486b9 100644
--- a/patches/server/0827-Get-entity-default-attributes.patch
+++ b/patches/server/0826-Get-entity-default-attributes.patch
diff --git a/patches/server/0828-Left-handed-API.patch b/patches/server/0827-Left-handed-API.patch
index 099fa6769c..099fa6769c 100644
--- a/patches/server/0828-Left-handed-API.patch
+++ b/patches/server/0827-Left-handed-API.patch
diff --git a/patches/server/0829-Add-advancement-display-API.patch b/patches/server/0828-Add-advancement-display-API.patch
index 844b192d18..844b192d18 100644
--- a/patches/server/0829-Add-advancement-display-API.patch
+++ b/patches/server/0828-Add-advancement-display-API.patch
diff --git a/patches/server/0830-Add-ItemFactory-getMonsterEgg-API.patch b/patches/server/0829-Add-ItemFactory-getMonsterEgg-API.patch
index a7a82e297a..a7a82e297a 100644
--- a/patches/server/0830-Add-ItemFactory-getMonsterEgg-API.patch
+++ b/patches/server/0829-Add-ItemFactory-getMonsterEgg-API.patch
diff --git a/patches/server/0831-Add-critical-damage-API.patch b/patches/server/0830-Add-critical-damage-API.patch
index 549054d680..24e67d23bf 100644
--- a/patches/server/0831-Add-critical-damage-API.patch
+++ b/patches/server/0830-Add-critical-damage-API.patch
@@ -29,7 +29,7 @@ index 80d19af2ad423bd3de0e039c5bb8f97af536aaa9..a828cad27fcd39f8bfbaefa97052a2a3
public static DamageSource sting(LivingEntity attacker) {
return new EntityDamageSource("sting", attacker);
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 1018f4640bab5876c5e0afb5b88f71437fb79662..cbdff14b26f67b5040c13659f9d64d9ec4c7eaed 100644
+index fa904d0477fabc20ce9830d85c840426b94950ac..465dab588e770bf4d1e645e1f451a066f388014a 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2571,15 +2571,27 @@ public abstract class LivingEntity extends Entity {
@@ -105,7 +105,7 @@ index 6636845ea044c3810e1880aad8b679134cd33668..52e4948fd1657fa1776ac6b0142e8c21
int k = entity.getRemainingFireTicks();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 2b2654ec04e8abca9db09d6257edf11099bb0d9b..c0b46ff81994e037e734b75afadcce372c2ddd7f 100644
+index 5013a93f9bdc6d2c52239ca0434c7aa40f0572e1..aaf47d3f58819ead3553973c159c5c6eec4abe43 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -964,7 +964,7 @@ public class CraftEventFactory {
diff --git a/patches/server/0832-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0831-Check-requirement-before-suggesting-root-nodes.patch
index da19d3f1ca..da19d3f1ca 100644
--- a/patches/server/0832-Check-requirement-before-suggesting-root-nodes.patch
+++ b/patches/server/0831-Check-requirement-before-suggesting-root-nodes.patch
diff --git a/patches/server/0833-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0832-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
index 4fc21d4b21..ca90f94119 100644
--- a/patches/server/0833-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
+++ b/patches/server/0832-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 71b4d5f7bbccf56cb519333ad2751d6a953f2c68..029c21d9416520469548293f9a2ec0c056507d05 100644
+index 43014e542600f4565615d33f5c1d19ec029af91d..621ec8e8a197323da6b423fee57c816ac9d7c875 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -796,6 +796,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
diff --git a/patches/server/0834-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0833-don-t-attempt-to-teleport-dead-entities.patch
index 8b1157986f..03ab5f6515 100644
--- a/patches/server/0834-don-t-attempt-to-teleport-dead-entities.patch
+++ b/patches/server/0833-don-t-attempt-to-teleport-dead-entities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index e17bda0d13bae337cfad5ae31b118aa7a85499fc..2ce32495758abf64eeeeeea1cdbf4904be77b697 100644
+index a19ec0026d9a4ce26a0fc1eb9a55841712c7102f..61cbe87c1fe43b6ce22bf9008986f730af3067da 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -702,7 +702,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
diff --git a/patches/server/0835-Async-catch-modifications-to-critical-entity-state.patch b/patches/server/0834-Async-catch-modifications-to-critical-entity-state.patch
index 48b3a5b713..48b3a5b713 100644
--- a/patches/server/0835-Async-catch-modifications-to-critical-entity-state.patch
+++ b/patches/server/0834-Async-catch-modifications-to-critical-entity-state.patch
diff --git a/patches/server/0836-Cache-palette-array.patch b/patches/server/0835-Cache-palette-array.patch
index 2c787bbbc6..2c787bbbc6 100644
--- a/patches/server/0836-Cache-palette-array.patch
+++ b/patches/server/0835-Cache-palette-array.patch
diff --git a/patches/server/0837-Fix-Bukkit-NamespacedKey-shenanigans.patch b/patches/server/0836-Fix-Bukkit-NamespacedKey-shenanigans.patch
index 8f152dd0e7..8f152dd0e7 100644
--- a/patches/server/0837-Fix-Bukkit-NamespacedKey-shenanigans.patch
+++ b/patches/server/0836-Fix-Bukkit-NamespacedKey-shenanigans.patch
diff --git a/patches/server/0838-Fix-issues-with-mob-conversion.patch b/patches/server/0837-Fix-issues-with-mob-conversion.patch
index ce962e6de7..ce962e6de7 100644
--- a/patches/server/0838-Fix-issues-with-mob-conversion.patch
+++ b/patches/server/0837-Fix-issues-with-mob-conversion.patch
diff --git a/patches/server/0839-Add-isCollidable-methods-to-various-places.patch b/patches/server/0838-Add-isCollidable-methods-to-various-places.patch
index 84c0379606..84c0379606 100644
--- a/patches/server/0839-Add-isCollidable-methods-to-various-places.patch
+++ b/patches/server/0838-Add-isCollidable-methods-to-various-places.patch
diff --git a/patches/server/0840-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0839-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
index 31e987614a..31e987614a 100644
--- a/patches/server/0840-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
+++ b/patches/server/0839-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
diff --git a/patches/server/0841-Goat-ram-API.patch b/patches/server/0840-Goat-ram-API.patch
index 8491164ccb..8491164ccb 100644
--- a/patches/server/0841-Goat-ram-API.patch
+++ b/patches/server/0840-Goat-ram-API.patch
diff --git a/patches/server/0842-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0841-Add-Raw-Byte-Entity-Serialization.patch
index f600a0f9f3..4452b44970 100644
--- a/patches/server/0842-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/server/0841-Add-Raw-Byte-Entity-Serialization.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 996f09eaf7d1d6c5e27e2bb2630a6bcb18854172..6d2cc9d1813c862dfd23cb6897d4f4f4845af529 100644
+index 61cbe87c1fe43b6ce22bf9008986f730af3067da..b7c4700fd5db14c77e7ee78311dd77a754d9d41c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2008,6 +2008,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
diff --git a/patches/server/0843-Call-onRemove-logic-for-breakNaturally.patch b/patches/server/0842-Call-onRemove-logic-for-breakNaturally.patch
index 4db123eba9..4db123eba9 100644
--- a/patches/server/0843-Call-onRemove-logic-for-breakNaturally.patch
+++ b/patches/server/0842-Call-onRemove-logic-for-breakNaturally.patch
diff --git a/patches/server/0844-Add-API-for-resetting-a-single-score.patch b/patches/server/0843-Add-API-for-resetting-a-single-score.patch
index c2e1fd93b9..c2e1fd93b9 100644
--- a/patches/server/0844-Add-API-for-resetting-a-single-score.patch
+++ b/patches/server/0843-Add-API-for-resetting-a-single-score.patch
diff --git a/patches/server/0845-Fix-anvil-prepare-event-not-working-with-zero-xp.patch b/patches/server/0844-Fix-anvil-prepare-event-not-working-with-zero-xp.patch
index 1ee105facf..1ee105facf 100644
--- a/patches/server/0845-Fix-anvil-prepare-event-not-working-with-zero-xp.patch
+++ b/patches/server/0844-Fix-anvil-prepare-event-not-working-with-zero-xp.patch
diff --git a/patches/server/0846-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0845-Prevent-ContainerOpenersCounter-openCount-from-going.patch
index 879289cfe2..879289cfe2 100644
--- a/patches/server/0846-Prevent-ContainerOpenersCounter-openCount-from-going.patch
+++ b/patches/server/0845-Prevent-ContainerOpenersCounter-openCount-from-going.patch
diff --git a/patches/server/0846-Update-Log4J.patch b/patches/server/0846-Update-Log4J.patch
new file mode 100644
index 0000000000..2e724f4774
--- /dev/null
+++ b/patches/server/0846-Update-Log4J.patch
@@ -0,0 +1,27 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: darbyjack <[email protected]>
+Date: Thu, 9 Dec 2021 21:05:20 -0600
+Subject: [PATCH] Update Log4J
+
+
+diff --git a/build.gradle.kts b/build.gradle.kts
+index e067c69fea1dec79ef8e97cad1c74020b6a3a235..f442236efe30d7d9e0c6a8dfb0f040540dc62753 100644
+--- a/build.gradle.kts
++++ b/build.gradle.kts
+@@ -33,11 +33,12 @@ dependencies {
+ all its classes to check if they are plugins.
+ Scanning takes about 1-2 seconds so adding this speeds up the server start.
+ */
+- implementation("org.apache.logging.log4j:log4j-core:2.14.1") // Paper - implementation
+- annotationProcessor("org.apache.logging.log4j:log4j-core:2.14.1") // Paper - Needed to generate meta for out hex color converter plugin
++ implementation("org.apache.logging.log4j:log4j-core:2.15.0") // Paper - implementation
++ annotationProcessor("org.apache.logging.log4j:log4j-core:2.15.0") // Paper - Needed to generate meta for out hex color converter plugin
+ // Paper end
+- implementation("org.apache.logging.log4j:log4j-iostreams:2.14.1") // Paper
+- implementation("org.apache.logging.log4j:log4j-api:2.14.1") // Paper
++ implementation("org.apache.logging.log4j:log4j-iostreams:2.15.0") // Paper
++ implementation("org.apache.logging.log4j:log4j-slf4j18-impl:2.15.0") // Paper
++ implementation("org.apache.logging.log4j:log4j-api:2.15.0") // Paper
+ implementation("org.ow2.asm:asm:9.2")
+ implementation("org.ow2.asm:asm-commons:9.2") // Paper - ASM event executor generation
+ implementation("com.googlecode.json-simple:json-simple:1.1.1") {
diff --git a/patches/server/0847-Backport-log4j-2.15.0-bugfix.patch b/patches/server/0847-Backport-log4j-2.15.0-bugfix.patch
deleted file mode 100644
index 06ee675021..0000000000
--- a/patches/server/0847-Backport-log4j-2.15.0-bugfix.patch
+++ /dev/null
@@ -1,384 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ralph Goers <[email protected]>
-Date: Sat, 4 Dec 2021 21:03:32 -0700
-Subject: [PATCH] Backport log4j 2.15.0 bugfix
-
-
-diff --git a/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java b/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java
-index ddac6663a164ce362773cab3257e867a418a17a0..2c6f065299431099e0066d9ad74421ecac1daa44 100644
---- a/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java
-+++ b/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java
-@@ -21,8 +21,6 @@ import java.io.Serializable;
- import java.util.Properties;
- import java.util.concurrent.TimeUnit;
-
--import javax.jms.JMSException;
--
- import org.apache.logging.log4j.core.Appender;
- import org.apache.logging.log4j.core.Filter;
- import org.apache.logging.log4j.core.Layout;
-@@ -88,6 +86,15 @@ public class JmsAppender extends AbstractAppender {
- @PluginBuilderAttribute
- private boolean immediateFail;
-
-+ @PluginBuilderAttribute
-+ private String allowedLdapClasses;
-+
-+ @PluginBuilderAttribute
-+ private String allowedLdapHosts;
-+
-+ @PluginBuilderAttribute
-+ private String allowedJndiProtocols;
-+
- // Programmatic access only for now.
- private JmsManager jmsManager;
-
-@@ -100,8 +107,21 @@ public class JmsAppender extends AbstractAppender {
- JmsManager actualJmsManager = jmsManager;
- JmsManagerConfiguration configuration = null;
- if (actualJmsManager == null) {
-+ Properties additionalProperties = null;
-+ if (allowedLdapClasses != null || allowedLdapHosts != null) {
-+ additionalProperties = new Properties();
-+ if (allowedLdapHosts != null) {
-+ additionalProperties.put(JndiManager.ALLOWED_HOSTS, allowedLdapHosts);
-+ }
-+ if (allowedLdapClasses != null) {
-+ additionalProperties.put(JndiManager.ALLOWED_CLASSES, allowedLdapClasses);
-+ }
-+ if (allowedJndiProtocols != null) {
-+ additionalProperties.put(JndiManager.ALLOWED_PROTOCOLS, allowedJndiProtocols);
-+ }
-+ }
- final Properties jndiProperties = JndiManager.createProperties(factoryName, providerUrl, urlPkgPrefixes,
-- securityPrincipalName, securityCredentials, null);
-+ securityPrincipalName, securityCredentials, additionalProperties);
- configuration = new JmsManagerConfiguration(jndiProperties, factoryBindingName, destinationBindingName,
- userName, password, false, reconnectIntervalMillis);
- actualJmsManager = AbstractManager.getManager(getName(), JmsManager.FACTORY, configuration);
-@@ -115,13 +135,13 @@ public class JmsAppender extends AbstractAppender {
- LOGGER.error("No layout provided for JmsAppender");
- return null;
- }
-- try {
-+ //try {
- return new JmsAppender(getName(), getFilter(), layout, isIgnoreExceptions(), getPropertyArray(),
- actualJmsManager);
-- } catch (final JMSException e) {
-+ /*} catch (final JMSException e) {
- // Never happens since the ctor no longer actually throws a JMSException.
- throw new IllegalStateException(e);
-- }
-+ }*/
- }
-
- public Builder setDestinationBindingName(final String destinationBindingName) {
-@@ -202,6 +222,21 @@ public class JmsAppender extends AbstractAppender {
- return this;
- }
-
-+ public Builder setAllowedLdapClasses(final String allowedLdapClasses) {
-+ this.allowedLdapClasses = allowedLdapClasses;
-+ return this;
-+ }
-+
-+ public Builder setAllowedLdapHosts(final String allowedLdapHosts) {
-+ this.allowedLdapHosts = allowedLdapHosts;
-+ return this;
-+ }
-+
-+ public Builder setAllowedJndiProtocols(final String allowedJndiProtocols) {
-+ this.allowedJndiProtocols = allowedJndiProtocols;
-+ return this;
-+ }
-+
- /**
- * Does not include the password.
- */
-@@ -212,7 +247,8 @@ public class JmsAppender extends AbstractAppender {
- + ", securityCredentials=" + securityCredentials + ", factoryBindingName=" + factoryBindingName
- + ", destinationBindingName=" + destinationBindingName + ", username=" + userName + ", layout="
- + getLayout() + ", filter=" + getFilter() + ", ignoreExceptions=" + isIgnoreExceptions()
-- + ", jmsManager=" + jmsManager + "]";
-+ + ", jmsManager=" + jmsManager + ", allowedLdapClasses=" + allowedLdapClasses
-+ + ", allowedLdapHosts=" + allowedLdapHosts + ", allowedJndiProtocols=" + allowedJndiProtocols + "]";
- }
-
- }
-@@ -224,24 +260,15 @@ public class JmsAppender extends AbstractAppender {
-
- private volatile JmsManager manager;
-
-- /**
-- *
-- * @throws JMSException not thrown as of 2.9 but retained in the signature for compatibility, will be removed in 3.0
-- */
- protected JmsAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout,
-- final boolean ignoreExceptions, final Property[] properties, final JmsManager manager) throws JMSException {
-+ final boolean ignoreExceptions, final Property[] properties, final JmsManager manager) /*throws JMSException*/ {
- super(name, filter, layout, ignoreExceptions, properties);
- this.manager = manager;
- }
-
-- /**
-- *
-- * @throws JMSException not thrown as of 2.9 but retained in the signature for compatibility, will be removed in 3.0
-- * @deprecated
-- */
- @Deprecated
- protected JmsAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout,
-- final boolean ignoreExceptions, final JmsManager manager) throws JMSException {
-+ final boolean ignoreExceptions, final JmsManager manager) /*throws JMSException*/ {
- super(name, filter, layout, ignoreExceptions, Property.EMPTY_ARRAY);
- this.manager = manager;
- }
-diff --git a/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java b/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
-index 267085788482dbc8f8252b8a4fc42259d3de45e4..2d7604fee68c27f644e1c2915f09758ee7c15cb8 100644
---- a/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
-+++ b/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
-@@ -17,31 +17,69 @@
-
- package org.apache.logging.log4j.core.net;
-
-+import java.net.URI;
-+import java.net.URISyntaxException;
-+import java.util.ArrayList;
-+import java.util.Arrays;
-+import java.util.HashMap;
-+import java.util.List;
-+import java.util.Locale;
-+import java.util.Map;
- import java.util.Properties;
- import java.util.concurrent.TimeUnit;
-
- import javax.naming.Context;
--import javax.naming.InitialContext;
-+import javax.naming.NamingEnumeration;
- import javax.naming.NamingException;
-+import javax.naming.directory.Attribute;
-+import javax.naming.directory.Attributes;
-+import javax.naming.directory.DirContext;
-+import javax.naming.directory.InitialDirContext;
-
- import org.apache.logging.log4j.core.appender.AbstractManager;
- import org.apache.logging.log4j.core.appender.ManagerFactory;
- import org.apache.logging.log4j.core.util.JndiCloser;
-+import org.apache.logging.log4j.core.util.NetUtils;
-+import org.apache.logging.log4j.util.PropertiesUtil;
-
- /**
-- * Manages a JNDI {@link javax.naming.Context}.
-+ * Manages a JNDI {@link javax.naming.directory.DirContext}.
- *
- * @since 2.1
- */
- public class JndiManager extends AbstractManager {
-
-+ public static final String ALLOWED_HOSTS = "allowedLdapHosts";
-+ public static final String ALLOWED_CLASSES = "allowedLdapClasses";
-+ public static final String ALLOWED_PROTOCOLS = "allowedJndiProtocols";
-+
- private static final JndiManagerFactory FACTORY = new JndiManagerFactory();
-+ private static final String PREFIX = "log4j2.";
-+ private static final String LDAP = "ldap";
-+ private static final String LDAPS = "ldaps";
-+ private static final String JAVA = "java";
-+ private static final List<String> permanentAllowedHosts = NetUtils.getLocalIps();
-+ private static final List<String> permanentAllowedClasses = Arrays.asList(Boolean.class.getName(),
-+ Byte.class.getName(), Character.class.getName(), Double.class.getName(), Float.class.getName(),
-+ Integer.class.getName(), Long.class.getName(), Short.class.getName(), String.class.getName());
-+ private static final List<String> permanentAllowedProtocols = Arrays.asList(JAVA, LDAP, LDAPS);
-+ private static final String SERIALIZED_DATA = "javaSerializedData";
-+ private static final String CLASS_NAME = "javaClassName";
-+ private static final String REFERENCE_ADDRESS = "javaReferenceAddress";
-+ private static final String OBJECT_FACTORY = "javaFactory";
-+ private final List<String> allowedHosts;
-+ private final List<String> allowedClasses;
-+ private final List<String> allowedProtocols;
-
-- private final Context context;
-+ private final DirContext context;
-
-- private JndiManager(final String name, final Context context) {
-+ private JndiManager(final String name, final DirContext context, final List<String> allowedHosts,
-+ final List<String> allowedClasses, final List<String> allowedProtocols) {
- super(null, name);
- this.context = context;
-+ this.allowedHosts = allowedHosts;
-+ this.allowedClasses = allowedClasses;
-+ this.allowedProtocols = allowedProtocols;
- }
-
- /**
-@@ -168,7 +206,54 @@ public class JndiManager extends AbstractManager {
- * @throws NamingException if a naming exception is encountered
- */
- @SuppressWarnings("unchecked")
-- public <T> T lookup(final String name) throws NamingException {
-+ public synchronized <T> T lookup(final String name) throws NamingException {
-+ try {
-+ URI uri = new URI(name);
-+ if (uri.getScheme() != null) {
-+ if (!allowedProtocols.contains(uri.getScheme().toLowerCase(Locale.ROOT))) {
-+ LOGGER.warn("Log4j JNDI does not allow protocol {}", uri.getScheme());
-+ return null;
-+ }
-+ if (LDAP.equalsIgnoreCase(uri.getScheme()) || LDAPS.equalsIgnoreCase(uri.getScheme())) {
-+ if (!allowedHosts.contains(uri.getHost())) {
-+ LOGGER.warn("Attempt to access ldap server not in allowed list");
-+ return null;
-+ }
-+ Attributes attributes = this.context.getAttributes(name);
-+ if (attributes != null) {
-+ // In testing the "key" for attributes seems to be lowercase while the attribute id is
-+ // camelcase, but that may just be true for the test LDAP used here. This copies the Attributes
-+ // to a Map ignoring the "key" and using the Attribute's id as the key in the Map so it matches
-+ // the Java schema.
-+ Map<String, Attribute> attributeMap = new HashMap<>();
-+ NamingEnumeration<? extends Attribute> enumeration = attributes.getAll();
-+ while (enumeration.hasMore()) {
-+ Attribute attribute = enumeration.next();
-+ attributeMap.put(attribute.getID(), attribute);
-+ }
-+ Attribute classNameAttr = attributeMap.get(CLASS_NAME);
-+ if (attributeMap.get(SERIALIZED_DATA) != null) {
-+ if (classNameAttr != null) {
-+ String className = classNameAttr.get().toString();
-+ if (!allowedClasses.contains(className)) {
-+ LOGGER.warn("Deserialization of {} is not allowed", className);
-+ return null;
-+ }
-+ } else {
-+ LOGGER.warn("No class name provided for {}", name);
-+ return null;
-+ }
-+ } else if (attributeMap.get(REFERENCE_ADDRESS) != null
-+ || attributeMap.get(OBJECT_FACTORY) != null) {
-+ LOGGER.warn("Referenceable class is not allowed for {}", name);
-+ return null;
-+ }
-+ }
-+ }
-+ }
-+ } catch (URISyntaxException ex) {
-+ // This is OK.
-+ }
- return (T) this.context.lookup(name);
- }
-
-@@ -176,13 +261,36 @@ public class JndiManager extends AbstractManager {
-
- @Override
- public JndiManager createManager(final String name, final Properties data) {
-+ String hosts = data != null ? data.getProperty(ALLOWED_HOSTS) : null;
-+ String classes = data != null ? data.getProperty(ALLOWED_CLASSES) : null;
-+ String protocols = data != null ? data.getProperty(ALLOWED_PROTOCOLS) : null;
-+ List<String> allowedHosts = new ArrayList<>();
-+ List<String> allowedClasses = new ArrayList<>();
-+ List<String> allowedProtocols = new ArrayList<>();
-+ addAll(hosts, allowedHosts, permanentAllowedHosts, ALLOWED_HOSTS, data);
-+ addAll(classes, allowedClasses, permanentAllowedClasses, ALLOWED_CLASSES, data);
-+ addAll(protocols, allowedProtocols, permanentAllowedProtocols, ALLOWED_PROTOCOLS, data);
- try {
-- return new JndiManager(name, new InitialContext(data));
-+ return new JndiManager(name, new InitialDirContext(data), allowedHosts, allowedClasses,
-+ allowedProtocols);
- } catch (final NamingException e) {
- LOGGER.error("Error creating JNDI InitialContext.", e);
- return null;
- }
- }
-+
-+ private void addAll(String toSplit, List<String> list, List<String> permanentList, String propertyName,
-+ Properties data) {
-+ if (toSplit != null) {
-+ list.addAll(Arrays.asList(toSplit.split("\\s*,\\s*")));
-+ data.remove(propertyName);
-+ }
-+ toSplit = PropertiesUtil.getProperties().getStringProperty(PREFIX + propertyName);
-+ if (toSplit != null) {
-+ list.addAll(Arrays.asList(toSplit.split("\\s*,\\s*")));
-+ }
-+ list.addAll(permanentList);
-+ }
- }
-
- @Override
-diff --git a/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java b/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
-index 8a8353e7f907a009cba6664652ab69f25d12201c..661f74f90b1a731f5be76eca6b61b6cec33e2439 100644
---- a/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
-+++ b/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
-@@ -17,6 +17,8 @@
- package org.apache.logging.log4j.core.util;
-
- import java.io.File;
-+import java.net.Inet4Address;
-+import java.net.Inet6Address;
- import java.net.InetAddress;
- import java.net.MalformedURLException;
- import java.net.NetworkInterface;
-@@ -25,11 +27,14 @@ import java.net.URI;
- import java.net.URISyntaxException;
- import java.net.URL;
- import java.net.UnknownHostException;
-+import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Enumeration;
-+import java.util.List;
-
- import org.apache.logging.log4j.Logger;
- import org.apache.logging.log4j.status.StatusLogger;
-+import org.apache.logging.log4j.util.Strings;
-
- /**
- * Networking-related convenience methods.
-@@ -79,6 +84,49 @@ public final class NetUtils {
- }
- }
-
-+ /**
-+ * Returns all the local host names and ip addresses.
-+ * @return The local host names and ip addresses.
-+ */
-+ public static List<String> getLocalIps() {
-+ List<String> localIps = new ArrayList<>();
-+ localIps.add("localhost");
-+ localIps.add("127.0.0.1");
-+ try {
-+ final InetAddress addr = Inet4Address.getLocalHost();
-+ setHostName(addr, localIps);
-+ } catch (final UnknownHostException ex) {
-+ // Ignore this.
-+ }
-+ try {
-+ final Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
-+ if (interfaces != null) {
-+ while (interfaces.hasMoreElements()) {
-+ final NetworkInterface nic = interfaces.nextElement();
-+ final Enumeration<InetAddress> addresses = nic.getInetAddresses();
-+ while (addresses.hasMoreElements()) {
-+ final InetAddress address = addresses.nextElement();
-+ setHostName(address, localIps);
-+ }
-+ }
-+ }
-+ } catch (final SocketException se) {
-+ // ignore.
-+ }
-+ return localIps;
-+ }
-+
-+ private static void setHostName(InetAddress address, List<String> localIps) {
-+ String[] parts = address.toString().split("\\s*/\\s*");
-+ if (parts.length > 0) {
-+ for (String part : parts) {
-+ if (Strings.isNotBlank(part) && !localIps.contains(part)) {
-+ localIps.add(part);
-+ }
-+ }
-+ }
-+ }
-+
- /**
- * Returns the local network interface's MAC address if possible. The local network interface is defined here as
- * the {@link java.net.NetworkInterface} that is both up and not a loopback interface.