Просмотр исходного кода

* Don't enforce +v on an opped user

svn: 1489
Bryan Drewery 21 лет назад
Родитель
Сommit
d025ce17ed
2 измененных файлов с 4 добавлено и 2 удалено
  1. 1 0
      doc/UPDATES
  2. 3 2
      src/mod/irc.mod/mode.c

+ 1 - 0
doc/UPDATES

@@ -61,6 +61,7 @@ This is a summary of ChangeLog basically.
 * Added some simple dcc ip sanity checking back in.
 * All dns resolving is now asynchronous, all dns bugs now fixed.
 * Check server lag every 30 seconds, not every 5 minutes.
+* +v users are no longer enforced if opped.
 
 1.1.9
 

+ 3 - 2
src/mod/irc.mod/mode.c

@@ -1336,7 +1336,7 @@ gotmode(char *from, char *msg)
               } else if (msign == '-') {
                 mv->flags &= ~SENTDEVOICE;
                 mv->flags &= ~CHANVOICE;
-                if (channel_active(chan) && dovoice(chan)) {
+                if (channel_active(chan) && dovoice(chan) && !chan_hasop(mv)) {
                   /* revoice +v users */
                   if (chk_voice(victim, chan)) {
                     add_mode(chan, '+', 'v', mparam);
@@ -1345,7 +1345,8 @@ gotmode(char *from, char *msg)
                     /* if they arent +v|v and VOICER is m+ then EVOICE them */
                   } else {
 /* FIXME: same thing here */
-                    if (!match_my_nick(nick) && channel_voice(chan) && (glob_master(user) || chan_master(user) || glob_bot(user))) {
+                    if (!match_my_nick(nick) && channel_voice(chan) && (glob_master(user) || chan_master(user) || glob_bot(user))
+                       && strcmp(nick, victim)) {
                       /* if the user is not +q set them norEVOICE. */
                       if (!chan_quiet(victim) && !(mv->flags & EVOICE)) {
                         putlog(LOG_DEBUG, "@", "Giving EVOICE flag to: %s (%s)", mv->nick, chan->dname);