"and will do absolutely nothing for a DCC or fserve window."
Well 'on text' doesn't trigger for dcc chat or fserve messages
  • on TEXT

    The on TEXT event triggers when you receive private and/or channel messages.

on *:TEXT:*:*: { echo -a $window($iif(#,#,$nick)).type }
will do fine unless the dqwindow is on (which requires reading from $mircini to know)
on *:chat:*: { echo -s $window(=$nick).type }
on *:serv:*: { echo -s $window(=$nick).type }