There is probably a better way to handle your client spawning than parenting a low level function, but I'm not about to go trace for it so here you are:
package WhenISpawn {
function serverConnection::setControlObject(%this, %obj)
{
%return = parent::setControlObject(%this, %obj);
if(%obj.getClassname() $= "Player")
whenISpawn();
return %return;
}
};
activatePackage(WhenISpawn);
Only issue is this will probably catch when you hit f7 as an admin. Too lazy to check for a better function.