--- a/net/minecraft/entity/projectile/AbstractArrowEntity.java
+++ b/net/minecraft/entity/projectile/AbstractArrowEntity.java
@@ -130,7 +130,7 @@
 
       BlockPos blockpos = this.func_233580_cy_();
       BlockState blockstate = this.field_70170_p.func_180495_p(blockpos);
-      if (!blockstate.func_196958_f() && !flag) {
+      if (!blockstate.isAir(this.field_70170_p, blockpos) && !flag) {
          VoxelShape voxelshape = blockstate.func_196952_d(this.field_70170_p, blockpos);
          if (!voxelshape.func_197766_b()) {
             Vector3d vector3d1 = this.func_213303_ch();
@@ -184,7 +184,7 @@
                }
             }
 
-            if (raytraceresult != null && !flag) {
+            if (raytraceresult != null && raytraceresult.func_216346_c() != RayTraceResult.Type.MISS && !flag && !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, raytraceresult)) {
                this.func_70227_a(raytraceresult);
                this.field_70160_al = true;
             }
