Is it at all possible to intercept and override commands made by the user? For instance, in my case I need to make a number of other changes every time the user extrudes something. At the moment I have implemented my own separate extrude command, but I imagine the user would often end up using the normal extrude tool purely out of habit.
It would be nice to be able to prevent them from doing so, or better yet redirect it to my own custom command.

