Copyright © 2010 William Pitcock <email@example.com>
Unlimited redistribution and modification of this document is allowed provided that the above copyright notice and this permission notice remains intact.
The account-notify client capability allows a client to be notified when a client’s account name changes. This capability MUST be referred to as ‘account-notify’ at capability negotiation time.
When enabled, clients will get the ACCOUNT message to designate the account name changes for clients on common channels with them, including themselves.
The ACCOUNT message is one of the following:
:nick!user@host ACCOUNT accountname
This message represents that the user identified by nick!user@host has logged into a new account. The last parameter is the display name of that account.
:nick!user@host ACCOUNT *
This message represents that the user identified by nick!user@host has logged out of their account. As the last parameter is an asterisk, this means that an asterisk is not a valid account name (which it is not in P10 or TS6 or ESVID).
In order to take full advantage of the ACCOUNT message, WHOX must be supported by the ircd. In this case, the appropriate strategy to ensuring you always have the account name to display is to do the following:
Enable the “account-notify” capability at capability negotiation time during the login handshake.
When joining a channel, query the channel using WHO and ensure that you
a format token in your WHOX token request. When you get a
reply, do appropriate caching.
If the extended-join capability is available, enable it at client capability negotiation time during the login handshake, and then set the account name based on what is sent in the extended JOIN command.
Otherwise, if extended-join is unavailable: When new users join a channel
that your client does not know the account name for yet, do a WHO query
against that client, again including the
a format token in your WHOX
token request field. When you get a reply, do appropriate caching.
When the client receives an ACCOUNT message, update the account name for the client in question in your account name cache.
A previous version of this specification advised making a WHO request following a netsplit. This advice was deemed unnecessary and was removed. See issue #146 for more information, including rationale for this clarification.
A previous version of this specification didn’t make it clear that account-notify messages are sent for a client’s own account name changes.
Software supporting account-notify: Charybdis, ChatIRCd, ircd-hybrid, InspIRCd, Nefarious IRCu, Oragono, txircd, UnrealIRCd, AdiIRC, Colloquy, HexChat, IceChat, Irssi, Konversation, KVIrc, mIRC, Quassel, WeeChat, Swirc, Glirc, IRCCloud, Kiwi IRC, The Lounge, CoreIRC, Quasseldroid, pounce (as Server), pounce (as Client), ZNC (as Server), ZNC (as Client), KiwiBNC (as Server), KiwiBNC (as Client), Limnoria, Sopel (ex Willie), Moon Moon, PyLink (clientbot), BitBot, Communi, girc, irc-framework, Kitteh IRC Client Library, pydle, Rust irc, Warren, ChatSharp