aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBjarne Koll <[email protected]>2024-10-25 12:30:19 +0200
committerBjarne Koll <[email protected]>2024-10-25 13:13:43 +0200
commitb06e0b0317fcb28084239d27218fc569e829f12a (patch)
treecc88109344642d73a72d6029f55136286e297a20
parentafbb0d88dd4d9794654e4dc994f5a5891dfba590 (diff)
downloadPaper-b06e0b0317fcb28084239d27218fc569e829f12a.tar.gz
Paper-b06e0b0317fcb28084239d27218fc569e829f12a.zip
Work on compile errors
-rw-r--r--patches/server/0002-Remap-fixes.patch13
-rw-r--r--patches/server/0009-MC-Utils.patch4
-rw-r--r--patches/server/0023-Timings-v2.patch16
-rw-r--r--patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch4
-rw-r--r--patches/server/0244-Prevent-various-interactions-from-causing-chunk-load.patch4
-rw-r--r--patches/server/0309-Optimise-getChunkAt-calls-for-loaded-chunks.patch2
-rw-r--r--patches/server/0310-Add-debug-for-sync-chunk-loads.patch2
-rw-r--r--patches/server/0336-Don-t-run-entity-collision-code-if-not-needed.patch4
-rw-r--r--patches/server/0341-Add-PlayerAttackEntityCooldownResetEvent.patch2
-rw-r--r--patches/server/0344-Fix-item-duplication-and-teleport-issues.patch6
-rw-r--r--patches/server/0369-Ensure-Entity-position-and-AABB-are-never-invalid.patch2
-rw-r--r--patches/server/0380-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch2
-rw-r--r--patches/server/0404-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch2
-rw-r--r--patches/server/0408-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch2
-rw-r--r--patches/server/0410-Entity-isTicking.patch2
-rw-r--r--patches/server/0435-Climbing-should-not-bypass-cramming-gamerule.patch4
-rw-r--r--patches/server/0446-MC-4-Fix-item-position-desync.patch2
-rw-r--r--patches/server/0448-API-to-get-Material-from-Boats-and-Minecarts.patch2
-rw-r--r--patches/server/0469-Collision-option-for-requiring-a-player-participant.patch2
-rw-r--r--patches/server/0477-Expand-EntityUnleashEvent.patch2
-rw-r--r--patches/server/0480-Add-EntityMoveEvent.patch2
-rw-r--r--patches/server/0503-Fix-PlayerItemConsumeEvent-cancelling-properly.patch2
-rw-r--r--patches/server/0548-Line-Of-Sight-Changes.patch2
-rw-r--r--patches/server/0571-Optimize-indirect-passenger-iteration.patch2
-rw-r--r--patches/server/0578-Add-back-EntityPortalExitEvent.patch2
-rw-r--r--patches/server/0589-Add-Raw-Byte-Entity-Serialization.patch2
-rw-r--r--patches/server/0593-Improve-and-expand-AsyncCatcher.patch2
-rw-r--r--patches/server/0600-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch4
-rw-r--r--patches/server/0616-Update-head-rotation-in-missing-places.patch2
-rw-r--r--patches/server/0617-prevent-unintended-light-block-manipulation.patch18
-rw-r--r--patches/server/0622-don-t-attempt-to-teleport-dead-entities.patch2
-rw-r--r--patches/server/0623-Prevent-excessive-velocity-through-repeated-crits.patch2
-rw-r--r--patches/server/0632-Forward-CraftEntity-in-teleport-command.patch2
-rw-r--r--patches/server/0651-Freeze-Tick-Lock-API.patch4
-rw-r--r--patches/server/0663-Option-to-have-default-CustomSpawners-in-custom-worl.patch4
-rw-r--r--patches/server/0664-Put-world-into-worldlist-before-initing-the-world.patch2
-rw-r--r--patches/server/0665-Custom-Potion-Mixes.patch2
-rw-r--r--patches/server/0680-fix-player-loottables-running-when-mob-loot-gamerule.patch4
-rw-r--r--patches/server/0681-Ensure-entity-passenger-world-matches-ridden-entity.patch2
-rw-r--r--patches/server/0694-Add-PlayerStopUsingItemEvent.patch2
-rw-r--r--patches/server/0702-Prevent-entity-loading-causing-async-lookups.patch2
-rw-r--r--patches/server/0703-Throw-exception-on-world-create-while-being-ticked.patch2
-rw-r--r--patches/server/0706-Add-option-for-strict-advancement-dimension-checks.patch2
-rw-r--r--patches/server/0714-Add-various-missing-EntityDropItemEvent-calls.patch6
-rw-r--r--patches/server/0717-More-Teleport-API.patch29
-rw-r--r--patches/server/0722-Custom-Chat-Completion-Suggestions-API.patch2
-rw-r--r--patches/server/0729-Fix-plugin-loggers-on-server-shutdown.patch2
-rw-r--r--patches/server/0730-Stop-large-look-changes-from-crashing-the-server.patch2
-rw-r--r--patches/server/0746-Add-PlayerInventorySlotChangeEvent.patch2
-rw-r--r--patches/server/0747-Elder-Guardian-appearance-API.patch4
-rw-r--r--patches/server/0756-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch2
-rw-r--r--patches/server/0759-Add-Player-Warden-Warning-API.patch4
-rw-r--r--patches/server/0762-check-global-player-list-where-appropriate.patch2
-rw-r--r--patches/server/0765-Friction-API.patch2
-rw-r--r--patches/server/0767-Fix-premature-player-kicks-on-shutdown.patch2
-rw-r--r--patches/server/0768-Sync-offhand-slot-in-menus.patch2
-rw-r--r--patches/server/0769-Player-Entity-Tracking-Events.patch2
-rw-r--r--patches/server/0771-fix-Instruments.patch2
-rw-r--r--patches/server/0776-Improve-PortalEvents.patch4
-rw-r--r--patches/server/0780-Flying-Fall-Damage.patch4
-rw-r--r--patches/server/0781-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch2
-rw-r--r--patches/server/0784-Correctly-shrink-items-during-EntityResurrectEvent.patch2
-rw-r--r--patches/server/0785-Win-Screen-API.patch2
-rw-r--r--patches/server/0794-Fix-advancement-triggers-for-entity-damage.patch2
-rw-r--r--patches/server/0810-Expand-PlayerItemMendEvent.patch4
-rw-r--r--patches/server/0811-Refresh-ProjectileSource-for-projectiles.patch2
-rw-r--r--patches/server/0825-Don-t-load-chunks-for-supporting-block-checks.patch2
-rw-r--r--patches/server/0829-Fix-BanList-API.patch6
-rw-r--r--patches/server/0837-Folia-scheduler-and-owned-region-API.patch4
-rw-r--r--patches/server/0847-Bandaid-fix-for-Effect.patch2
-rw-r--r--patches/server/0855-Add-Listing-API-for-Player.patch6
-rw-r--r--patches/server/0858-Fix-NPE-on-Boat-getStatus.patch2
-rw-r--r--patches/server/0859-Expand-Pose-API.patch2
-rw-r--r--patches/server/0865-Implement-OfflinePlayer-isConnected.patch2
-rw-r--r--patches/server/0866-Fix-slot-desync.patch4
-rw-r--r--patches/server/0867-Add-titleOverride-to-InventoryOpenEvent.patch2
-rw-r--r--patches/server/0882-Fix-missing-map-initialize-event-call.patch25
-rw-r--r--patches/server/0885-Add-player-idle-duration-API.patch4
-rw-r--r--patches/server/0888-Allow-null-itemstack-for-Player-sendEquipmentChange.patch2
-rw-r--r--patches/server/0891-Add-predicate-for-blocks-when-raytracing.patch4
-rw-r--r--patches/server/0892-Broadcast-take-item-packets-with-collector-as-source.patch2
-rw-r--r--patches/server/0900-Don-t-fire-sync-events-during-worldgen.patch6
-rw-r--r--patches/server/0903-Restore-vanilla-entity-drops-behavior.patch10
-rw-r--r--patches/server/0907-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch2
-rw-r--r--patches/server/0908-Add-experience-points-API.patch4
-rw-r--r--patches/server/0911-Validate-ResourceLocation-in-NBT-reading.patch2
-rw-r--r--patches/server/0926-Add-BlockBreakProgressUpdateEvent.patch2
-rw-r--r--patches/server/0930-Add-onboarding-message-for-initial-server-start.patch2
-rw-r--r--patches/server/0931-Configurable-max-block-fluid-ticks.patch2
-rw-r--r--patches/server/0935-Fix-DamageSource-API.patch2
-rw-r--r--patches/server/0946-Fix-shield-disable-inconsistency.patch2
-rw-r--r--patches/server/0950-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch2
-rw-r--r--patches/server/0953-Added-API-to-get-player-ha-proxy-address.patch2
-rw-r--r--patches/server/0957-Brigadier-based-command-API.patch2
-rw-r--r--patches/server/0961-Prevent-sending-oversized-item-data-in-equipment-and.patch2
-rw-r--r--patches/server/0971-Configurable-damage-tick-when-blocking-with-shield.patch2
-rw-r--r--patches/server/0973-disable-forced-empty-world-ticks.patch2
-rw-r--r--patches/server/0975-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch8
-rw-r--r--patches/server/0979-Entity-Activation-Range-2.0.patch4
-rw-r--r--patches/server/0980-Anti-Xray.patch2
-rw-r--r--patches/server/0982-Optimize-Collision-to-not-load-chunks.patch2
-rw-r--r--patches/server/0984-Optimize-Hoppers.patch2
-rw-r--r--patches/server/0991-Check-distance-in-entity-interactions.patch2
-rw-r--r--patches/server/0993-Properly-resend-entities.patch4
-rw-r--r--patches/server/1002-Only-call-EntityDamageEvents-before-actuallyHurt.patch2
-rw-r--r--patches/server/1012-Leashable-API.patch2
-rw-r--r--patches/server/1018-Fix-InventoryOpenEvent-cancellation.patch2
-rw-r--r--patches/server/1020-Check-dead-flag-in-isAlive.patch2
-rw-r--r--patches/server/1022-Tag-Lifecycle-Events.patch2
-rw-r--r--patches/server/1029-Improve-entity-effect-API.patch4
-rw-r--r--patches/server/1033-Void-damage-configuration-API.patch4
111 files changed, 207 insertions, 186 deletions
diff --git a/patches/server/0002-Remap-fixes.patch b/patches/server/0002-Remap-fixes.patch
index 50ea8b2aa7..d7cff4215b 100644
--- a/patches/server/0002-Remap-fixes.patch
+++ b/patches/server/0002-Remap-fixes.patch
@@ -73,6 +73,19 @@ index f3a2612f0e27c36d5206334307eac1880ce8c4b7..4d4d413b8527e1a109276928611b8c85
private ContextKeySet paramSet;
private Optional<ResourceLocation> randomSequence;
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
+index eaa46bf5954ed7c2be6d4b3772b5f2e971505c78..c101d01b55472efc9fc2829b8c17db5377ed57ff 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
+@@ -133,7 +133,7 @@ public abstract class CraftBoat extends CraftVehicle implements Boat {
+ throw new EnumConstantNotPresentException(Type.class, boatType.toString());
+ }
+
+- public static Status boatStatusFromNms(net.minecraft.world.entity.vehicle.Boat.EnumStatus enumStatus) {
++ public static Status boatStatusFromNms(net.minecraft.world.entity.vehicle.AbstractBoat.Status enumStatus) { // Paper - remap fixes
+ return switch (enumStatus) {
+ default -> throw new EnumConstantNotPresentException(Status.class, enumStatus.name());
+ case IN_AIR -> Status.IN_AIR;
diff --git a/src/test/java/org/bukkit/DyeColorsTest.java b/src/test/java/org/bukkit/DyeColorsTest.java
index e96d821da0698dd42651500fb97a0856a9e9ce02..fb7d40181abdaa5b2ce607db47c09d0d0a19c86d 100644
--- a/src/test/java/org/bukkit/DyeColorsTest.java
diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch
index 4b120d89b8..d98cff6991 100644
--- a/patches/server/0009-MC-Utils.patch
+++ b/patches/server/0009-MC-Utils.patch
@@ -4980,7 +4980,7 @@ index 23a611c9a83d1cea5ab2f64cdbd696c39872477d..bf660a057d135563b47e7b74d927a82a
GameProfileCache usercache = this.server.getProfileCache();
// Optional optional; // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java
-index ae25aec117a7272735c824a00c1ed117fa52a921..f877bc637fef7f446b328381316f1431b3a5dee8 100644
+index ae25aec117a7272735c824a00c1ed117fa52a921..d6e942aca1bcc769c390504a4119d6619872c4d4 100644
--- a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java
+++ b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java
@@ -82,6 +82,13 @@ public abstract class BlockableEventLoop<R extends Runnable> implements Profiler
@@ -4991,7 +4991,7 @@ index ae25aec117a7272735c824a00c1ed117fa52a921..f877bc637fef7f446b328381316f1431
+ public void scheduleOnMain(Runnable runnable) {
+ // postToMainThread does not work the same as older versions of mc
+ // This method is actually used to create a TickTask, which can then be posted onto main
-+ this.tell(this.wrapRunnable(runnable));
++ this.schedule(this.wrapRunnable(runnable));
+ }
+ // Paper end
diff --git a/patches/server/0023-Timings-v2.patch b/patches/server/0023-Timings-v2.patch
index 19ddd183bb..5cb8445793 100644
--- a/patches/server/0023-Timings-v2.patch
+++ b/patches/server/0023-Timings-v2.patch
@@ -1032,7 +1032,7 @@ index 88e98f49565a098debcea8d58368e53d7623f6b5..84ea1974445fc7be80ed474d8a2133b5
}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index c615510f3f59292715bcff1bd9e4e896c9733436..a29598ae54d5d20740a105f81bcaec2a152fe4ba 100644
+index c615510f3f59292715bcff1bd9e4e896c9733436..93422468474189343cdc1e29f06f6dfb12e4760a 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -207,13 +207,15 @@ public class ServerChunkCache extends ChunkSource {
@@ -1076,15 +1076,7 @@ index c615510f3f59292715bcff1bd9e4e896c9733436..a29598ae54d5d20740a105f81bcaec2a
}
this.level.timings.doChunkUnload.startTiming(); // Spigot
-@@ -442,6 +446,7 @@ public class ServerChunkCache extends ChunkSource {
- gameprofilerfiller.pop();
- this.clearCache();
- }
-+ if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper
-
- private void tickChunks() {
- long i = this.level.getGameTime();
-@@ -481,7 +486,9 @@ public class ServerChunkCache extends ChunkSource {
+@@ -481,7 +485,9 @@ public class ServerChunkCache extends ChunkSource {
LevelChunk chunk = playerchunk.getTickingChunk();
if (chunk != null) {
@@ -1094,7 +1086,7 @@ index c615510f3f59292715bcff1bd9e4e896c9733436..a29598ae54d5d20740a105f81bcaec2a
}
}
-@@ -502,8 +509,10 @@ public class ServerChunkCache extends ChunkSource {
+@@ -502,8 +508,10 @@ public class ServerChunkCache extends ChunkSource {
private void tickChunks(ProfilerFiller profiler, long timeDelta, List<LevelChunk> chunks) {
profiler.popPush("naturalSpawnCount");
@@ -1105,7 +1097,7 @@ index c615510f3f59292715bcff1bd9e4e896c9733436..a29598ae54d5d20740a105f81bcaec2a
this.lastSpawnState = spawnercreature_d;
profiler.popPush("spawnAndTick");
-@@ -531,15 +540,17 @@ public class ServerChunkCache extends ChunkSource {
+@@ -531,15 +539,17 @@ public class ServerChunkCache extends ChunkSource {
}
if (this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) {
diff --git a/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch
index a6fcccab1a..1c3173436b 100644
--- a/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch
+++ b/patches/server/0164-PlayerNaturallySpawnCreaturesEvent.patch
@@ -40,10 +40,10 @@ index 84ea1974445fc7be80ed474d8a2133b58ee4c8fe..aa3155bb57c09895d13914b46c77de78
return true;
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index a29598ae54d5d20740a105f81bcaec2a152fe4ba..3bbc7aa52a2ee797d6033684e73d6b307c2fadcc 100644
+index 93422468474189343cdc1e29f06f6dfb12e4760a..fef86453d5cf0fe0f11a2a061169cd301b777434 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-@@ -521,6 +521,15 @@ public class ServerChunkCache extends ChunkSource {
+@@ -520,6 +520,15 @@ public class ServerChunkCache extends ChunkSource {
List list1;
if (flag && (this.spawnEnemies || this.spawnFriendlies)) {
diff --git a/patches/server/0244-Prevent-various-interactions-from-causing-chunk-load.patch b/patches/server/0244-Prevent-various-interactions-from-causing-chunk-load.patch
index b7f9185ebb..a2789a6dfa 100644
--- a/patches/server/0244-Prevent-various-interactions-from-causing-chunk-load.patch
+++ b/patches/server/0244-Prevent-various-interactions-from-causing-chunk-load.patch
@@ -77,7 +77,7 @@ index c02a2f9e1b4e727b1deeb73377e1f7193f5ee072..cdd1f6939ce33e62f6609f7eb3a5dff5
: new LodestoneTracker(Optional.empty(), true);
}
diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java
-index 6850ac324ee4d202f112dbd057ea1bde9de17ea9..8e58efd0d8010a3499a1eb1add9fa976aa2b0a3e 100644
+index 6850ac324ee4d202f112dbd057ea1bde9de17ea9..f39ccc0d2a4eea4e1e0b15608780c7c4a749e672 100644
--- a/src/main/java/net/minecraft/world/level/BlockGetter.java
+++ b/src/main/java/net/minecraft/world/level/BlockGetter.java
@@ -71,7 +71,15 @@ public interface BlockGetter extends LevelHeightAccessor {
@@ -91,7 +91,7 @@ index 6850ac324ee4d202f112dbd057ea1bde9de17ea9..8e58efd0d8010a3499a1eb1add9fa976
+ // copied the last function parameter (listed below)
+ Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo());
+
-+ return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo()));
++ return BlockHitResult.miss(raytrace1.getTo(), Direction.getApproximateNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo()));
+ }
+ // Paper end - Prevent raytrace from loading chunks
FluidState fluid = this.getFluidState(blockposition);
diff --git a/patches/server/0309-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/server/0309-Optimise-getChunkAt-calls-for-loaded-chunks.patch
index 8a7a310666..32dde0f0e4 100644
--- a/patches/server/0309-Optimise-getChunkAt-calls-for-loaded-chunks.patch
+++ b/patches/server/0309-Optimise-getChunkAt-calls-for-loaded-chunks.patch
@@ -7,7 +7,7 @@ bypass the need to get a player chunk, then get the either,
then unwrap it...
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index 3bbc7aa52a2ee797d6033684e73d6b307c2fadcc..4302d5119c43eb8de0c026162fc62ddeb5ab87cb 100644
+index fef86453d5cf0fe0f11a2a061169cd301b777434..9ab43b4273975d7599f8eee2f95773f2984b7c37 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -191,6 +191,12 @@ public class ServerChunkCache extends ChunkSource {
diff --git a/patches/server/0310-Add-debug-for-sync-chunk-loads.patch b/patches/server/0310-Add-debug-for-sync-chunk-loads.patch
index 73dc4103eb..a27b5deba2 100644
--- a/patches/server/0310-Add-debug-for-sync-chunk-loads.patch
+++ b/patches/server/0310-Add-debug-for-sync-chunk-loads.patch
@@ -302,7 +302,7 @@ index 0000000000000000000000000000000000000000..95d6022c9cfb2e36ec5a71be6e343540
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index 4302d5119c43eb8de0c026162fc62ddeb5ab87cb..7e5714fea4cda68b9ae21031c0e0d39061b07e2f 100644
+index 9ab43b4273975d7599f8eee2f95773f2984b7c37..350bfa9c891130b1aa2ab973e86668de187ee1e0 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -218,6 +218,7 @@ public class ServerChunkCache extends ChunkSource {
diff --git a/patches/server/0336-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0336-Don-t-run-entity-collision-code-if-not-needed.patch
index 43b1d500a9..e0919bb4b1 100644
--- a/patches/server/0336-Don-t-run-entity-collision-code-if-not-needed.patch
+++ b/patches/server/0336-Don-t-run-entity-collision-code-if-not-needed.patch
@@ -12,7 +12,7 @@ The entity's current team collision rule causes them to NEVER collide.
Co-authored-by: Owen1212055 <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 304a401fb1f378ff2cbfd888acf56a8516f79310..6ff464fef1f79cff9212135a30adcc6cb8792ed6 100644
+index 304a401fb1f378ff2cbfd888acf56a8516f79310..ecf188d659c8542ca2b52c5e7ec779bfacb5614c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3683,10 +3683,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -28,7 +28,7 @@ index 304a401fb1f378ff2cbfd888acf56a8516f79310..6ff464fef1f79cff9212135a30adcc6c
+ return;
+ }
+
-+ int i = this.level().getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING);
++ int i = worldserver.getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING);
+ if (i <= 0 && this.level().paperConfig().collisions.maxEntityCollisions <= 0) {
+ return;
+ }
diff --git a/patches/server/0341-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0341-Add-PlayerAttackEntityCooldownResetEvent.patch
index 72ccb53f47..ce70659c90 100644
--- a/patches/server/0341-Add-PlayerAttackEntityCooldownResetEvent.patch
+++ b/patches/server/0341-Add-PlayerAttackEntityCooldownResetEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 6ff464fef1f79cff9212135a30adcc6cb8792ed6..68e5f6f7013d6a014b9014d945cf3f7dc7a37cb2 100644
+index ecf188d659c8542ca2b52c5e7ec779bfacb5614c..324d654420c3d11f0695fdf029fde0300a865317 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2354,7 +2354,17 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0344-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0344-Fix-item-duplication-and-teleport-issues.patch
index 2b42b0e70c..128a755a95 100644
--- a/patches/server/0344-Fix-item-duplication-and-teleport-issues.patch
+++ b/patches/server/0344-Fix-item-duplication-and-teleport-issues.patch
@@ -16,7 +16,7 @@ So even if something NEW comes up, it would be impossible to drop the
same item twice because the source was destroyed.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 5b8e264098f1b713de15f714bae59d3efda365cf..4faba83eb73e0d313e9131794962b727f7628a50 100644
+index 5b8e264098f1b713de15f714bae59d3efda365cf..6f1e09087cf2d8dbb61882473b220100e3b0369a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2630,11 +2630,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -39,7 +39,7 @@ index 5b8e264098f1b713de15f714bae59d3efda365cf..4faba83eb73e0d313e9131794962b727
+ // Paper start - Fix item duplication and teleport issues
+ if (!this.isAlive() || !this.valid) {
-+ LOGGER.warn("Illegal Entity Teleport " + this + " to " + teleportTarget.newLevel() + ":" + teleportTarget.pos(), new Throwable());
++ LOGGER.warn("Illegal Entity Teleport " + this + " to " + teleportTarget.newLevel() + ":" + teleportTarget.position(), new Throwable());
+ return null;
+ }
+ // Paper end - Fix item duplication and teleport issues
@@ -67,7 +67,7 @@ index 5b8e264098f1b713de15f714bae59d3efda365cf..4faba83eb73e0d313e9131794962b727
Iterator iterator = this.getPassengers().iterator();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 68e5f6f7013d6a014b9014d945cf3f7dc7a37cb2..65909e0a8f8b68f9a4dacefda9069c8263a96ada 100644
+index 324d654420c3d11f0695fdf029fde0300a865317..f7323f54b2ac7236d26da8998a88432f9776e1ea 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1767,9 +1767,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0369-Ensure-Entity-position-and-AABB-are-never-invalid.patch b/patches/server/0369-Ensure-Entity-position-and-AABB-are-never-invalid.patch
index 75a8ed8bfe..acac658b4d 100644
--- a/patches/server/0369-Ensure-Entity-position-and-AABB-are-never-invalid.patch
+++ b/patches/server/0369-Ensure-Entity-position-and-AABB-are-never-invalid.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Ensure Entity position and AABB are never invalid
Co-authored-by: Spottedleaf <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4faba83eb73e0d313e9131794962b727f7628a50..7fdfe1dd09812df1d8d7e5f95bcaf1b48c814e22 100644
+index 6f1e09087cf2d8dbb61882473b220100e3b0369a..a3e096525f89b7b66efa7987f9744618074ca38a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -677,8 +677,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0380-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0380-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch
index e97a181c53..de62fde367 100644
--- a/patches/server/0380-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch
+++ b/patches/server/0380-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't check chunk for portal on world gen entity add
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 65909e0a8f8b68f9a4dacefda9069c8263a96ada..91a5166e69a03d846a1b396ba964003c12a0dcdb 100644
+index f7323f54b2ac7236d26da8998a88432f9776e1ea..e0ccdbcdbc33d378ebe41e3741137b15ff9fd80a 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3798,7 +3798,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0404-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0404-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index a05ecacdce..6b069e9a8c 100644
--- a/patches/server/0404-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/patches/server/0404-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
@@ -22,7 +22,7 @@ index 49039d929681891beb76b8c7f6e6d8bb614a7bf0..b634a90e87f52c79b74c256c13b659b5
this.lastGoodY = this.awaitingPositionFromClient.y;
this.lastGoodZ = this.awaitingPositionFromClient.z;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 7fdfe1dd09812df1d8d7e5f95bcaf1b48c814e22..f8fd729d53248c7598a118d89fedf340f82cdd61 100644
+index a3e096525f89b7b66efa7987f9744618074ca38a..9e4483d31330dfe82fd794c9cfb8d2aa318a39ea 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -179,6 +179,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0408-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0408-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
index 2b99da73b9..3dec9f876b 100644
--- a/patches/server/0408-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
+++ b/patches/server/0408-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index f8fd729d53248c7598a118d89fedf340f82cdd61..ac1b2b3982e5ceb8fecf20867dd2ac6e143463c3 100644
+index 9e4483d31330dfe82fd794c9cfb8d2aa318a39ea..b55ca652e0828bc34848ad4f1ebb9001832550dc 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4704,4 +4704,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0410-Entity-isTicking.patch b/patches/server/0410-Entity-isTicking.patch
index e90c16901d..d4311d3a19 100644
--- a/patches/server/0410-Entity-isTicking.patch
+++ b/patches/server/0410-Entity-isTicking.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Entity#isTicking
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index ac1b2b3982e5ceb8fecf20867dd2ac6e143463c3..0bd608894ab596c773570f92b4662aee5a6934cc 100644
+index b55ca652e0828bc34848ad4f1ebb9001832550dc..8cb02a0aeab64e0333c61aa3b30685ad1a169c48 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4709,5 +4709,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0435-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0435-Climbing-should-not-bypass-cramming-gamerule.patch
index e27625ee8e..23a3982b73 100644
--- a/patches/server/0435-Climbing-should-not-bypass-cramming-gamerule.patch
+++ b/patches/server/0435-Climbing-should-not-bypass-cramming-gamerule.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 0bd608894ab596c773570f92b4662aee5a6934cc..25f625e28c8c9f63a1b2207d5e8d1a48e2fea039 100644
+index 8cb02a0aeab64e0333c61aa3b30685ad1a169c48..2e9a836f16eace80b010d5a0421901f7a1af8622 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2195,6 +2195,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -44,7 +44,7 @@ index b8d57e25851dd7da905100dfd4022e4b99fd7f02..721321a19ce056f82de2bef44a8791dc
} else if (entity1 instanceof Player && entity instanceof Player && !io.papermc.paper.configuration.GlobalConfiguration.get().collisions.enablePlayerCollisions) { // Paper - Configurable player collision
return false;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 91a5166e69a03d846a1b396ba964003c12a0dcdb..7ea58478d3cde175a056f41cf945636a04128828 100644
+index e0ccdbcdbc33d378ebe41e3741137b15ff9fd80a..5a551e24be8d4d8157adb0f20f8e7bd3c5c61854 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3712,7 +3712,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0446-MC-4-Fix-item-position-desync.patch b/patches/server/0446-MC-4-Fix-item-position-desync.patch
index 26cf19c2b6..93bbd49bf5 100644
--- a/patches/server/0446-MC-4-Fix-item-position-desync.patch
+++ b/patches/server/0446-MC-4-Fix-item-position-desync.patch
@@ -28,7 +28,7 @@ index 488ebd443903af812913437f1ade3002093f2470..a043ac10834562d357ef0b5aded2e916
public Vec3 decode(long x, long y, long z) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 25f625e28c8c9f63a1b2207d5e8d1a48e2fea039..ad34a525f54a157140323a26752a420a8e348a55 100644
+index 2e9a836f16eace80b010d5a0421901f7a1af8622..be547b0ef3b91da97fbc270cc00d922ba9c5896e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4449,6 +4449,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0448-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0448-API-to-get-Material-from-Boats-and-Minecarts.patch
index 8462025bf8..1b80594eba 100644
--- a/patches/server/0448-API-to-get-Material-from-Boats-and-Minecarts.patch
+++ b/patches/server/0448-API-to-get-Material-from-Boats-and-Minecarts.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] API to get Material from Boats and Minecarts
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
-index eaa46bf5954ed7c2be6d4b3772b5f2e971505c78..5de1ada561d11c247a597effab1e0aa363b7c90f 100644
+index c101d01b55472efc9fc2829b8c17db5377ed57ff..5d51a49228eaee94f91cd04843e27c7918ca8796 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
@@ -78,6 +78,13 @@ public abstract class CraftBoat extends CraftVehicle implements Boat {
diff --git a/patches/server/0469-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0469-Collision-option-for-requiring-a-player-participant.patch
index a1b916f2ad..251c412a50 100644
--- a/patches/server/0469-Collision-option-for-requiring-a-player-participant.patch
+++ b/patches/server/0469-Collision-option-for-requiring-a-player-participant.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Collision option for requiring a player participant
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index ad34a525f54a157140323a26752a420a8e348a55..1d2f0f8756addf0db7356b47ea8a1eddd2c4503d 100644
+index be547b0ef3b91da97fbc270cc00d922ba9c5896e..07aff05e2e8cd36ebb6b9fb9d2f19b95c5f9bfc4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2024,6 +2024,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0477-Expand-EntityUnleashEvent.patch b/patches/server/0477-Expand-EntityUnleashEvent.patch
index 88cfdc582e..8d23e8ce85 100644
--- a/patches/server/0477-Expand-EntityUnleashEvent.patch
+++ b/patches/server/0477-Expand-EntityUnleashEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expand EntityUnleashEvent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 1d2f0f8756addf0db7356b47ea8a1eddd2c4503d..42004784a5421bd27d0a4a2bf1c17d14341fc5a4 100644
+index 07aff05e2e8cd36ebb6b9fb9d2f19b95c5f9bfc4..bb2cfec32b63d3786f9ec255d4beef7065245cae 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2689,12 +2689,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0480-Add-EntityMoveEvent.patch b/patches/server/0480-Add-EntityMoveEvent.patch
index 7eb0eacb2e..bc7d0f0ad2 100644
--- a/patches/server/0480-Add-EntityMoveEvent.patch
+++ b/patches/server/0480-Add-EntityMoveEvent.patch
@@ -29,7 +29,7 @@ index d62d6a345837e1b63c1a1393f18e367ac0ef4c30..b91ed08e8d9fbd399834d19ef01ebe56
public LevelChunk getChunkIfLoaded(int x, int z) {
return this.chunkSource.getChunk(x, z, false);
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 7ea58478d3cde175a056f41cf945636a04128828..293490d124bc06c4a06b9f4a7f77a9c25a8d7d39 100644
+index 5a551e24be8d4d8157adb0f20f8e7bd3c5c61854..8bb10bcc26577ff7b806fbcc48c3d71b241c5963 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3628,6 +3628,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0503-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0503-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
index a1da72f499..fc40a810f1 100644
--- a/patches/server/0503-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
+++ b/patches/server/0503-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
@@ -9,7 +9,7 @@ till their item is switched.
This patch clears the active item when the event is cancelled
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 293490d124bc06c4a06b9f4a7f77a9c25a8d7d39..b7cc3d84c724772e3e1250c5e99bb32e01112220 100644
+index 8bb10bcc26577ff7b806fbcc48c3d71b241c5963..9829419d3531ed6af55e37ac253903975c648a3e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -4136,6 +4136,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0548-Line-Of-Sight-Changes.patch b/patches/server/0548-Line-Of-Sight-Changes.patch
index 2b40552d3f..d8a956a309 100644
--- a/patches/server/0548-Line-Of-Sight-Changes.patch
+++ b/patches/server/0548-Line-Of-Sight-Changes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Line Of Sight Changes
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index b7cc3d84c724772e3e1250c5e99bb32e01112220..eeed7d1d4b7fee0e8ab1f43f9b7ec6f74a01330d 100644
+index 9829419d3531ed6af55e37ac253903975c648a3e..1cb118c12e1b09cb6ae8d3b6949212b46c91b85b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3907,7 +3907,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0571-Optimize-indirect-passenger-iteration.patch b/patches/server/0571-Optimize-indirect-passenger-iteration.patch
index 3d38516418..ea5798ac84 100644
--- a/patches/server/0571-Optimize-indirect-passenger-iteration.patch
+++ b/patches/server/0571-Optimize-indirect-passenger-iteration.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Optimize indirect passenger iteration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 42004784a5421bd27d0a4a2bf1c17d14341fc5a4..ea1492559653063bb14b934f4d40d910b81d8801 100644
+index bb2cfec32b63d3786f9ec255d4beef7065245cae..674df993333ddee13415a4379b81dadc68489af7 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4087,20 +4087,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0578-Add-back-EntityPortalExitEvent.patch b/patches/server/0578-Add-back-EntityPortalExitEvent.patch
index 6c0fdf2ce9..c739f7010e 100644
--- a/patches/server/0578-Add-back-EntityPortalExitEvent.patch
+++ b/patches/server/0578-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 ea1492559653063bb14b934f4d40d910b81d8801..0fd652a60bf9bedda903b734f4fd39153a9c418c 100644
+index 674df993333ddee13415a4379b81dadc68489af7..cb6a167ed778073be9f9e1f2eb27b46547b0a3ce 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3491,7 +3491,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0589-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0589-Add-Raw-Byte-Entity-Serialization.patch
index 34f5031fb4..75c80fef00 100644
--- a/patches/server/0589-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/server/0589-Add-Raw-Byte-Entity-Serialization.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization
public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 0fd652a60bf9bedda903b734f4fd39153a9c418c..92c743a354e95c8e12fc21673ee172aed07fe1fb 100644
+index cb6a167ed778073be9f9e1f2eb27b46547b0a3ce..3bac521f0be372198c8b83d514f3d14a041b76cd 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2260,6 +2260,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0593-Improve-and-expand-AsyncCatcher.patch b/patches/server/0593-Improve-and-expand-AsyncCatcher.patch
index 3a42eb978d..c51af8278f 100644
--- a/patches/server/0593-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0593-Improve-and-expand-AsyncCatcher.patch
@@ -29,7 +29,7 @@ index ea793f9ccf3082a7abcb003b9df03901f9b4c0f0..8084bf547a52f3e5c890d2be3757acb3
if (player.isRemoved()) {
LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName());
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index eeed7d1d4b7fee0e8ab1f43f9b7ec6f74a01330d..f7e14d9668c74e20bc327b05cf84c8203e4e590b 100644
+index 1cb118c12e1b09cb6ae8d3b6949212b46c91b85b..21f9fc5c3111dc126d0197a02bb61541fc422933 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1145,7 +1145,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0600-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0600-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
index 96945dc001..e01f02928a 100644
--- a/patches/server/0600-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
+++ b/patches/server/0600-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
@@ -11,11 +11,11 @@ easy win. The remaining problems with this function
are mostly with the block getting itself.
diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java
-index 8e58efd0d8010a3499a1eb1add9fa976aa2b0a3e..cc9ae2122b563d7b583c7335d0a8ce227f9b1af4 100644
+index f39ccc0d2a4eea4e1e0b15608780c7c4a749e672..7e1a332168357b9af14dbe3299549c2c93903fa6 100644
--- a/src/main/java/net/minecraft/world/level/BlockGetter.java
+++ b/src/main/java/net/minecraft/world/level/BlockGetter.java
@@ -80,7 +80,8 @@ public interface BlockGetter extends LevelHeightAccessor {
- return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo()));
+ return BlockHitResult.miss(raytrace1.getTo(), Direction.getApproximateNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo()));
}
// Paper end - Prevent raytrace from loading chunks
- FluidState fluid = this.getFluidState(blockposition);
diff --git a/patches/server/0616-Update-head-rotation-in-missing-places.patch b/patches/server/0616-Update-head-rotation-in-missing-places.patch
index 190dc41a6d..379a051545 100644
--- a/patches/server/0616-Update-head-rotation-in-missing-places.patch
+++ b/patches/server/0616-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 92c743a354e95c8e12fc21673ee172aed07fe1fb..b54dcebbd5d2f920efcf91ff2de485493dd2f487 100644
+index 3bac521f0be372198c8b83d514f3d14a041b76cd..366c3165783d3856d9f47f0dd4a594016d9f41ed 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1914,6 +1914,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0617-prevent-unintended-light-block-manipulation.patch b/patches/server/0617-prevent-unintended-light-block-manipulation.patch
index 824f2a8ab9..12d564474a 100644
--- a/patches/server/0617-prevent-unintended-light-block-manipulation.patch
+++ b/patches/server/0617-prevent-unintended-light-block-manipulation.patch
@@ -5,17 +5,27 @@ Subject: [PATCH] prevent unintended light block manipulation
diff --git a/src/main/java/net/minecraft/world/level/block/LightBlock.java b/src/main/java/net/minecraft/world/level/block/LightBlock.java
-index 6c3ca57a29d3c5ad1add1cf2f707b930dfc422ea..71a1a152dca41ba9100bd38efd6758a42bab9f5d 100644
+index 6c3ca57a29d3c5ad1add1cf2f707b930dfc422ea..606c9b03cc69031faed33f437ca254f12224bb62 100644
--- a/src/main/java/net/minecraft/world/level/block/LightBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/LightBlock.java
-@@ -50,6 +50,14 @@ public class LightBlock extends Block implements SimpleWaterloggedBlock {
+@@ -5,7 +5,9 @@ import java.util.function.ToIntFunction;
+ import net.minecraft.core.BlockPos;
+ import net.minecraft.core.Direction;
+ import net.minecraft.core.component.DataComponents;
++import net.minecraft.server.level.ServerLevel;
+ import net.minecraft.util.RandomSource;
++import net.minecraft.world.InteractionHand;
+ import net.minecraft.world.InteractionResult;
+ import net.minecraft.world.entity.player.Player;
+ import net.minecraft.world.item.ItemStack;
+@@ -50,6 +52,14 @@ public class LightBlock extends Block implements SimpleWaterloggedBlock {
builder.add(LEVEL, WATERLOGGED);
}
+ // Paper start - prevent unintended light block manipulation
+ @Override
-+ protected net.minecraft.world.ItemInteractionResult useItemOn(final ItemStack stack, final BlockState state, final Level world, final BlockPos pos, final Player player, final net.minecraft.world.InteractionHand hand, final BlockHitResult hit) {
-+ if (player.getItemInHand(hand).getItem() != Items.LIGHT || !player.mayInteract(world, pos) || !player.mayUseItemAt(pos, hit.getDirection(), player.getItemInHand(hand))) { return net.minecraft.world.ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; } // Paper - Prevent unintended light block manipulation
++ protected InteractionResult useItemOn(ItemStack stack, BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
++ if (player.getItemInHand(hand).getItem() != Items.LIGHT || (world instanceof final ServerLevel serverLevel && !player.mayInteract(serverLevel, pos)) || !player.mayUseItemAt(pos, hit.getDirection(), player.getItemInHand(hand))) { return net.minecraft.world.InteractionResult.PASS; } // Paper - Prevent unintended light block manipulation
+ return super.useItemOn(stack, state, world, pos, player, hand, hit);
+ }
+ // Paper end - prevent unintended light block manipulation
diff --git a/patches/server/0622-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0622-don-t-attempt-to-teleport-dead-entities.patch
index 667b51a957..cefb2c7fc0 100644
--- a/patches/server/0622-don-t-attempt-to-teleport-dead-entities.patch
+++ b/patches/server/0622-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 b54dcebbd5d2f920efcf91ff2de485493dd2f487..e311601d8e39e7ea632bc4805260da6d7d6d6776 100644
+index 366c3165783d3856d9f47f0dd4a594016d9f41ed..8b5dc4b3ddb89fcc286c432400e3bc94b8787e4c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -713,7 +713,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0623-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0623-Prevent-excessive-velocity-through-repeated-crits.patch
index 8c7b52d7c5..9db70149e6 100644
--- a/patches/server/0623-Prevent-excessive-velocity-through-repeated-crits.patch
+++ b/patches/server/0623-Prevent-excessive-velocity-through-repeated-crits.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f7e14d9668c74e20bc327b05cf84c8203e4e590b..4db8ac288e59c5f14b260686e55a7d48e2f2791d 100644
+index 21f9fc5c3111dc126d0197a02bb61541fc422933..8c7ffa884f64a4263c9399953a7cfca6e35aab61 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2865,17 +2865,29 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0632-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0632-Forward-CraftEntity-in-teleport-command.patch
index b03dbe2831..1af3ec979c 100644
--- a/patches/server/0632-Forward-CraftEntity-in-teleport-command.patch
+++ b/patches/server/0632-Forward-CraftEntity-in-teleport-command.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index e311601d8e39e7ea632bc4805260da6d7d6d6776..1497c3b79e6dc9ecc270c0fd2003e606f967a56e 100644
+index 8b5dc4b3ddb89fcc286c432400e3bc94b8787e4c..ef923b1cdbe6276d6dc9776bd9e5a508bd021fc0 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3480,6 +3480,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0651-Freeze-Tick-Lock-API.patch b/patches/server/0651-Freeze-Tick-Lock-API.patch
index f978617977..76a992877a 100644
--- a/patches/server/0651-Freeze-Tick-Lock-API.patch
+++ b/patches/server/0651-Freeze-Tick-Lock-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 1497c3b79e6dc9ecc270c0fd2003e606f967a56e..a41bb1d80a84f487a8fb6fdefd7ccc7631902d04 100644
+index ef923b1cdbe6276d6dc9776bd9e5a508bd021fc0..681295efe26a75af61d9ac311e002dfb26ffd8c6 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -414,6 +414,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -46,7 +46,7 @@ index 1497c3b79e6dc9ecc270c0fd2003e606f967a56e..a41bb1d80a84f487a8fb6fdefd7ccc76
} catch (Throwable throwable) {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 4db8ac288e59c5f14b260686e55a7d48e2f2791d..6598f119edc5d890dcc9d065478e7c52ac5a5183 100644
+index 8c7ffa884f64a4263c9399953a7cfca6e35aab61..0aa7291b3c28c58767fed5f9f01e381b671b5d27 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3611,7 +3611,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0663-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0663-Option-to-have-default-CustomSpawners-in-custom-worl.patch
index 94613610ac..45ef226165 100644
--- a/patches/server/0663-Option-to-have-default-CustomSpawners-in-custom-worl.patch
+++ b/patches/server/0663-Option-to-have-default-CustomSpawners-in-custom-worl.patch
@@ -10,7 +10,7 @@ just looking at the LevelStem key, look at the DimensionType key which
is one level below that. Defaults to off to keep vanilla behavior.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index af392711da61a1921be1f82396c2a04dc897d563..7841421f00a3408e52b8d060674e6a686681210e 100644
+index af392711da61a1921be1f82396c2a04dc897d563..2a92a8a4896a1ce27b3f6e8c5b965c1efb70127e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -647,7 +647,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -20,7 +20,7 @@ index af392711da61a1921be1f82396c2a04dc897d563..7841421f00a3408e52b8d060674e6a68
- world = new ServerLevel(this, this.executor, worldSession, iworlddataserver, worldKey, worlddimension, worldloadlistener, flag, j, ImmutableList.of(), true, this.overworld().getRandomSequences(), org.bukkit.World.Environment.getEnvironment(dimension), gen, biomeProvider);
+ // Paper start - option to use the dimension_type to check if spawners should be added. I imagine mojang will add some datapack-y way of managing this in the future.
+ final List<CustomSpawner> spawners;
-+ if (io.papermc.paper.configuration.GlobalConfiguration.get().misc.useDimensionTypeForCustomSpawners && this.registryAccess().registryOrThrow(Registries.DIMENSION_TYPE).getResourceKey(worlddimension.type().value()).orElseThrow() == net.minecraft.world.level.dimension.BuiltinDimensionTypes.OVERWORLD) {
++ if (io.papermc.paper.configuration.GlobalConfiguration.get().misc.useDimensionTypeForCustomSpawners && this.registryAccess().lookupOrThrow(Registries.DIMENSION_TYPE).getResourceKey(worlddimension.type().value()).orElseThrow() == net.minecraft.world.level.dimension.BuiltinDimensionTypes.OVERWORLD) {
+ spawners = list;
+ } else {
+ spawners = Collections.emptyList();
diff --git a/patches/server/0664-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0664-Put-world-into-worldlist-before-initing-the-world.patch
index b1cada3470..1dfaf980a2 100644
--- a/patches/server/0664-Put-world-into-worldlist-before-initing-the-world.patch
+++ b/patches/server/0664-Put-world-into-worldlist-before-initing-the-world.patch
@@ -7,7 +7,7 @@ Some parts of legacy conversion will need the overworld
to get the legacy structure data storage
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 7841421f00a3408e52b8d060674e6a686681210e..cc162b2046c7d39d9a85bcb69fc45e53d15fe5ef 100644
+index 2a92a8a4896a1ce27b3f6e8c5b965c1efb70127e..6567f23cecae8ffc82d14ff34f054182443ce5fb 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -659,9 +659,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0665-Custom-Potion-Mixes.patch b/patches/server/0665-Custom-Potion-Mixes.patch
index 1e7656e306..046bad7ab3 100644
--- a/patches/server/0665-Custom-Potion-Mixes.patch
+++ b/patches/server/0665-Custom-Potion-Mixes.patch
@@ -96,7 +96,7 @@ index 0000000000000000000000000000000000000000..7ea357ac2f3a93db4ebdf24b5072be7d
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index cc162b2046c7d39d9a85bcb69fc45e53d15fe5ef..0b9f4541cc0d0f27e811c1a6798d6758a2687b0c 100644
+index 6567f23cecae8ffc82d14ff34f054182443ce5fb..9765951d0ed653ca5b4ae4903887ec7ef25cb50a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2239,6 +2239,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0680-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0680-fix-player-loottables-running-when-mob-loot-gamerule.patch
index 82df4acd2c..7a7f077e66 100644
--- a/patches/server/0680-fix-player-loottables-running-when-mob-loot-gamerule.patch
+++ b/patches/server/0680-fix-player-loottables-running-when-mob-loot-gamerule.patch
@@ -5,14 +5,14 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index f72ab5e4e743cb0758ebca28e81f97c143c91b42..84f4913c06bf9068a3a4d7400055031c474a4f7e 100644
+index f72ab5e4e743cb0758ebca28e81f97c143c91b42..d723adaa7b1df4a1d5067298536b303992ac2c52 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1218,12 +1218,14 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
}
}
}
-+ if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { // Paper - fix player loottables running when mob loot gamerule is false
++ if (this.shouldDropLoot() && this.serverLevel().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { // Paper - fix player loottables running when mob loot gamerule is false
// SPIGOT-5071: manually add player loot tables (SPIGOT-5195 - ignores keepInventory rule)
this.dropFromLootTable(this.serverLevel(), damageSource, this.lastHurtByPlayerTime > 0);
this.dropCustomDeathLoot(this.serverLevel(), damageSource, flag);
diff --git a/patches/server/0681-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0681-Ensure-entity-passenger-world-matches-ridden-entity.patch
index 941971cf97..6a4d8ee248 100644
--- a/patches/server/0681-Ensure-entity-passenger-world-matches-ridden-entity.patch
+++ b/patches/server/0681-Ensure-entity-passenger-world-matches-ridden-entity.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity
Bad plugins doing this would cause some obvious problems...
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a41bb1d80a84f487a8fb6fdefd7ccc7631902d04..325c8b178dfb39727107190e74663113ebb4ab54 100644
+index 681295efe26a75af61d9ac311e002dfb26ffd8c6..e1da49ec70f03940ce7c0fa23bcbc5cfb2494fc6 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2802,7 +2802,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0694-Add-PlayerStopUsingItemEvent.patch b/patches/server/0694-Add-PlayerStopUsingItemEvent.patch
index fb3326f4c0..c7cab9712f 100644
--- a/patches/server/0694-Add-PlayerStopUsingItemEvent.patch
+++ b/patches/server/0694-Add-PlayerStopUsingItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 6598f119edc5d890dcc9d065478e7c52ac5a5183..682d0399b9b3729d16978eca258c55c2150afec7 100644
+index 0aa7291b3c28c58767fed5f9f01e381b671b5d27..d41c0f1aa501cbe17c88029bafbe034901f6d562 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -4204,6 +4204,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0702-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0702-Prevent-entity-loading-causing-async-lookups.patch
index 342f805e03..ee2ca735fd 100644
--- a/patches/server/0702-Prevent-entity-loading-causing-async-lookups.patch
+++ b/patches/server/0702-Prevent-entity-loading-causing-async-lookups.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 325c8b178dfb39727107190e74663113ebb4ab54..71efd269ea055f13e3ca898bad045448e24f73da 100644
+index e1da49ec70f03940ce7c0fa23bcbc5cfb2494fc6..37111113f6ab6d77c558b10c4162758135db99b0 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -724,6 +724,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0703-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0703-Throw-exception-on-world-create-while-being-ticked.patch
index 1661a4705f..a447e15d32 100644
--- a/patches/server/0703-Throw-exception-on-world-create-while-being-ticked.patch
+++ b/patches/server/0703-Throw-exception-on-world-create-while-being-ticked.patch
@@ -7,7 +7,7 @@ There are no plans to support creating worlds while worlds are
being ticked themselvess.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 0b9f4541cc0d0f27e811c1a6798d6758a2687b0c..2101c0a3b000a60733ceada248c202e2c4783af5 100644
+index 9765951d0ed653ca5b4ae4903887ec7ef25cb50a..8030baa8ef189a17502da9c51baace0b7369137b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -328,6 +328,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0706-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0706-Add-option-for-strict-advancement-dimension-checks.patch
index 142cd3de1f..ca19dca53f 100644
--- a/patches/server/0706-Add-option-for-strict-advancement-dimension-checks.patch
+++ b/patches/server/0706-Add-option-for-strict-advancement-dimension-checks.patch
@@ -24,7 +24,7 @@ index 01b8f7024fbc965bc6a7f97f79ba3dec964ef769..801823d003a8e28a13fe90db4604cd09
} else {
BlockPos blockPos = BlockPos.containing(x, y, z);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 84f4913c06bf9068a3a4d7400055031c474a4f7e..f87f12666d4708b7fb7ede3eff03570fed8d1f40 100644
+index d723adaa7b1df4a1d5067298536b303992ac2c52..312225a15261f2e80fbf6133c75c567574ade181 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1655,6 +1655,12 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
diff --git a/patches/server/0714-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0714-Add-various-missing-EntityDropItemEvent-calls.patch
index a2575070b9..2aee33da05 100644
--- a/patches/server/0714-Add-various-missing-EntityDropItemEvent-calls.patch
+++ b/patches/server/0714-Add-various-missing-EntityDropItemEvent-calls.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 71efd269ea055f13e3ca898bad045448e24f73da..44f585b9dc9e3940193f07a2df1205907b4800ba 100644
+index 37111113f6ab6d77c558b10c4162758135db99b0..911b6391455402922e8bd52cfe9e5694231c81c3 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2672,6 +2672,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -13,11 +13,11 @@ index 71efd269ea055f13e3ca898bad045448e24f73da..44f585b9dc9e3940193f07a2df120590
entityitem.setDefaultPickUpDelay();
+ // Paper start - Call EntityDropItemEvent
-+ return this.spawnAtLocation(entityitem);
++ return this.spawnAtLocation(world, entityitem);
+ }
+ }
+ @Nullable
-+ public ItemEntity spawnAtLocation(ItemEntity entityitem) {
++ public ItemEntity spawnAtLocation(ServerLevel world, ItemEntity entityitem) {
+ {
+ // Paper end - Call EntityDropItemEvent
// CraftBukkit start
diff --git a/patches/server/0717-More-Teleport-API.patch b/patches/server/0717-More-Teleport-API.patch
index 95e3046bb2..2bbaf5b834 100644
--- a/patches/server/0717-More-Teleport-API.patch
+++ b/patches/server/0717-More-Teleport-API.patch
@@ -112,10 +112,10 @@ index 4e6afa243d6108cb946a8a7cf96c4036a3c2ac0c..43786eacc72cdf3bb209d3dfb1808ea9
private final org.bukkit.entity.Entity.Spigot spigot = new org.bukkit.entity.Entity.Spigot()
{
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0bb2a75b2dd3d6d5d7815d3f4b1d8b11b002db62..d2029d88a4d9b060e199431ae092ce87ad5a09de 100644
+index 0bb2a75b2dd3d6d5d7815d3f4b1d8b11b002db62..2514fbae7c87a96c12e44d21ff7df1d2f3243387 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1303,13 +1303,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1303,13 +1303,102 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setRotation(float yaw, float pitch) {
@@ -162,23 +162,24 @@ index 0bb2a75b2dd3d6d5d7815d3f4b1d8b11b002db62..d2029d88a4d9b060e199431ae092ce87
+ };
+ }
+
-+ public static net.minecraft.world.entity.RelativeMovement toNmsRelativeFlag(io.papermc.paper.entity.TeleportFlag.Relative apiFlag) {
++ public static net.minecraft.world.entity.Relative toNmsRelativeFlag(io.papermc.paper.entity.TeleportFlag.Relative apiFlag) {
+ return switch (apiFlag) {
-+ case X -> net.minecraft.world.entity.RelativeMovement.X;
-+ case Y -> net.minecraft.world.entity.RelativeMovement.Y;
-+ case Z -> net.minecraft.world.entity.RelativeMovement.Z;
-+ case PITCH -> net.minecraft.world.entity.RelativeMovement.X_ROT;
-+ case YAW -> net.minecraft.world.entity.RelativeMovement.Y_ROT;
++ case X -> net.minecraft.world.entity.Relative.X;
++ case Y -> net.minecraft.world.entity.Relative.Y;
++ case Z -> net.minecraft.world.entity.Relative.Z;
++ case PITCH -> net.minecraft.world.entity.Relative.X_ROT;
++ case YAW -> net.minecraft.world.entity.Relative.Y_ROT;
+ };
+ }
+
-+ public static io.papermc.paper.entity.TeleportFlag.Relative toApiRelativeFlag(net.minecraft.world.entity.RelativeMovement nmsFlag) {
++ public static io.papermc.paper.entity.TeleportFlag.Relative toApiRelativeFlag(net.minecraft.world.entity.Relative nmsFlag) {
+ return switch (nmsFlag) {
+ case X -> io.papermc.paper.entity.TeleportFlag.Relative.X;
+ case Y -> io.papermc.paper.entity.TeleportFlag.Relative.Y;
+ case Z -> io.papermc.paper.entity.TeleportFlag.Relative.Z;
+ case X_ROT -> io.papermc.paper.entity.TeleportFlag.Relative.PITCH;
+ case Y_ROT -> io.papermc.paper.entity.TeleportFlag.Relative.YAW;
++ default -> throw new RuntimeException("not yet"); // TODO figure out what to do with new flags
+ };
+ }
+
@@ -218,7 +219,7 @@ index 0bb2a75b2dd3d6d5d7815d3f4b1d8b11b002db62..d2029d88a4d9b060e199431ae092ce87
location.checkFinite();
ServerPlayer entity = this.getHandle();
-@@ -1322,7 +1410,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1322,7 +1411,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return false;
}
@@ -227,7 +228,7 @@ index 0bb2a75b2dd3d6d5d7815d3f4b1d8b11b002db62..d2029d88a4d9b060e199431ae092ce87
return false;
}
-@@ -1331,7 +1419,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1331,7 +1420,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// To = Players new Location if Teleport is Successful
Location to = location;
// Create & Call the Teleport Event.
@@ -236,7 +237,7 @@ index 0bb2a75b2dd3d6d5d7815d3f4b1d8b11b002db62..d2029d88a4d9b060e199431ae092ce87
this.server.getPluginManager().callEvent(event);
// Return False to inform the Plugin that the Teleport was unsuccessful/cancelled.
-@@ -1340,7 +1428,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1340,7 +1429,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// If this player is riding another entity, we must dismount before teleporting.
@@ -245,7 +246,7 @@ index 0bb2a75b2dd3d6d5d7815d3f4b1d8b11b002db62..d2029d88a4d9b060e199431ae092ce87
// SPIGOT-5509: Wakeup, similar to riding
if (this.isSleeping()) {
-@@ -1356,13 +1444,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1356,13 +1445,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
ServerLevel toWorld = ((CraftWorld) to.getWorld()).getHandle();
// Close any foreign inventory
@@ -258,7 +259,7 @@ index 0bb2a75b2dd3d6d5d7815d3f4b1d8b11b002db62..d2029d88a4d9b060e199431ae092ce87
if (fromWorld == toWorld) {
- entity.connection.teleport(to);
+ // Paper start - Teleport API
-+ final Set<net.minecraft.world.entity.RelativeMovement> nms = java.util.EnumSet.noneOf(net.minecraft.world.entity.RelativeMovement.class);
++ final Set<net.minecraft.world.entity.Relative> nms = java.util.EnumSet.noneOf(net.minecraft.world.entity.Relative.class);
+ for (final io.papermc.paper.entity.TeleportFlag.Relative bukkit : relativeArguments) {
+ nms.add(toNmsRelativeFlag(bukkit));
+ }
diff --git a/patches/server/0722-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0722-Custom-Chat-Completion-Suggestions-API.patch
index f1b41f3210..7a419b3d74 100644
--- a/patches/server/0722-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/server/0722-Custom-Chat-Completion-Suggestions-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d2029d88a4d9b060e199431ae092ce87ad5a09de..7fd3cb7c69aa212449739f5733de661af662611f 100644
+index 2514fbae7c87a96c12e44d21ff7df1d2f3243387..dc360a7a8a8d23be9d8301a5e6fbff5499c9a947 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -708,6 +708,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0729-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0729-Fix-plugin-loggers-on-server-shutdown.patch
index 6c058f039b..2256a7261e 100644
--- a/patches/server/0729-Fix-plugin-loggers-on-server-shutdown.patch
+++ b/patches/server/0729-Fix-plugin-loggers-on-server-shutdown.patch
@@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 2101c0a3b000a60733ceada248c202e2c4783af5..027d94dd08e7789b51c8779c65d4ddad4e62f21a 100644
+index 8030baa8ef189a17502da9c51baace0b7369137b..7d7e1848e7074a0ec94fe924e328f15cb247c291 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1279,6 +1279,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0730-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0730-Stop-large-look-changes-from-crashing-the-server.patch
index a11ba4737b..7c262a4f87 100644
--- a/patches/server/0730-Stop-large-look-changes-from-crashing-the-server.patch
+++ b/patches/server/0730-Stop-large-look-changes-from-crashing-the-server.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Stop large look changes from crashing the server
Co-authored-by: Jaren Knodel <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 682d0399b9b3729d16978eca258c55c2150afec7..16f349f8ce621c58f36f445016ea25d8af14910d 100644
+index d41c0f1aa501cbe17c88029bafbe034901f6d562..7705c791bfbb386f0b9f326c4b0ee0057ed0e6f5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3272,37 +3272,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0746-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0746-Add-PlayerInventorySlotChangeEvent.patch
index 74685096a5..cca34b90d0 100644
--- a/patches/server/0746-Add-PlayerInventorySlotChangeEvent.patch
+++ b/patches/server/0746-Add-PlayerInventorySlotChangeEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index f87f12666d4708b7fb7ede3eff03570fed8d1f40..bb0aaa16f0de18b15764ba39a781e8b86d690bb9 100644
+index 312225a15261f2e80fbf6133c75c567574ade181..04e3c75c9abfaccb6d2d59d234e5169258b77553 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -381,6 +381,25 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
diff --git a/patches/server/0747-Elder-Guardian-appearance-API.patch b/patches/server/0747-Elder-Guardian-appearance-API.patch
index 75a2208ae0..4a603b81c0 100644
--- a/patches/server/0747-Elder-Guardian-appearance-API.patch
+++ b/patches/server/0747-Elder-Guardian-appearance-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 7fd3cb7c69aa212449739f5733de661af662611f..997a90a7567a90ef357530f9ed5677f0fce4d402 100644
+index dc360a7a8a8d23be9d8301a5e6fbff5499c9a947..74cfa4313c8aba96b792d7855627be68efc41d51 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3325,6 +3325,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3326,6 +3326,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/patches/server/0756-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0756-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
index 45c6c70db5..ff618c7595 100644
--- a/patches/server/0756-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
+++ b/patches/server/0756-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 44f585b9dc9e3940193f07a2df1205907b4800ba..24834be9b5596745f9456488076bd89c3c7d2352 100644
+index 911b6391455402922e8bd52cfe9e5694231c81c3..31cb6c4357afc934a5e6e1a7a9222ac54175459d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3320,6 +3320,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0759-Add-Player-Warden-Warning-API.patch b/patches/server/0759-Add-Player-Warden-Warning-API.patch
index 32eaa6033a..c44c1b1bc3 100644
--- a/patches/server/0759-Add-Player-Warden-Warning-API.patch
+++ b/patches/server/0759-Add-Player-Warden-Warning-API.patch
@@ -10,10 +10,10 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 997a90a7567a90ef357530f9ed5677f0fce4d402..2eafa35e87411ae0b78f445d3d0573ba6e832797 100644
+index 74cfa4313c8aba96b792d7855627be68efc41d51..a000d41fd6b6d9e690ea2a16ac1bd77589b64f14 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3330,6 +3330,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3331,6 +3331,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void showElderGuardian(boolean silent) {
if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F));
}
diff --git a/patches/server/0762-check-global-player-list-where-appropriate.patch b/patches/server/0762-check-global-player-list-where-appropriate.patch
index f64210126b..586cac4e19 100644
--- a/patches/server/0762-check-global-player-list-where-appropriate.patch
+++ b/patches/server/0762-check-global-player-list-where-appropriate.patch
@@ -24,7 +24,7 @@ index 4b2309d27867eddc50093e895503e02184e1b825..3eaeeb3ec715d92fe99e14c37e224cb1
+ // Paper end - check global player list where appropriate
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 16f349f8ce621c58f36f445016ea25d8af14910d..0a52f925b0ef28ca7cee067a40d5dc4d30c224b0 100644
+index 7705c791bfbb386f0b9f326c4b0ee0057ed0e6f5..2c343617f9467bbef03f4d131ce94b1f1a090a80 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3867,7 +3867,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0765-Friction-API.patch b/patches/server/0765-Friction-API.patch
index ff71242367..469868818a 100644
--- a/patches/server/0765-Friction-API.patch
+++ b/patches/server/0765-Friction-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Friction API
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 0a52f925b0ef28ca7cee067a40d5dc4d30c224b0..abcb1065100597f66c9f76fdae5f873fa0d8f315 100644
+index 2c343617f9467bbef03f4d131ce94b1f1a090a80..5520d0cdd5af75a6188a68f809aafb6c5880878a 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -298,6 +298,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0767-Fix-premature-player-kicks-on-shutdown.patch b/patches/server/0767-Fix-premature-player-kicks-on-shutdown.patch
index 0eec1f8900..75bc0623ab 100644
--- a/patches/server/0767-Fix-premature-player-kicks-on-shutdown.patch
+++ b/patches/server/0767-Fix-premature-player-kicks-on-shutdown.patch
@@ -47,7 +47,7 @@ index 4d9f1fc884050993287adfa4578a87da710623fb..a8dfe7a4b3d01bf75587be078f471d1e
this.disconnect((Component) Component.translatable("multiplayer.disconnect.server_shutdown"));
} catch (ClassCastException classcastexception) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 027d94dd08e7789b51c8779c65d4ddad4e62f21a..53c9be615a0f2939cd989e24e304e81e6e27f39d 100644
+index 7d7e1848e7074a0ec94fe924e328f15cb247c291..6cebf229cc5b1eedff45f10db70a4a4f323937b8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2170,7 +2170,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0768-Sync-offhand-slot-in-menus.patch b/patches/server/0768-Sync-offhand-slot-in-menus.patch
index 205292b311..b8a6ce0108 100644
--- a/patches/server/0768-Sync-offhand-slot-in-menus.patch
+++ b/patches/server/0768-Sync-offhand-slot-in-menus.patch
@@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th
by pressing the offhand swap item
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index bb0aaa16f0de18b15764ba39a781e8b86d690bb9..72072332578f6cffea79208442c12178bc68215e 100644
+index 04e3c75c9abfaccb6d2d59d234e5169258b77553..25b1e8bec23465f0e9a17f156bdff7fe716db84c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -350,6 +350,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
diff --git a/patches/server/0769-Player-Entity-Tracking-Events.patch b/patches/server/0769-Player-Entity-Tracking-Events.patch
index ce2439ebdf..c3458e621d 100644
--- a/patches/server/0769-Player-Entity-Tracking-Events.patch
+++ b/patches/server/0769-Player-Entity-Tracking-Events.patch
@@ -21,7 +21,7 @@ index 1a724f9bb6ef82a0b5fdd9ade036d7365167f14b..ec19eb88705a07db45f1a3541571fb7f
} else if (this.seenBy.remove(player.connection)) {
this.serverEntity.removePairing(player);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 24834be9b5596745f9456488076bd89c3c7d2352..c34f98152866945f0c7b7cc45bbc9da6a3ac8f5c 100644
+index 31cb6c4357afc934a5e6e1a7a9222ac54175459d..1f8362f0aeb03921a6876abbc6f83d8c3464bd6a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4069,7 +4069,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0771-fix-Instruments.patch b/patches/server/0771-fix-Instruments.patch
index 194ed300cf..6ac52bdf25 100644
--- a/patches/server/0771-fix-Instruments.patch
+++ b/patches/server/0771-fix-Instruments.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] fix Instruments
properly handle Player#playNote
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 2eafa35e87411ae0b78f445d3d0573ba6e832797..283e7caa8c564bb0455e29f1ee606b6993f3e57c 100644
+index a000d41fd6b6d9e690ea2a16ac1bd77589b64f14..a70db1d658127ed72f82580c1dd743c6c9d5f809 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -785,7 +785,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0776-Improve-PortalEvents.patch b/patches/server/0776-Improve-PortalEvents.patch
index 56e73369b7..6968fe1a35 100644
--- a/patches/server/0776-Improve-PortalEvents.patch
+++ b/patches/server/0776-Improve-PortalEvents.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 72072332578f6cffea79208442c12178bc68215e..1a7d2ade0e85dd5e6cd6c9202e3277cc2fa43d4a 100644
+index 25b1e8bec23465f0e9a17f156bdff7fe716db84c..f05a9fd321a4af28e9771bbf39d73f80dd4160c9 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1561,7 +1561,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
@@ -18,7 +18,7 @@ index 72072332578f6cffea79208442c12178bc68215e..1a7d2ade0e85dd5e6cd6c9202e3277cc
// Paper start - gateway-specific teleport event
if (this.portalProcess != null && this.portalProcess.isSamePortal(((net.minecraft.world.level.block.EndGatewayBlock) net.minecraft.world.level.block.Blocks.END_GATEWAY)) && this.serverLevel().getBlockEntity(this.portalProcess.getEntryPosition()) instanceof net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity theEndGatewayBlockEntity) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index c34f98152866945f0c7b7cc45bbc9da6a3ac8f5c..960b3541140bfe36fda5cdb43e3408bbc9db5fde 100644
+index 1f8362f0aeb03921a6876abbc6f83d8c3464bd6a..1d21914ee8193cee8d7a8273f8e6932697b15c3c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3740,7 +3740,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0780-Flying-Fall-Damage.patch b/patches/server/0780-Flying-Fall-Damage.patch
index 6d32390b03..b16a488ee2 100644
--- a/patches/server/0780-Flying-Fall-Damage.patch
+++ b/patches/server/0780-Flying-Fall-Damage.patch
@@ -26,10 +26,10 @@ index 30e0a5fe3f9bd85d2b702c2c877c5682ed35d461..aca888c2f02b09ac6739bdc81b194c45
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 283e7caa8c564bb0455e29f1ee606b6993f3e57c..d9164eda358b56fe5e3b88e9bc7e23ab39034f0f 100644
+index a70db1d658127ed72f82580c1dd743c6c9d5f809..7029f8c76a18b76ab13e43f2d0ec4f910646caee 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2608,6 +2608,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2609,6 +2609,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().onUpdateAbilities();
}
diff --git a/patches/server/0781-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0781-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
index 7da0a4ef65..98305f38a5 100644
--- a/patches/server/0781-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
+++ b/patches/server/0781-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 960b3541140bfe36fda5cdb43e3408bbc9db5fde..2c959a99376ed479415354c481801643c5f6b1a1 100644
+index 1d21914ee8193cee8d7a8273f8e6932697b15c3c..6c4171aa43afa679946c8d8a08445bf5741aba8e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -968,6 +968,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0784-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0784-Correctly-shrink-items-during-EntityResurrectEvent.patch
index 48eae9b3ec..c14b325882 100644
--- a/patches/server/0784-Correctly-shrink-items-during-EntityResurrectEvent.patch
+++ b/patches/server/0784-Correctly-shrink-items-during-EntityResurrectEvent.patch
@@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem
of undying was found and the event was called uncancelled.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index abcb1065100597f66c9f76fdae5f873fa0d8f315..447fb76a3eb1505b1ef1e1aed8a11239c0124f4f 100644
+index 5520d0cdd5af75a6188a68f809aafb6c5880878a..da42691504177e1e2614db777cbe346f73725eda 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1674,7 +1674,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0785-Win-Screen-API.patch b/patches/server/0785-Win-Screen-API.patch
index f52ebd1415..981c12ddbe 100644
--- a/patches/server/0785-Win-Screen-API.patch
+++ b/patches/server/0785-Win-Screen-API.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API
public net.minecraft.server.level.ServerPlayer seenCredits
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d9164eda358b56fe5e3b88e9bc7e23ab39034f0f..e6a678dee21b51d5f7005c2cf5038089447d0e7c 100644
+index 7029f8c76a18b76ab13e43f2d0ec4f910646caee..e90f477207ca0107e23cb29da0cacf6fed3dcfc4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1322,6 +1322,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0794-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0794-Fix-advancement-triggers-for-entity-damage.patch
index fff5e6ce25..d85577a078 100644
--- a/patches/server/0794-Fix-advancement-triggers-for-entity-damage.patch
+++ b/patches/server/0794-Fix-advancement-triggers-for-entity-damage.patch
@@ -23,7 +23,7 @@ index 821bb93e1b055ba38fafe3b7079d79aa062ebe8a..221d73676fe2fd240a47cf312c1179e0
return !this.getResponse();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 447fb76a3eb1505b1ef1e1aed8a11239c0124f4f..95bbde31de42e1e12d722de86085e59050f1c3ae 100644
+index da42691504177e1e2614db777cbe346f73725eda..a4d24269c1365f32f232116f1530ac75b096c6ab 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2465,7 +2465,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0810-Expand-PlayerItemMendEvent.patch b/patches/server/0810-Expand-PlayerItemMendEvent.patch
index 396bdd4c45..10de3ba9b2 100644
--- a/patches/server/0810-Expand-PlayerItemMendEvent.patch
+++ b/patches/server/0810-Expand-PlayerItemMendEvent.patch
@@ -30,10 +30,10 @@ index 3a7af27bb1ce0cbe56bd3760cd400083daf98d4c..bf0838f574fa3fb9654e087d602b8d38
if (l > 0) {
// this.value = l; // CraftBukkit - update exp value of orb for PlayerItemMendEvent calls // Paper - the value field should not be mutated here because it doesn't take "count" into account
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index e6a678dee21b51d5f7005c2cf5038089447d0e7c..90187f6412a073a3c89da3eb01310e39406bb69c 100644
+index e90f477207ca0107e23cb29da0cacf6fed3dcfc4..de0dc5b37bd0823409974befdd96676b2575cf48 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1880,11 +1880,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1881,11 +1881,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
handle.serverLevel(), itemstack, amount
);
int i = Math.min(possibleDurabilityFromXp, itemstack.getDamageValue());
diff --git a/patches/server/0811-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0811-Refresh-ProjectileSource-for-projectiles.patch
index 7bc80ccda2..1cac178f6b 100644
--- a/patches/server/0811-Refresh-ProjectileSource-for-projectiles.patch
+++ b/patches/server/0811-Refresh-ProjectileSource-for-projectiles.patch
@@ -14,7 +14,7 @@ clearing the owner.
Co-authored-by: Warrior <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 2c959a99376ed479415354c481801643c5f6b1a1..8cdef637f6343119fc77f87e7478ee23e9b8efab 100644
+index 6c4171aa43afa679946c8d8a08445bf5741aba8e..ebd2bf1c16833ea8157bc3e3ef1f5730f646294f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -393,6 +393,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0825-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0825-Don-t-load-chunks-for-supporting-block-checks.patch
index 1feebdd77f..bcb87c4448 100644
--- a/patches/server/0825-Don-t-load-chunks-for-supporting-block-checks.patch
+++ b/patches/server/0825-Don-t-load-chunks-for-supporting-block-checks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 8cdef637f6343119fc77f87e7478ee23e9b8efab..3ef1352030bf1d6f4d2053158caea852552e91a7 100644
+index ebd2bf1c16833ea8157bc3e3ef1f5730f646294f..82d7d0038b269ea310571eb1c109ddd2afac39f7 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1228,7 +1228,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0829-Fix-BanList-API.patch b/patches/server/0829-Fix-BanList-API.patch
index 2621cc9868..58b6ec4b04 100644
--- a/patches/server/0829-Fix-BanList-API.patch
+++ b/patches/server/0829-Fix-BanList-API.patch
@@ -208,10 +208,10 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57
return null;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 90187f6412a073a3c89da3eb01310e39406bb69c..78a12f857db37ec5305d6c14847bc7653669bcc0 100644
+index de0dc5b37bd0823409974befdd96676b2575cf48..642cdf6a205017b9835ad423206617fd3b9a32bf 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1774,23 +1774,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1775,23 +1775,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
@Override
@@ -240,7 +240,7 @@ index 90187f6412a073a3c89da3eb01310e39406bb69c..78a12f857db37ec5305d6c14847bc765
if (kickPlayer) {
this.kickPlayer(reason);
}
-@@ -1798,12 +1798,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1799,12 +1799,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
@Override
diff --git a/patches/server/0837-Folia-scheduler-and-owned-region-API.patch b/patches/server/0837-Folia-scheduler-and-owned-region-API.patch
index e6316ec4c7..b390808ca1 100644
--- a/patches/server/0837-Folia-scheduler-and-owned-region-API.patch
+++ b/patches/server/0837-Folia-scheduler-and-owned-region-API.patch
@@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 53c9be615a0f2939cd989e24e304e81e6e27f39d..f1b1be0caff83720d77454d333abae4613c66e72 100644
+index 6cebf229cc5b1eedff45f10db70a4a4f323937b8..5699863e790bd5f452a37514d1309fbddec0c64a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1654,6 +1654,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1185,7 +1185,7 @@ index 4fe3024e26b56c2d796acf703a1bc200ff309f09..7356a027ae3bca3a9f2056ef6849d5fa
this.players.remove(entityplayer);
this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 3ef1352030bf1d6f4d2053158caea852552e91a7..aeeb90481a9ac0a8ec9e3c5af08a32ca3e32bfb6 100644
+index 82d7d0038b269ea310571eb1c109ddd2afac39f7..d8331b2d4ad3ebebb6ecbbf083f3464dad38f623 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -262,10 +262,21 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0847-Bandaid-fix-for-Effect.patch b/patches/server/0847-Bandaid-fix-for-Effect.patch
index c5be523db0..b3a7db31e6 100644
--- a/patches/server/0847-Bandaid-fix-for-Effect.patch
+++ b/patches/server/0847-Bandaid-fix-for-Effect.patch
@@ -81,7 +81,7 @@ index 03cef3e33de1cf2a1ad4c7a5ba9a65ee3b69ee52..536ad499e893c5b9898fb02582eeca54
// Special case: the axis is optional for ELECTRIC_SPARK
Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 78a12f857db37ec5305d6c14847bc7653669bcc0..3b0d27c6c07ce4bce0b4ab8877d94a937708d2ae 100644
+index 642cdf6a205017b9835ad423206617fd3b9a32bf..ebc0c5c2365cca1f7ca28cc3f6a3f7494134a047 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -934,7 +934,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0855-Add-Listing-API-for-Player.patch b/patches/server/0855-Add-Listing-API-for-Player.patch
index 815bcea717..5090bed698 100644
--- a/patches/server/0855-Add-Listing-API-for-Player.patch
+++ b/patches/server/0855-Add-Listing-API-for-Player.patch
@@ -122,7 +122,7 @@ index 7356a027ae3bca3a9f2056ef6849d5fab38a0df3..a4937d11b79cef41f3fbf79282c0c435
// Paper end - Use single player info update packet on join
player.sentListPacket = true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 3b0d27c6c07ce4bce0b4ab8877d94a937708d2ae..2658c7a0257d7bab26d043626abb9f2310f284e2 100644
+index ebc0c5c2365cca1f7ca28cc3f6a3f7494134a047..7104ffd4dd72a053793eb52c8df29eadbd184221 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -206,6 +206,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -133,7 +133,7 @@ index 3b0d27c6c07ce4bce0b4ab8877d94a937708d2ae..2658c7a0257d7bab26d043626abb9f23
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
private int hash = 0;
private double health = 20;
-@@ -2119,7 +2120,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2120,7 +2121,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
otherPlayer.setUUID(uuidOverride);
}
// Paper end
@@ -142,7 +142,7 @@ index 3b0d27c6c07ce4bce0b4ab8877d94a937708d2ae..2658c7a0257d7bab26d043626abb9f23
if (original != null) otherPlayer.setUUID(original); // Paper - uuid override
}
-@@ -2223,6 +2224,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2224,6 +2225,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (entity != null) ? this.canSee(entity) : false; // If we can't find it, we can't see it
}
diff --git a/patches/server/0858-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0858-Fix-NPE-on-Boat-getStatus.patch
index b241399761..8ec449ba6c 100644
--- a/patches/server/0858-Fix-NPE-on-Boat-getStatus.patch
+++ b/patches/server/0858-Fix-NPE-on-Boat-getStatus.patch
@@ -9,7 +9,7 @@ Boat status is null until the entity is added to the world and the tick() method
public net.minecraft.world.entity.vehicle.Boat getStatus()Lnet/minecraft/world/entity/vehicle/Boat$Status;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
-index 5de1ada561d11c247a597effab1e0aa363b7c90f..412fd9e87ec81cf50cb8bc82fe2dad5dd0029039 100644
+index 5d51a49228eaee94f91cd04843e27c7918ca8796..8e9d382693047ed202e9b7cafb934700fd830827 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
@@ -87,6 +87,17 @@ public abstract class CraftBoat extends CraftVehicle implements Boat {
diff --git a/patches/server/0859-Expand-Pose-API.patch b/patches/server/0859-Expand-Pose-API.patch
index fb6535a3d5..891dd712d6 100644
--- a/patches/server/0859-Expand-Pose-API.patch
+++ b/patches/server/0859-Expand-Pose-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index aeeb90481a9ac0a8ec9e3c5af08a32ca3e32bfb6..a8a5b28d95f7c3ce944f51993dd0c0eb98e3c550 100644
+index d8331b2d4ad3ebebb6ecbbf083f3464dad38f623..63e68376d1854f4f7ff1a1d0a11fcec1b8c3b61a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -427,6 +427,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0865-Implement-OfflinePlayer-isConnected.patch b/patches/server/0865-Implement-OfflinePlayer-isConnected.patch
index 245ae43622..6c7d4f55cc 100644
--- a/patches/server/0865-Implement-OfflinePlayer-isConnected.patch
+++ b/patches/server/0865-Implement-OfflinePlayer-isConnected.patch
@@ -23,7 +23,7 @@ index 2c2c4db31a746b4eb853dc04c6b3e5631bbfa034..4f4e3ee18d586f61706504218cddc06a
public String getName() {
Player player = this.getPlayer();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 2658c7a0257d7bab26d043626abb9f2310f284e2..060f4cade69dbd41e96d1684b4fba34762f5eaa7 100644
+index 7104ffd4dd72a053793eb52c8df29eadbd184221..ea5e3973a4021a4584d3b8b33c9d50001f4c0fe6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -261,6 +261,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0866-Fix-slot-desync.patch b/patches/server/0866-Fix-slot-desync.patch
index b85e196ed6..afdb75279e 100644
--- a/patches/server/0866-Fix-slot-desync.patch
+++ b/patches/server/0866-Fix-slot-desync.patch
@@ -10,7 +10,7 @@ Co-authored-by: Minecrell <[email protected]>
Co-authored-by: Newwind <[email protected]>
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 1a7d2ade0e85dd5e6cd6c9202e3277cc2fa43d4a..37defbc0674e67a26e5a9aebb811310ef12878ee 100644
+index f05a9fd321a4af28e9771bbf39d73f80dd4160c9..90aa8e401e1d092a31ff21699409b8366629cdcc 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -460,6 +460,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
@@ -40,7 +40,7 @@ index d4250cc73bc51c51b78a9392a9879d47dc67f159..182897b4ab9415b7aab0b968274993dd
if (event.isCancelled()) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a8a5b28d95f7c3ce944f51993dd0c0eb98e3c550..ba57deb4e10bba180429cca4d8c864ab869065c7 100644
+index 63e68376d1854f4f7ff1a1d0a11fcec1b8c3b61a..e9142414c7d247ae2a27c0bc9ea2be3bb8e3db16 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2752,8 +2752,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0867-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0867-Add-titleOverride-to-InventoryOpenEvent.patch
index 05e37009fd..1b98c1b4a0 100644
--- a/patches/server/0867-Add-titleOverride-to-InventoryOpenEvent.patch
+++ b/patches/server/0867-Add-titleOverride-to-InventoryOpenEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 37defbc0674e67a26e5a9aebb811310ef12878ee..b0b4bede6f25b8a0de54d954c7010021f87aadc3 100644
+index 90aa8e401e1d092a31ff21699409b8366629cdcc..419fcb4cd97cf10a2601e02024b999a51a0ff952 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1924,12 +1924,17 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
diff --git a/patches/server/0882-Fix-missing-map-initialize-event-call.patch b/patches/server/0882-Fix-missing-map-initialize-event-call.patch
index 099784fcc0..795f551f59 100644
--- a/patches/server/0882-Fix-missing-map-initialize-event-call.patch
+++ b/patches/server/0882-Fix-missing-map-initialize-event-call.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Fix missing map initialize event call
public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 1cb5e107a391ab56942cdb2d1cae7d5646a85ec6..39dba6c2e9de2c1d6716945a49d48d9b76a07c77 100644
+index 1cb5e107a391ab56942cdb2d1cae7d5646a85ec6..7acb24c2a34fdcbcb1c0e3cc03b01996689667d3 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -1726,13 +1726,24 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
+@@ -1726,13 +1726,29 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@Nullable
@Override
public MapItemSavedData getMapData(MapId id) {
@@ -21,22 +21,27 @@ index 1cb5e107a391ab56942cdb2d1cae7d5646a85ec6..39dba6c2e9de2c1d6716945a49d48d9b
+ // Paper start - Call missing map initialize event and set id
+ final DimensionDataStorage storage = this.getServer().overworld().getDataStorage();
+
-+ final net.minecraft.world.level.saveddata.SavedData existing = storage.cache.get(id.key());
-+ if (existing == null && !storage.cache.containsKey(id.key())) {
-+ final MapItemSavedData worldmap = (MapItemSavedData) this.getServer().overworld().getDataStorage().get(MapItemSavedData.factory(), id.key());
-+ storage.cache.put(id.key(), worldmap);
-+ if (worldmap != null) {
++ final Optional<net.minecraft.world.level.saveddata.SavedData> cacheEntry = storage.cache.get(id.key());
++ if (cacheEntry == null) { // Cache did not contain, try to load and may init
++ final MapItemSavedData worldmap = storage.get(MapItemSavedData.factory(), id.key()); // get populates the cache
++ if (worldmap != null) { // map was read, init it and return
+ worldmap.id = id;
+ new MapInitializeEvent(worldmap.mapView).callEvent();
+ return worldmap;
+ }
-+ } else if (existing instanceof MapItemSavedData mapItemSavedData) {
-+ mapItemSavedData.id = id;
++
++ return null; // Map does not exist, reading failed.
}
- return worldmap;
- // CraftBukkit end
+
-+ return existing instanceof MapItemSavedData data ? data : null;
++ // Cache entry exists, update it with the id ref and return.
++ if (cacheEntry.orElse(null) instanceof final MapItemSavedData mapItemSavedData) {
++ mapItemSavedData.id = id;
++ return mapItemSavedData;
++ }
++
++ return null;
+ // Paper end - Call missing map initialize event and set id
}
diff --git a/patches/server/0885-Add-player-idle-duration-API.patch b/patches/server/0885-Add-player-idle-duration-API.patch
index 69a1a77c2f..d715a2ed4a 100644
--- a/patches/server/0885-Add-player-idle-duration-API.patch
+++ b/patches/server/0885-Add-player-idle-duration-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add player idle duration API
Implements API for getting and resetting a player's idle duration.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 060f4cade69dbd41e96d1684b4fba34762f5eaa7..1681653f686133b5d2c0c10c368f86134b295d20 100644
+index ea5e3973a4021a4584d3b8b33c9d50001f4c0fe6..c73089566eccc15aa747e3e3707d089a0f2b8d1d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3446,6 +3446,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3447,6 +3447,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/patches/server/0888-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0888-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
index d52f931c35..fe05ccc109 100644
--- a/patches/server/0888-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
+++ b/patches/server/0888-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 1681653f686133b5d2c0c10c368f86134b295d20..bdc9ac5bee552c1de110d6588d3850a6b3cd5723 100644
+index c73089566eccc15aa747e3e3707d089a0f2b8d1d..74b90ee971ec799cf19551ac63a9b01f77500967 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1144,7 +1144,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0891-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0891-Add-predicate-for-blocks-when-raytracing.patch
index bd4cb684e6..438ccfb267 100644
--- a/patches/server/0891-Add-predicate-for-blocks-when-raytracing.patch
+++ b/patches/server/0891-Add-predicate-for-blocks-when-raytracing.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add predicate for blocks when raytracing
diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java
-index cc9ae2122b563d7b583c7335d0a8ce227f9b1af4..d00ebcd6fccbf1d1efe83604ed86d317119be5f8 100644
+index 7e1a332168357b9af14dbe3299549c2c93903fa6..93738c7dea1ea3d19013a47380391274612a719b 100644
--- a/src/main/java/net/minecraft/world/level/BlockGetter.java
+++ b/src/main/java/net/minecraft/world/level/BlockGetter.java
@@ -71,6 +71,12 @@ public interface BlockGetter extends LevelHeightAccessor {
@@ -22,7 +22,7 @@ index cc9ae2122b563d7b583c7335d0a8ce227f9b1af4..d00ebcd6fccbf1d1efe83604ed86d317
BlockState iblockdata = this.getBlockStateIfLoaded(blockposition);
if (iblockdata == null) {
@@ -80,7 +86,7 @@ public interface BlockGetter extends LevelHeightAccessor {
- return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo()));
+ return BlockHitResult.miss(raytrace1.getTo(), Direction.getApproximateNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo()));
}
// Paper end - Prevent raytrace from loading chunks
- if (iblockdata.isAir()) return null; // Paper - Perf: optimise air cases
diff --git a/patches/server/0892-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0892-Broadcast-take-item-packets-with-collector-as-source.patch
index 1e33c1acff..03d6650dc1 100644
--- a/patches/server/0892-Broadcast-take-item-packets-with-collector-as-source.patch
+++ b/patches/server/0892-Broadcast-take-item-packets-with-collector-as-source.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source
This fixes players (which can't view the collector) seeing item pickups with themselves as the target.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 95bbde31de42e1e12d722de86085e59050f1c3ae..c0646a4c023a34d4ca516390d748d29d7b9c265b 100644
+index a4d24269c1365f32f232116f1530ac75b096c6ab..30424789ba1c8d25f830145501b4a7399b91f2d1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3893,7 +3893,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0900-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0900-Don-t-fire-sync-events-during-worldgen.patch
index 3146ea0138..53a3932e6f 100644
--- a/patches/server/0900-Don-t-fire-sync-events-during-worldgen.patch
+++ b/patches/server/0900-Don-t-fire-sync-events-during-worldgen.patch
@@ -19,7 +19,7 @@ where generation happened directly to a ServerLevel and the
entity still has the flag set.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 39dba6c2e9de2c1d6716945a49d48d9b76a07c77..e3df141a2a49f10e83fe132514a9b1d969cc4417 100644
+index 7acb24c2a34fdcbcb1c0e3cc03b01996689667d3..7a713fd31a2155b1c77c54817a67e354b1d4640d 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1219,6 +1219,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -31,7 +31,7 @@ index 39dba6c2e9de2c1d6716945a49d48d9b76a07c77..e3df141a2a49f10e83fe132514a9b1d9
if (entity.valid) {
MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable());
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index ba57deb4e10bba180429cca4d8c864ab869065c7..1fb29f2c5e55d77eb5d04d423cf9f38a6e7d9f4c 100644
+index e9142414c7d247ae2a27c0bc9ea2be3bb8e3db16..1d66c35b1092b8101f0a803d8c087e5a958875b1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -631,7 +631,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -68,7 +68,7 @@ index 6b2f0a4bc911888b72b796099760af38b1e28656..4eec58353343b414120e189afed04b98
}, () -> {
EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id"));
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index c0646a4c023a34d4ca516390d748d29d7b9c265b..d37e6651b7be89b14ed5781e1a72fc1b8f50c103 100644
+index 30424789ba1c8d25f830145501b4a7399b91f2d1..9bc6ed9fd8e5154d39fe12ffed1ecd5ec8e70df8 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1161,6 +1161,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0903-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0903-Restore-vanilla-entity-drops-behavior.patch
index ae2eeec552..0eede4fd44 100644
--- a/patches/server/0903-Restore-vanilla-entity-drops-behavior.patch
+++ b/patches/server/0903-Restore-vanilla-entity-drops-behavior.patch
@@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped
items like CB does.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index b0b4bede6f25b8a0de54d954c7010021f87aadc3..52b18f2c333b7535929bb4e52e65cf5fb0f5692f 100644
+index 419fcb4cd97cf10a2601e02024b999a51a0ff952..df21cd1bd2a3dda7169edbea18bbfdf043db76f8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1235,20 +1235,20 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
@@ -28,7 +28,7 @@ index b0b4bede6f25b8a0de54d954c7010021f87aadc3..52b18f2c333b7535929bb4e52e65cf5f
}
}
}
- if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { // Paper - fix player loottables running when mob loot gamerule is false
+ if (this.shouldDropLoot() && this.serverLevel().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { // Paper - fix player loottables running when mob loot gamerule is false
// SPIGOT-5071: manually add player loot tables (SPIGOT-5195 - ignores keepInventory rule)
this.dropFromLootTable(this.serverLevel(), damageSource, this.lastHurtByPlayerTime > 0);
- this.dropCustomDeathLoot(this.serverLevel(), damageSource, flag);
@@ -37,7 +37,7 @@ index b0b4bede6f25b8a0de54d954c7010021f87aadc3..52b18f2c333b7535929bb4e52e65cf5f
loot.addAll(this.drops);
this.drops.clear(); // SPIGOT-5188: make sure to clear
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 1fb29f2c5e55d77eb5d04d423cf9f38a6e7d9f4c..0223f2e282a85882645f4ed52891c566a268f37b 100644
+index 1d66c35b1092b8101f0a803d8c087e5a958875b1..aac1d620bf4cd1f18243f8c53cd32ab16fdeb616 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2678,19 +2678,45 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -86,10 +86,10 @@ index 1fb29f2c5e55d77eb5d04d423cf9f38a6e7d9f4c..0223f2e282a85882645f4ed52891c566
- entityitem.setDefaultPickUpDelay();
+ entityitem.setDefaultPickUpDelay(); // Paper - diff on change (in dropConsumer)
// Paper start - Call EntityDropItemEvent
- return this.spawnAtLocation(entityitem);
+ return this.spawnAtLocation(world, entityitem);
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index d37e6651b7be89b14ed5781e1a72fc1b8f50c103..0fcc5ed28b2371a62be57d7ea62f2e3dfedcf735 100644
+index 9bc6ed9fd8e5154d39fe12ffed1ecd5ec8e70df8..4b9108e48d052919bca000ddb54f9bf4589c33e6 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -291,7 +291,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0907-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0907-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
index 0a3dc9f139..8082b201b8 100644
--- a/patches/server/0907-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
+++ b/patches/server/0907-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
@@ -26,7 +26,7 @@ index c6dcc37ac5fcf50bcb246f533b99983dfc5c19c2..c13b6f14c3061710c2b27034db240cc9
d3 = to.getX();
d4 = to.getY();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 0fcc5ed28b2371a62be57d7ea62f2e3dfedcf735..f42a98324ecfc992cf36c2f44cdb781ad4edbad4 100644
+index 4b9108e48d052919bca000ddb54f9bf4589c33e6..1c4ec3857c5c3ecf58f842292c280a4a1f00a04c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -4365,7 +4365,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0908-Add-experience-points-API.patch b/patches/server/0908-Add-experience-points-API.patch
index 0ab86e2d01..9111f82b8f 100644
--- a/patches/server/0908-Add-experience-points-API.patch
+++ b/patches/server/0908-Add-experience-points-API.patch
@@ -18,10 +18,10 @@ index aca888c2f02b09ac6739bdc81b194c4527dd69f5..a19a795deaa7f46c92b97912e2ade006
// Paper start - send while respecting visibility
private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index bdc9ac5bee552c1de110d6588d3850a6b3cd5723..d5d30252241d5051b038cf4f487e956afd554ee0 100644
+index 74b90ee971ec799cf19551ac63a9b01f77500967..a807f37a4b937fc3a1d89cb5d116224c9b3c5f49 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1948,6 +1948,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1949,6 +1949,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
Preconditions.checkArgument(exp >= 0, "Total experience points must not be negative (%s)", exp);
this.getHandle().totalExperience = exp;
}
diff --git a/patches/server/0911-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0911-Validate-ResourceLocation-in-NBT-reading.patch
index e0dee7a8de..05754abc5d 100644
--- a/patches/server/0911-Validate-ResourceLocation-in-NBT-reading.patch
+++ b/patches/server/0911-Validate-ResourceLocation-in-NBT-reading.patch
@@ -85,7 +85,7 @@ index 1a6448cccf79a94013f9f44c3067d91da3da1f7e..06af888e4c3d9d01a462b487742b5971
if (nbt.contains("leash", 11)) {
Either<UUID, BlockPos> either = (Either) NbtUtils.readBlockPos(nbt, "leash").map(Either::right).orElse(null); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f42a98324ecfc992cf36c2f44cdb781ad4edbad4..a7f0d49637eb72b4645997a97cc6927b16a59738 100644
+index 1c4ec3857c5c3ecf58f842292c280a4a1f00a04c..7196340fefd95845f290329faef489f2b2626ecb 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -911,11 +911,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0926-Add-BlockBreakProgressUpdateEvent.patch b/patches/server/0926-Add-BlockBreakProgressUpdateEvent.patch
index 7d82cc97af..81399fe283 100644
--- a/patches/server/0926-Add-BlockBreakProgressUpdateEvent.patch
+++ b/patches/server/0926-Add-BlockBreakProgressUpdateEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockBreakProgressUpdateEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index e3df141a2a49f10e83fe132514a9b1d969cc4417..3f0e5bd457e3231d84b9d14396d8d8859989f3f4 100644
+index 7a713fd31a2155b1c77c54817a67e354b1d4640d..942eb8c1ef575de53b1591b39014a39edb054a1f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1315,6 +1315,17 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
diff --git a/patches/server/0930-Add-onboarding-message-for-initial-server-start.patch b/patches/server/0930-Add-onboarding-message-for-initial-server-start.patch
index f6da9e5a3d..dd0167082e 100644
--- a/patches/server/0930-Add-onboarding-message-for-initial-server-start.patch
+++ b/patches/server/0930-Add-onboarding-message-for-initial-server-start.patch
@@ -29,7 +29,7 @@ index 73e8a524925ed6f2580d3bd01616646fabafda78..450a1cc8f1624dce2daf52210d017e07
return instance;
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index f1b1be0caff83720d77454d333abae4613c66e72..f575c0042f67c70df0ddb1d1db68e0138cf0b534 100644
+index 5699863e790bd5f452a37514d1309fbddec0c64a..2168b8d29e1a53460ab83189ed457d38990c5c89 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1151,6 +1151,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0931-Configurable-max-block-fluid-ticks.patch b/patches/server/0931-Configurable-max-block-fluid-ticks.patch
index fb32df7e79..4699e81a98 100644
--- a/patches/server/0931-Configurable-max-block-fluid-ticks.patch
+++ b/patches/server/0931-Configurable-max-block-fluid-ticks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable max block/fluid ticks
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 3f0e5bd457e3231d84b9d14396d8d8859989f3f4..2aa4437a76d29cdd793680734a36a41c6133ab91 100644
+index 942eb8c1ef575de53b1591b39014a39edb054a1f..46a678ad3487d92e4c63731457bb4a421c2f07c2 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -492,9 +492,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
diff --git a/patches/server/0935-Fix-DamageSource-API.patch b/patches/server/0935-Fix-DamageSource-API.patch
index 970ceada20..306d0de492 100644
--- a/patches/server/0935-Fix-DamageSource-API.patch
+++ b/patches/server/0935-Fix-DamageSource-API.patch
@@ -84,7 +84,7 @@ index fddbdb7322a2063996a28c5c3d93c265188b1256..be87cb3cfa15a7d889118cdc4b87232e
public DamageSource sonicBoom(Entity attacker) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 0223f2e282a85882645f4ed52891c566a268f37b..3d4bb855dec45685d6e336d913903341f0ca4a11 100644
+index aac1d620bf4cd1f18243f8c53cd32ab16fdeb616..5c0d64c70a94d20ff0e72aed490ef2973eb7ea74 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3388,7 +3388,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0946-Fix-shield-disable-inconsistency.patch b/patches/server/0946-Fix-shield-disable-inconsistency.patch
index 79d8304020..8d372bca9d 100644
--- a/patches/server/0946-Fix-shield-disable-inconsistency.patch
+++ b/patches/server/0946-Fix-shield-disable-inconsistency.patch
@@ -8,7 +8,7 @@ it will not disable the shield if the attacker is holding
an axe item.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index a7f0d49637eb72b4645997a97cc6927b16a59738..1b9f03dcf63c44c11e79022cb6cce5f6bd1ea30a 100644
+index 7196340fefd95845f290329faef489f2b2626ecb..b33dd288065b665e6feb642d090de1fd6e725448 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2426,7 +2426,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0950-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch b/patches/server/0950-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
index b4178f2bef..e31dca1bf5 100644
--- a/patches/server/0950-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
+++ b/patches/server/0950-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Revert to vanilla handling of LivingEntity#actuallyHurt
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 1b9f03dcf63c44c11e79022cb6cce5f6bd1ea30a..6f9c4a5a87bdfb8ce32ce40c4a34997695d15ce3 100644
+index b33dd288065b665e6feb642d090de1fd6e725448..0cb9de4ff9ba0611a3bfc444088accb07ee19252 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1457,7 +1457,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0953-Added-API-to-get-player-ha-proxy-address.patch b/patches/server/0953-Added-API-to-get-player-ha-proxy-address.patch
index e71ca83a36..c194f40ac8 100644
--- a/patches/server/0953-Added-API-to-get-player-ha-proxy-address.patch
+++ b/patches/server/0953-Added-API-to-get-player-ha-proxy-address.patch
@@ -35,7 +35,7 @@ index c62df32af11636ad408b584fcc590590ce4fb0d0..baed0bb80d44973f9323bbe536551182
} else {
super.channelRead(ctx, msg);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d5d30252241d5051b038cf4f487e956afd554ee0..8d16575c74b81ada4e4efe70e8f077f07cd0a3f0 100644
+index a807f37a4b937fc3a1d89cb5d116224c9b3c5f49..cd8c2a9bff2d207c385b7d4ffb889c1f560a5227 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -270,7 +270,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0957-Brigadier-based-command-API.patch b/patches/server/0957-Brigadier-based-command-API.patch
index 86df1cfd97..833127a346 100644
--- a/patches/server/0957-Brigadier-based-command-API.patch
+++ b/patches/server/0957-Brigadier-based-command-API.patch
@@ -2228,7 +2228,7 @@ index 55484826fc5ddd04ae024e25a0251796d7fa9c28..237e4f7b24908e9ade9a483eb7ae05fa
Component component = message.resolveComponent(commandSourceStack);
CommandSigningContext commandSigningContext = commandSourceStack.getSigningContext();
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index f575c0042f67c70df0ddb1d1db68e0138cf0b534..21660e4284cfabb333a3edf9224c892ef80b2403 100644
+index 2168b8d29e1a53460ab83189ed457d38990c5c89..9af0bf5e15a788b74ebbea661597c731d16e290b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -317,7 +317,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0961-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0961-Prevent-sending-oversized-item-data-in-equipment-and.patch
index b49ee289c2..2453902d30 100644
--- a/patches/server/0961-Prevent-sending-oversized-item-data-in-equipment-and.patch
+++ b/patches/server/0961-Prevent-sending-oversized-item-data-in-equipment-and.patch
@@ -222,7 +222,7 @@ index 4ac4ab815edf34e8037e9f16ec2f8d29b1f2cabd..93451a4cfc71ba00610c13011b73905e
ServerGamePacketListenerImpl.this.player.containerMenu.sendAllDataToRemote(); // Paper - fix slot desync - always refresh player inventory
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 6f9c4a5a87bdfb8ce32ce40c4a34997695d15ce3..5a992419f9847480ca6e431b5402d99ac411c15e 100644
+index 0cb9de4ff9ba0611a3bfc444088accb07ee19252..6fa442fe4cf585f7056bedcfbd384e15da90f613 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3462,7 +3462,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0971-Configurable-damage-tick-when-blocking-with-shield.patch b/patches/server/0971-Configurable-damage-tick-when-blocking-with-shield.patch
index 0c36cdb62d..33e21b4cb1 100644
--- a/patches/server/0971-Configurable-damage-tick-when-blocking-with-shield.patch
+++ b/patches/server/0971-Configurable-damage-tick-when-blocking-with-shield.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable damage tick when blocking with shield
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 5a992419f9847480ca6e431b5402d99ac411c15e..6195b207159c638e98a33c3142ed6b0720c8e14d 100644
+index 6fa442fe4cf585f7056bedcfbd384e15da90f613..4f6a9c9a1a9fa0f98ee2c3bfdc4c5b3202c5cdd0 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2488,7 +2488,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0973-disable-forced-empty-world-ticks.patch b/patches/server/0973-disable-forced-empty-world-ticks.patch
index ff511523c5..cf5993dc22 100644
--- a/patches/server/0973-disable-forced-empty-world-ticks.patch
+++ b/patches/server/0973-disable-forced-empty-world-ticks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] disable forced empty world ticks
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 2aa4437a76d29cdd793680734a36a41c6133ab91..03b07f36b32ad8239f82a9536a4c1b08ed12e9ca 100644
+index 46a678ad3487d92e4c63731457bb4a421c2f07c2..86d6a01f94b5140932eb86b9523c6e3e43864a09 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -519,7 +519,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
diff --git a/patches/server/0975-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0975-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
index cc490d0a63..009447d681 100644
--- a/patches/server/0975-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
+++ b/patches/server/0975-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
@@ -13,10 +13,10 @@ custom renderers are in use, defaulting to the much simpler Vanilla system.
Additionally, numerous issues to player position tracking on maps has been fixed.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 03b07f36b32ad8239f82a9536a4c1b08ed12e9ca..e3085b4d106d5985078ab3820dd12bdb58ab5889 100644
+index 86d6a01f94b5140932eb86b9523c6e3e43864a09..bbfe17233d23bbb787656ebedc92fdd2de56daed 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -2358,6 +2358,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
+@@ -2363,6 +2363,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
{
if ( iter.next().player == entity )
{
@@ -25,7 +25,7 @@ index 03b07f36b32ad8239f82a9536a4c1b08ed12e9ca..e3085b4d106d5985078ab3820dd12bdb
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 52b18f2c333b7535929bb4e52e65cf5fb0f5692f..b0cec2132c21abac64420e0d9a23b5346dfd9ee4 100644
+index df21cd1bd2a3dda7169edbea18bbfdf043db76f8..b6b8687fc79c060cd65e04dc67c855c775ab7684 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2811,6 +2811,14 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
@@ -33,7 +33,7 @@ index 52b18f2c333b7535929bb4e52e65cf5fb0f5692f..b0cec2132c21abac64420e0d9a23b534
}
+ // Paper start - remove player from map on drop
-+ if (itemstack.getItem() == Items.FILLED_MAP) {
++ if (itemstack.getItem() == net.minecraft.world.item.Items.FILLED_MAP) {
+ net.minecraft.world.level.saveddata.maps.MapItemSavedData worldmap = net.minecraft.world.item.MapItem.getSavedData(itemstack, this.level());
+ if (worldmap != null) {
+ worldmap.tickCarriedBy(this, itemstack);
diff --git a/patches/server/0979-Entity-Activation-Range-2.0.patch b/patches/server/0979-Entity-Activation-Range-2.0.patch
index b84ed217bd..f340e669a8 100644
--- a/patches/server/0979-Entity-Activation-Range-2.0.patch
+++ b/patches/server/0979-Entity-Activation-Range-2.0.patch
@@ -17,7 +17,7 @@ Adds villagers as separate config
public net.minecraft.world.entity.Entity isInsidePortal
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index e3085b4d106d5985078ab3820dd12bdb58ab5889..104827e5ca729d7d2f1ad4bda3a5b87fbb939db5 100644
+index bbfe17233d23bbb787656ebedc92fdd2de56daed..3fb8370abd10bb702b969c43490c79352b0242df 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2,7 +2,6 @@ package net.minecraft.server.level;
@@ -105,7 +105,7 @@ index e3085b4d106d5985078ab3820dd12bdb58ab5889..104827e5ca729d7d2f1ad4bda3a5b87f
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 3d4bb855dec45685d6e336d913903341f0ca4a11..f4b1a773bf809bde8cea919a418700f3d6850389 100644
+index 5c0d64c70a94d20ff0e72aed490ef2973eb7ea74..996506b879c90642eaeac757b31f3e11e798a6b5 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -420,6 +420,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0980-Anti-Xray.patch b/patches/server/0980-Anti-Xray.patch
index ffd46a42f8..289be7a785 100644
--- a/patches/server/0980-Anti-Xray.patch
+++ b/patches/server/0980-Anti-Xray.patch
@@ -1104,7 +1104,7 @@ index 183b2191fa1c1b27adedf39593e1b5a223fb1279..8ead66c134688b11dca15f6509147e72
private ClientboundLevelChunkWithLightPacket(RegistryFriendlyByteBuf buf) {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 104827e5ca729d7d2f1ad4bda3a5b87fbb939db5..9a7ac16914bd22a7ca0aaedd2a3ce1576ad2e09c 100644
+index 3fb8370abd10bb702b969c43490c79352b0242df..c17824fa01c4682c2b97bb60bfa401a1a2ef9c12 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -344,7 +344,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
diff --git a/patches/server/0982-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0982-Optimize-Collision-to-not-load-chunks.patch
index 507c4c69ee..0b3dc78934 100644
--- a/patches/server/0982-Optimize-Collision-to-not-load-chunks.patch
+++ b/patches/server/0982-Optimize-Collision-to-not-load-chunks.patch
@@ -26,7 +26,7 @@ index cde19fddfc9b1c8edbc565bec4f043803651313e..4b9761e58f404eedf9db835fc923a88f
if (teleporttransition.missingRespawnBlock()) {
entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F));
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index f4b1a773bf809bde8cea919a418700f3d6850389..ea7100c8ac5da730d55136ac2ab608c2a7ac0ba8 100644
+index 996506b879c90642eaeac757b31f3e11e798a6b5..87136591e2a8421b46e124b0093c56da87aec61b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -258,6 +258,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
diff --git a/patches/server/0984-Optimize-Hoppers.patch b/patches/server/0984-Optimize-Hoppers.patch
index d3f48217fc..3b4454545d 100644
--- a/patches/server/0984-Optimize-Hoppers.patch
+++ b/patches/server/0984-Optimize-Hoppers.patch
@@ -50,7 +50,7 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 21660e4284cfabb333a3edf9224c892ef80b2403..dcf046dd1eb8c2b724c971c4adf4462895183f0a 100644
+index 9af0bf5e15a788b74ebbea661597c731d16e290b..1496bc9fa6fe8b5f3b426f4a70550bb66879dfcc 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1724,6 +1724,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0991-Check-distance-in-entity-interactions.patch b/patches/server/0991-Check-distance-in-entity-interactions.patch
index d628cdfbc0..d142b760dd 100644
--- a/patches/server/0991-Check-distance-in-entity-interactions.patch
+++ b/patches/server/0991-Check-distance-in-entity-interactions.patch
@@ -17,7 +17,7 @@ index 60e523f4de1cbafc2c58a5d568fe3989b7b07c34..dd2037fe9389765f79330036ec7fa3c5
};
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 6195b207159c638e98a33c3142ed6b0720c8e14d..f12c59d3bb15f482969cc9d0d2aff0718972675b 100644
+index 4f6a9c9a1a9fa0f98ee2c3bfdc4c5b3202c5cdd0..52ca53b4795981080476fa9425e01f2c804ae6b7 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1469,7 +1469,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0993-Properly-resend-entities.patch b/patches/server/0993-Properly-resend-entities.patch
index fa471e2cf6..82b6444c65 100644
--- a/patches/server/0993-Properly-resend-entities.patch
+++ b/patches/server/0993-Properly-resend-entities.patch
@@ -134,7 +134,7 @@ index 4b9761e58f404eedf9db835fc923a88fc1896e96..682b8926027945066921086b6773b31e
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index ea7100c8ac5da730d55136ac2ab608c2a7ac0ba8..4f0ff0d333d2de1b4f6beac1ce25e214b971e387 100644
+index 87136591e2a8421b46e124b0093c56da87aec61b..7784ff17216a25c6dbf26648831c04734300dad1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -598,13 +598,45 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -186,7 +186,7 @@ index ea7100c8ac5da730d55136ac2ab608c2a7ac0ba8..4f0ff0d333d2de1b4f6beac1ce25e214
public boolean equals(Object object) {
return object instanceof Entity ? ((Entity) object).id == this.id : false;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f12c59d3bb15f482969cc9d0d2aff0718972675b..f75b66c9ec786bc6f4d3f5cd5127c815f11166c4 100644
+index 52ca53b4795981080476fa9425e01f2c804ae6b7..ed84f06d64afb117e08e8c8b54e992c0159a4a77 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -4031,6 +4031,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/1002-Only-call-EntityDamageEvents-before-actuallyHurt.patch b/patches/server/1002-Only-call-EntityDamageEvents-before-actuallyHurt.patch
index 8c259f8cbf..fb40d00f9a 100644
--- a/patches/server/1002-Only-call-EntityDamageEvents-before-actuallyHurt.patch
+++ b/patches/server/1002-Only-call-EntityDamageEvents-before-actuallyHurt.patch
@@ -12,7 +12,7 @@ This patch moves the invocation directly before the #actuallyHurt calls,
respective invulnerable timings.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f75b66c9ec786bc6f4d3f5cd5127c815f11166c4..b4d1848858fae20f81c27b31bc0c280c6705f082 100644
+index ed84f06d64afb117e08e8c8b54e992c0159a4a77..ab9eec00c8c7d4b9501c6c860065909263da0b10 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1491,12 +1491,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/1012-Leashable-API.patch b/patches/server/1012-Leashable-API.patch
index 20fc6fbdca..d54784d18c 100644
--- a/patches/server/1012-Leashable-API.patch
+++ b/patches/server/1012-Leashable-API.patch
@@ -61,7 +61,7 @@ index 0000000000000000000000000000000000000000..a9ddf9a4a07cd29833f38d7e5f42b2b1
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
-index 412fd9e87ec81cf50cb8bc82fe2dad5dd0029039..9046d6fa36b9f5e5d25835ad8d94c869c0764060 100644
+index 8e9d382693047ed202e9b7cafb934700fd830827..2173963bbbb4c76b89996c857a36d81d8b2d79ea 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
@@ -8,7 +8,7 @@ import org.bukkit.craftbukkit.CraftServer;
diff --git a/patches/server/1018-Fix-InventoryOpenEvent-cancellation.patch b/patches/server/1018-Fix-InventoryOpenEvent-cancellation.patch
index b71c2bb1aa..22702eee54 100644
--- a/patches/server/1018-Fix-InventoryOpenEvent-cancellation.patch
+++ b/patches/server/1018-Fix-InventoryOpenEvent-cancellation.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix InventoryOpenEvent cancellation
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index b0cec2132c21abac64420e0d9a23b5346dfd9ee4..c1870b953e22922762015cb8d7f71a2b7f004299 100644
+index b6b8687fc79c060cd65e04dc67c855c775ab7684..e2527f3e2b96df539c765ae23c83a09d3298d430 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1942,6 +1942,10 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
diff --git a/patches/server/1020-Check-dead-flag-in-isAlive.patch b/patches/server/1020-Check-dead-flag-in-isAlive.patch
index c58a1f41f8..2136c68a7a 100644
--- a/patches/server/1020-Check-dead-flag-in-isAlive.patch
+++ b/patches/server/1020-Check-dead-flag-in-isAlive.patch
@@ -15,7 +15,7 @@ Also, even if the plugin is responsibly checking !isDead() before modifying heal
I am currently unable to replicate, these "revived" entities can still appear
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index b4d1848858fae20f81c27b31bc0c280c6705f082..f57c830a7286eb8cab1061c8ddebe6abab1fcced 100644
+index ab9eec00c8c7d4b9501c6c860065909263da0b10..6db0613904c172fb6ae7e868f542f56aeaa63a5e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2147,7 +2147,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/1022-Tag-Lifecycle-Events.patch b/patches/server/1022-Tag-Lifecycle-Events.patch
index 5df52ccc9d..76da259a17 100644
--- a/patches/server/1022-Tag-Lifecycle-Events.patch
+++ b/patches/server/1022-Tag-Lifecycle-Events.patch
@@ -474,7 +474,7 @@ index f2236665eaf3e6d0f9d44605db3cd5afe0cced4e..28d809a0e2fccd15a09bc6b55ca02452
static <E> void loadContentsFromNetwork(
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index dcf046dd1eb8c2b724c971c4adf4462895183f0a..448961d7bd80e7e84959866906e6a4e3ac9ab4f7 100644
+index 1496bc9fa6fe8b5f3b426f4a70550bb66879dfcc..7dade9a2c0efac0bfb7208f70b16e4e440deebec 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2251,7 +2251,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/1029-Improve-entity-effect-API.patch b/patches/server/1029-Improve-entity-effect-API.patch
index b00b24e762..3accb2cf6d 100644
--- a/patches/server/1029-Improve-entity-effect-API.patch
+++ b/patches/server/1029-Improve-entity-effect-API.patch
@@ -25,7 +25,7 @@ index ca95a36b0149d4b8a67c3b42316c5d9d0415f5dd..64c6f54cc4d0c22bc972b808cb92925c
+ // Paper end - broadcast hurt animation
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8d16575c74b81ada4e4efe70e8f077f07cd0a3f0..852cadccfbd22d535f26ac781aea2fe99686947e 100644
+index cd8c2a9bff2d207c385b7d4ffb889c1f560a5227..d6c3c497a43694988c5e05c0ef04efa5a3c1630c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1294,6 +1294,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -49,7 +49,7 @@ index 8d16575c74b81ada4e4efe70e8f077f07cd0a3f0..852cadccfbd22d535f26ac781aea2fe9
}
@Override
-@@ -3545,4 +3550,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3546,4 +3551,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSendViewDistance(final int viewDistance) {
throw new UnsupportedOperationException("Not implemented yet");
}
diff --git a/patches/server/1033-Void-damage-configuration-API.patch b/patches/server/1033-Void-damage-configuration-API.patch
index 7724fc5786..c1c867f332 100644
--- a/patches/server/1033-Void-damage-configuration-API.patch
+++ b/patches/server/1033-Void-damage-configuration-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Void damage configuration API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4f0ff0d333d2de1b4f6beac1ce25e214b971e387..2cf9490a116d70c00f00d41005b78d5b510f2162 100644
+index 7784ff17216a25c6dbf26648831c04734300dad1..faa239dcb9b7b608911b464c3665c8b064ee6c41 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -853,8 +853,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -20,7 +20,7 @@ index 4f0ff0d333d2de1b4f6beac1ce25e214b971e387..2cf9490a116d70c00f00d41005b78d5b
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end - Configurable nether ceiling damage
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f57c830a7286eb8cab1061c8ddebe6abab1fcced..ed624f54bbd7f9fd5a1ddc12a856f41f03571ac9 100644
+index 6db0613904c172fb6ae7e868f542f56aeaa63a5e..22b3d3d945cbddae25abfca7d900324c79d32293 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2702,7 +2702,7 @@ public abstract class LivingEntity extends Entity implements Attackable {