papermc/Spigot-API-Patches/0144-Add-source-block-to-BlockPhysicsEvent.patch
Aikar 17b58d00d8
Unwrap Event Exceptions
This was a useless exception wrapper that ends up making
stack traces harder to read as well as the JVM cutting off
the important parts

Nothing catches this exception, so its safe to just get rid
of it and let the REAL exception bubble down
2019-02-23 12:17:41 -05:00

48 lines
1.7 KiB
Diff

From e8b6405b84b65b5726de26bbcff1c2ef0b0519ee Mon Sep 17 00:00:00 2001
From: Sotr <i@omc.hk>
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 5e47eabe..9d9e4712 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.20.1