From 37ea574289bb7d3eaae4045a22c9bbc07ecd7672 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Mon, 29 Feb 2016 17:50:31 -0600
Subject: [PATCH] Entity Origin API


diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 236cddb2..015a4c56 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -559,4 +559,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable {
     @Override
     Spigot spigot();
     // Spigot end
+
+    // Paper start
+    /**
+     * Gets the location where this entity originates from.
+     * <p>
+     * This value can be null if the entity hasn't yet been added to the world.
+     *
+     * @return Location where entity originates or null if not yet added
+     */
+    Location getOrigin();
+    // Paper end
 }
diff --git a/src/main/java/org/bukkit/entity/FallingBlock.java b/src/main/java/org/bukkit/entity/FallingBlock.java
index 0cd830d9..170a9aee 100644
--- a/src/main/java/org/bukkit/entity/FallingBlock.java
+++ b/src/main/java/org/bukkit/entity/FallingBlock.java
@@ -51,4 +51,15 @@ public interface FallingBlock extends Entity {
      * @param hurtEntities whether entities will be damaged by this block.
      */
     void setHurtEntities(boolean hurtEntities);
+
+    /**
+     * Gets the source block location of the FallingBlock
+     *
+     * @return the source block location the FallingBlock was spawned from
+     * @deprecated replaced by {@link Entity#getOrigin()}
+     */
+    @Deprecated
+    default org.bukkit.Location getSourceLoc() {
+        return this.getOrigin();
+    }
 }
diff --git a/src/main/java/org/bukkit/entity/TNTPrimed.java b/src/main/java/org/bukkit/entity/TNTPrimed.java
index a439eaf5..04cc23ef 100644
--- a/src/main/java/org/bukkit/entity/TNTPrimed.java
+++ b/src/main/java/org/bukkit/entity/TNTPrimed.java
@@ -37,4 +37,15 @@ public interface TNTPrimed extends Explosive {
      * @return the source of this primed TNT
      */
     public Entity getSource();
+
+    /**
+     * Gets the source block location of the TNTPrimed
+     *
+     * @return the source block location the TNTPrimed was spawned from
+     * @deprecated replaced by {@link Entity#getOrigin()}
+     */
+    @Deprecated
+    default org.bukkit.Location getSourceLoc() {
+        return this.getOrigin();
+    }
 }
-- 
2.20.1