From 36a7f30f47778a7c3d114efbad08f06c369ae7da Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Fri, 5 Jun 2015 00:43:17 -0700
Subject: [PATCH] FallingBlock and TNT entities collide with specific blocks


diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index baedb39..e96fa6f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1203,7 +1203,16 @@ public abstract class World implements IBlockAccess {
                             }
                             if ( block != null )
                             {
-                                block.getBlock().a(this, blockposition, block, axisalignedbb, arraylist, entity);
+                                // PaperSpigot start - FallingBlocks and TNT collide with specific non-collidable blocks
+                                Block b = block.getBlock();
+                                if (entity.world.paperSpigotConfig.fallingBlocksCollideWithSigns && (entity instanceof EntityTNTPrimed || entity instanceof EntityFallingBlock) &&
+                                        (b instanceof BlockSign || b instanceof BlockFenceGate || b instanceof BlockTorch || b instanceof BlockButtonAbstract || b instanceof BlockLever || b instanceof BlockTripwireHook || b instanceof BlockTripwire)) {
+                                    AxisAlignedBB aabb = AxisAlignedBB.a(x, y, z, x + 1.0, y + 1.0, z + 1.0);
+                                    if (axisalignedbb.b(aabb)) arraylist.add(aabb);
+                                } else {
+                                    b.a(this, blockposition, block, axisalignedbb, arraylist, entity);
+                                }
+                                // PaperSpigot end
                             }
                         }
                     }
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 37369e8..0b75e16 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -332,4 +332,10 @@ public class PaperSpigotWorldConfig
         fixCannons = getBoolean( "fix-cannons", false );
         log( "Fix TNT cannons: " + fixCannons );
     }
+
+    public boolean fallingBlocksCollideWithSigns;
+    private void fallingBlocksCollideWithSigns()
+    {
+        fallingBlocksCollideWithSigns = getBoolean( "falling-blocks-collide-with-signs", false );
+    }
 }
-- 
1.9.5.msysgit.1