geforkt von Mirrors/Paper
0ea3083817
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 1e843b72 #510: Add NamespacedKey#fromString() to fetch from user input a4d18241 #581: Add methods to modify despawn delay for wandering villagers CraftBukkit Changes: 0cd8f19f #802: Add methods to modify despawn delay for wandering villagers d5c5d998 SPIGOT-6362: ConcurrentModificationException: null --> Server Crash 8c7d69fe SPIGOT-5228: Entities that are removed during chunk unloads are not properly removed from the chunk.
29 Zeilen
1.5 KiB
Diff
29 Zeilen
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: AJMFactsheets <AJMFactsheets@gmail.com>
|
|
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/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index 09e33261f4fe7ed1b68f6954202b359e9d6d9928..1f23d9d1e0054e55f410c1d901c33db708c0b621 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -2641,6 +2641,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
BlockPosition blockposition1;
|
|
|
|
if (flag1) {
|
|
+ // Paper start - Ensure spawn chunk is always loaded before calculating Y coordinate
|
|
+ this.world.getChunkAtWorldCoords(this.world.getSpawn());
|
|
+ // Paper end
|
|
blockposition1 = WorldServer.a;
|
|
} else {
|
|
blockposition1 = worldserver.getHighestBlockYAt(HeightMap.Type.MOTION_BLOCKING_NO_LEAVES, worldserver.getSpawn());
|