I think you should use HOOK_CRAFTING_NO_RECIPE, because that way no unnecessary hooks are called.
Figure out whether there are two of the same items (and only those two) in the crafting grid.
Then use the ItemCategory:IsTool( ItemID ) function to determine it's a tool
Then set the output item to have the ID of the input items, but with less damage (use the damage formula thingy)
Figure out whether there are two of the same items (and only those two) in the crafting grid.
Then use the ItemCategory:IsTool( ItemID ) function to determine it's a tool
Then set the output item to have the ID of the input items, but with less damage (use the damage formula thingy)