I have a rather complex way of figuring out what the player is doing. The only routine I have not figured out is, "function Harvest.HarvestProvisioning()" I made that to track when a player is using the provisioning station. However, it doesn't fire at that time, nor does it fire when looting a Barrel. I don't use function Harvest.ValidCraftingType() yet because I'm not sure what the constants apply to.
I have other complex ways to check if the type of the item is invalid based on the Node Name. However it's not refined yet and still needs a lot of work. The basic idea is that I use the ID Numbers from Esohead and some Node Names. Shinni mentioned that using names may not be a good idea since they may change, however, these are basic names like Barrel, Crate, so they shouldn't change.
Also I am looking into using GetLootTargetInfo()
InteractTargetType and GetLootItemLink.