diff options
Diffstat (limited to 'patches/server/0350-Fix-items-vanishing-through-end-portal.patch')
-rw-r--r-- | patches/server/0350-Fix-items-vanishing-through-end-portal.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/patches/server/0350-Fix-items-vanishing-through-end-portal.patch b/patches/server/0350-Fix-items-vanishing-through-end-portal.patch new file mode 100644 index 0000000000..d3fd369c6d --- /dev/null +++ b/patches/server/0350-Fix-items-vanishing-through-end-portal.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: AJMFactsheets <[email protected]> +Date: Wed, 22 Jan 2020 19:52:28 -0600 +Subject: [PATCH] Fix items vanishing through end portal + +If the Paper configuration option "keep-spawn-loaded" is set to false, +items entering the overworld from the end will spawn at Y = 0. + +This is due to logic in the getHighestBlockYAt method in World.java +only searching the heightmap if the chunk is loaded. + +Quickly loading the exact world spawn chunk before searching the +heightmap resolves the issue without having to load all spawn chunks. + +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index c5b1d2e4b577a3f4ad352dc6a8436c04411efa8b..1b546c979d7ebe5f77fe7ad7fc422d94e8181aac 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -3175,6 +3175,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + if (flag1) { + blockposition1 = ServerLevel.END_SPAWN_POINT; + } else { ++ // Paper start - Ensure spawn chunk is always loaded before calculating Y coordinate ++ destination.getChunkAt(destination.getSharedSpawnPos()); ++ // Paper end + blockposition1 = destination.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, destination.getSharedSpawnPos()); + } + // CraftBukkit start |