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