public static ItemStack callPreCraftEvent(
      InventoryCrafting matrix,
      InventoryCraftResult inv,
      ItemStack result,
      InventoryView lastBukkitView,
      boolean isRepair) {
    // matrix.eventHandler.;
    BukkitInventoryCrafting inventory = new BukkitInventoryCrafting(matrix, inv);
    inventory.setResult(new BukkitItemStack(result));

    PrepareItemCraftEvent event = new PrepareItemCraftEvent(inventory, lastBukkitView, isRepair);
    Bukkit.getPluginManager().callEvent(event);

    org.bukkit.inventory.ItemStack bitem = event.getInventory().getResult();

    return BukkitItemStack.createNMSItemStack(bitem);
  }