diff options
Diffstat (limited to 'patches/server/0365-Fix-items-vanishing-through-end-portal.patch')
-rw-r--r-- | patches/server/0365-Fix-items-vanishing-through-end-portal.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/patches/server/0365-Fix-items-vanishing-through-end-portal.patch b/patches/server/0365-Fix-items-vanishing-through-end-portal.patch new file mode 100644 index 0000000000..5c8d581fc4 --- /dev/null +++ b/patches/server/0365-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 ae454b12a0671f6698ff2b889988348e3a518b36..306e23a788798dd0438a6a93cd55854c904eadbd 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -3011,6 +3011,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i + BlockPos blockposition1; + + if (flag1) { ++ // Paper start - Ensure spawn chunk is always loaded before calculating Y coordinate ++ this.level.getChunkAt(((ServerLevel) this.level).getSharedSpawnPos()); ++ // Paper end + blockposition1 = ServerLevel.END_SPAWN_POINT; + } else { + blockposition1 = destination.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, destination.getSharedSpawnPos()); |