From 74550ab9a64b1084e6b69ac3bac1cfb4ad72ae60 Mon Sep 17 00:00:00 2001 From: Sotr Date: Thu, 23 Aug 2018 16:14:25 +0800 Subject: [PATCH] Add source block to BlockPhysicsEvent diff --git a/src/main/java/org/bukkit/event/block/BlockPhysicsEvent.java b/src/main/java/org/bukkit/event/block/BlockPhysicsEvent.java index 5e47eabe8..9d9e4712b 100644 --- a/src/main/java/org/bukkit/event/block/BlockPhysicsEvent.java +++ b/src/main/java/org/bukkit/event/block/BlockPhysicsEvent.java @@ -29,10 +29,34 @@ public class BlockPhysicsEvent extends BlockEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private final BlockData changed; private boolean cancel = false; + // Paper start - add source block + private int sourceX; + private int sourceY; + private int sourceZ; + private Block sourceBlock; + + public BlockPhysicsEvent(final Block block, final BlockData changed, final int sourceX, final int sourceY, final int sourceZ) { + this(block, changed); + this.sourceX = sourceX; + this.sourceY = sourceY; + this.sourceZ = sourceZ; + this.sourceBlock = null; + } + + /** + * Gets the source block, causing this event + * + * @return Source block + */ + public Block getSourceBlock() { + return sourceBlock == null ? (sourceBlock = block.getWorld().getBlockAt(sourceX, sourceY, sourceZ)) : sourceBlock; + } + // Paper end public BlockPhysicsEvent(final Block block, final BlockData changed) { super(block); this.changed = changed; + this.sourceBlock = block; // Paper - add source block } /** -- 2.18.0