Your SERVER idle time doesn't change by typing //echo -a $me, your LOCAL idle time does. If $idle represented your SERVER idle time, you would have a point, but it does not.

I think the problem here is that people have the wrong expectation of what /resetidle and $idle represent. As drum pointed out, $idle is *not* meant to accurately match the SERVER, it's meant to be a representation of your LOCAL idle time. This distinction *does* matter, specifically because of the example you pointed out: performing commands locally should not affect how other clients see you (as idle or not), but mIRC *should* be aware of the fact that the user is currently active, at least with respect to local commands. The identifier is not meant to accurately report what the server sees. In a sense, mIRC's $idle is more accurate, because it considers actual user activity, not just "server command" activity.

Note that $idle is not used in any way to report your idle time to other clients, nor is /resetidle used to reset your idle time with the server. This is all *local* book-keeping. If you don't send a command in ON INPUT, your idle time with respect to the server will not change. Other clients will still be able to see that you are idle. Specifically, "//echo -a $me" will not change your idle on the server, and clients will still see you as idle. The only idle time mIRC is resetting is its local counter, which *is* meant to keep track of your local activity.

For those who don't believe that $idle is truly meant to represent local time, consider this: if mIRC *was* trying to keep track of server idle time, /resetidle would be inherently obsolete. Server idle time is reset when commands are issued (minus a few exceptions), mIRC would simply reset when these commands are issued. A manual /resetidle is only necessary if we are talking about local activity, when arbitrary more complex interactions (like ON ACTIVE, for instance) could potentially be used to reset your "idle" time. Also, $idle was added in v4.7 (1996), and therefore pretty much predates the concept of server idle time tracking. It was certainly not meant to match server idle time then (because there was no such thing), and it's likely the same story now.


- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"