I can confirm this happens as well, below are a few tests i ran;
mIRC 7.23 beta, Win7 32bit
Using versions <= 7.22, you could just use the on RAWMODE event with a haltdef to display a custom echo for modes,
and this would cover all the modes with out having to setup a haltdef on every mode event,
eg: on VOICE, on HALFOP, on OP, on OWNER, on BAN, etc..
In the 7.23 beta version is seems you have to halt/haltdef every mode event or you will get a double echo when using the on RAWMODE event.
below is a very basic script i used to test this;
on ^*:RAWMODE:*: {
echo $color(mode) -pt $chan RAWMODE: -> $nick -> $1 $2-
haltdef
}
As i said, in previous version this was all that was needed for a custom echo line, now you have to add the following;
on ^*:mode:*:haltdef
on ^*:op:*:haltdef
on ^*:owner:*:haltdef
on ^*:voice:*:haltdef
on ^*:deop:*:haltdef
on ^*:deowner:*:haltdef
on ^*:devoice:*:haltdef
As this being the case, it does not account for the +/-a mode (&) that some servers have, most noteably, UnrealIRCD.
Documents on this can be found here;
http://www.unrealircd.com/files/docs/unreal32docs.html#userchannelmodesTo quote the doc: "a <nick> - Makes the user a channel admin"
Below is a debug and channel echo output from 7.22 and 7.23 beta;
;---------------------------------
;-- mIRC 7.22
-> irc.someirc.tdl MODE #Lobby +o nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby +o nosceteipsum
-> irc.someirc.tdl MODE #Lobby -o nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby -o nosceteipsum
-> irc.someirc.tdl MODE #Lobby +a nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby +a nosceteipsum
-> irc.someirc.tdl MODE #Lobby -a nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby -a nosceteipsum
-> irc.someirc.tdl MODE #Lobby -ao nosceteipsum nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby -ao nosceteipsum nosceteipsum
-> irc.someirc.tdl MODE #Lobby +ao nosceteipsum nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby +ao nosceteipsum nosceteipsum
And the actual echo output;
[21:35 12] RAWMODE: -> Smeagol -> +o nosceteipsum
[21:35 19] RAWMODE: -> Smeagol -> -o nosceteipsum
[21:36 21] RAWMODE: -> Smeagol -> +a nosceteipsum
[21:36 23] RAWMODE: -> Smeagol -> -a nosceteipsum
[21:38 20] RAWMODE: -> Smeagol -> -ao nosceteipsum nosceteipsum
[21:38 50] RAWMODE: -> Smeagol -> +ao nosceteipsum nosceteipsum
;---------------------------------
;-- mIRC 7.23 beta
-> irc.someirc.tdl MODE #Lobby -o nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby -o nosceteipsum
-> irc.someirc.tdl MODE #Lobby +o nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby +o nosceteipsum
And the actual echo output;
[21:45 11] RAWMODE: -> Smeagol -> +o nosceteipsum
[21:45 11] * Smeagol sets mode: +o nosceteipsum
[21:47 14] RAWMODE: -> Smeagol -> -o nosceteipsum
[21:47 14] * Smeagol sets mode: -o nosceteipsum
Now, as i said above, you can add the haltdef to all the other mode events, and it echos correctly, except for the +/-a mode.
which will still result in the following;
[21:49 14] RAWMODE: -> Smeagol -> -a nosceteipsum
[21:49 14] * Smeagol sets mode: -a nosceteipsum
Note: If you use more than one mode in the command eg; '/mode #chan +ao Nick Nick',
It echos just fine. Provided of course you are using the extra mode event haltdefs.
-> irc.someirc.tdl MODE #Lobby -ao nosceteipsum nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby -ao nosceteipsum nosceteipsum
-> irc.someirc.tdl MODE #Lobby +ao nosceteipsum nosceteipsum
<- :Smeagol!Test@192.168.0.4 MODE #Lobby +ao nosceteipsum nosceteipsum
and the actual echo;
[21:56 19] RAWMODE: -> Smeagol -> -ao nosceteipsum nosceteipsum
[21:56 26] RAWMODE: -> Smeagol -> +ao nosceteipsum nosceteipsum
Not really sure what else i can add to this, let me know if there is.
I can normally be found in #mIRC on DALnet if you have any questions about how i tested it.
- Tw|tch
;-----