--- a/net/minecraft/item/HoeItem.java
+++ b/net/minecraft/item/HoeItem.java
@@ -21,13 +21,15 @@
    protected static final Map<Block, BlockState> field_195973_b = Maps.newHashMap(ImmutableMap.of(Blocks.field_196658_i, Blocks.field_150458_ak.func_176223_P(), Blocks.field_185774_da, Blocks.field_150458_ak.func_176223_P(), Blocks.field_150346_d, Blocks.field_150458_ak.func_176223_P(), Blocks.field_196660_k, Blocks.field_150346_d.func_176223_P()));
 
    public HoeItem(IItemTier p_i231595_1_, int p_i231595_2_, float p_i231595_3_, Item.Properties p_i231595_4_) {
-      super((float)p_i231595_2_, p_i231595_3_, p_i231595_1_, field_234683_c_, p_i231595_4_);
+      super((float)p_i231595_2_, p_i231595_3_, p_i231595_1_, field_234683_c_, p_i231595_4_.addToolType(net.minecraftforge.common.ToolType.HOE, p_i231595_1_.func_200925_d()));
    }
 
    public ActionResultType func_195939_a(ItemUseContext p_195939_1_) {
       World world = p_195939_1_.func_195991_k();
       BlockPos blockpos = p_195939_1_.func_195995_a();
-      if (p_195939_1_.func_196000_l() != Direction.DOWN && world.func_180495_p(blockpos.func_177984_a()).func_196958_f()) {
+      int hook = net.minecraftforge.event.ForgeEventFactory.onHoeUse(p_195939_1_);
+      if (hook != 0) return hook > 0 ? ActionResultType.SUCCESS : ActionResultType.FAIL;
+      if (p_195939_1_.func_196000_l() != Direction.DOWN && world.func_175623_d(blockpos.func_177984_a())) {
          BlockState blockstate = field_195973_b.get(world.func_180495_p(blockpos).func_177230_c());
          if (blockstate != null) {
             PlayerEntity playerentity = p_195939_1_.func_195999_j();
