Detecting tool switching

I need to somehow detect when a player switches his current tool and return that player. I thought there might be a hook for it but nope, couldn’t find any. Thought CanTool might work but it turns out it’s only triggered when one tries to actually use the tool.

I suppose I could do it by doing a lot of thinking and keeping an eye on the current tool of each player. However, that method would be awfully complicated and resource consuming.

So, is there any quick and simple way to find out when someone switches their tool, and who that someone is?

Edit: Also, it’d be preferable to get the toolname as well. If it can’t be returned directly, it should be simple to get it if I know the player, so it’s not a big deal.