--- a/net/minecraft/server/PathfinderGoalDoorInteract.java
+++ b/net/minecraft/server/PathfinderGoalDoorInteract.java
@@ -37,6 +37,14 @@
             IBlockData iblockdata = this.a.world.getType(this.b);
 
             if (iblockdata.getBlock() instanceof BlockDoor) {
+                // CraftBukkit start - entities opening doors
+                org.bukkit.event.entity.EntityInteractEvent event = new org.bukkit.event.entity.EntityInteractEvent(this.a.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(this.a.world, this.b));
+                this.a.world.getServer().getPluginManager().callEvent(event);
+                if (event.isCancelled()) {
+                    return;
+                }
+                // CaftBukkit end
+
                 ((BlockDoor) iblockdata.getBlock()).setDoor(this.a.world, this.b, flag);
             }
         }