From b82375a5964c093746a0bbe48a6329c80e41c429 Mon Sep 17 00:00:00 2001 From: QuarterAnimal Date: Wed, 2 Jan 2013 12:36:23 -0500 Subject: [PATCH] Preserve source block in mushroom spread event. Fixes BUKKIT-3354 --- src/main/java/net/minecraft/server/BlockMushroom.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/BlockMushroom.java b/src/main/java/net/minecraft/server/BlockMushroom.java index bfc48d4993..38fac4cfb4 100644 --- a/src/main/java/net/minecraft/server/BlockMushroom.java +++ b/src/main/java/net/minecraft/server/BlockMushroom.java @@ -48,6 +48,12 @@ public class BlockMushroom extends BlockFlower { j1 = j + random.nextInt(2) - random.nextInt(2); k1 = k + random.nextInt(3) - 1; + // CraftBukkit start - preserve source block coordinates + int sourceX = i; + int sourceY = j; + int sourceZ = k; + // CraftBukkit end + for (int l1 = 0; l1 < 4; ++l1) { if (world.isEmpty(i1, j1, k1) && this.d(world, i1, j1, k1)) { i = i1; @@ -66,7 +72,7 @@ public class BlockMushroom extends BlockFlower { BlockState blockState = bworld.getBlockAt(i1, j1, k1).getState(); blockState.setTypeId(this.id); - BlockSpreadEvent event = new BlockSpreadEvent(blockState.getBlock(), bworld.getBlockAt(i, j, k), blockState); + BlockSpreadEvent event = new BlockSpreadEvent(blockState.getBlock(), bworld.getBlockAt(sourceX, sourceY, sourceZ), blockState); world.getServer().getPluginManager().callEvent(event); if (!event.isCancelled()) {