From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: DerEchtePilz <81232921+DerEchtePilz@users.noreply.github.com> Date: Sun, 18 Aug 2024 13:05:31 +0200 Subject: [PATCH] Properly destroy placed blocks on the end platform The craftbukkit provided implementation of LevelAccessor, BlockStateListPopulator, does not support destroyBlock calls, simply ignoring them. This causes the destroyBlock calls during the generation of the end platform to be lost. The patch moves the destroy calls and executes them on the actual world access. diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java index 0bc659a8427b89b5e3211220c55b52eec6a20494..8aa5445e38622cd7cf4b3e42e9be8760827639fa 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java @@ -44,7 +44,7 @@ public class EndPlatformFeature extends Feature { // CraftBukkit start if (!blockList.getBlockState(blockposition_mutableblockposition1).is(block)) { if (flag) { - blockList.destroyBlock(blockposition_mutableblockposition1, true, (Entity) null); + // blockList.destroyBlock(blockposition_mutableblockposition1, true, (Entity) null); // Paper - moved down - cb implementation of LevelAccessor does not support destroyBlock } blockList.setBlock(blockposition_mutableblockposition1, block.defaultBlockState(), 3); @@ -65,6 +65,13 @@ public class EndPlatformFeature extends Feature { worldaccess.getLevel().getCraftServer().getPluginManager().callEvent(portalEvent); if (!portalEvent.isCancelled()) { + // Paper start - Properly destroy placed blocks on the end platform + if (flag) { + for (org.bukkit.craftbukkit.block.CraftBlockState state : blockList.getList()) { + worldaccess.destroyBlock(state.getPosition(), true); + } + } + // Paper end - Properly destroy placed blocks on the end platform blockList.updateList(); } // CraftBukkit end