From 4d87c3422c4f3d0576c63859e12e37c29031bbad Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Wed, 31 Aug 2016 17:25:37 +1000
Subject: [PATCH] SPIGOT-2644: Clearer error for invalid hanging spawns

---
 src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index d0ed03b760..3f62540d49 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1085,6 +1085,9 @@ public class CraftWorld implements World {
                 entity = new EntityLeash(world, new BlockPosition((int) x, (int) y, (int) z));
                 entity.attachedToPlayer = true;
             } else {
+                // No valid face found
+                Preconditions.checkArgument(face != BlockFace.SELF, "Cannot spawn hanging entity for %s at %s (no free face)", clazz.getName(), location);
+
                 EnumDirection dir = CraftBlock.blockFaceToNotch(face).opposite();
                 if (Painting.class.isAssignableFrom(clazz)) {
                     entity = new EntityPainting(world, new BlockPosition((int) x, (int) y, (int) z), dir);