Paper/Spigot-Server-Patches/0379-Fix-nether-portal-creation.patch
Mariell Hoversholm 654b792caf Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
a339310c #755: Fix NPE when calling getInventory() for virtual EnderChests
2577f9bf Increase outdated build delay
1dabfdc8 #754: Fix pre-1.16 serialized SkullMeta being broken on 1.16+, losing textures
2020-09-27 11:04:51 -04:00

23 lines
1.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Michael Himing <mhiming@gmail.com>
Date: Mon, 9 Sep 2019 13:21:17 +1000
Subject: [PATCH] Fix nether portal creation
diff --git a/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java b/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
index 60330f753fcbdef679a9444c3888f1656b2fa344..c22dbbfbe8b16d4c2f1df1f9efd3b06e330ac909 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
@@ -38,6 +38,11 @@ public class BlockStateListPopulator extends DummyGeneratorAccess {
@Override
public boolean setTypeAndData(BlockPosition position, IBlockData data, int flag) {
+ // Paper start
+ // When a LinkedHashMap entry is overwritten, it keeps its old position. Removing the entry here before adding
+ // a new one ensures that the nether portal blocks are placed last and are not destroyed by physics.
+ list.remove(position);
+ // Paper end
CraftBlockState state = CraftBlockState.getBlockState(world, position, flag);
state.setData(data);
list.put(position, state);