struct Membership *member;
int parc;
char **parv;
- unsigned int flags;
+ ulong64 flags;
ulong64 dir;
- unsigned int done;
+ ulong64 done;
ulong64 add;
ulong64 del;
int args_used;
int numbans;
struct Ban banlist[MAXPARA];
struct {
- unsigned int flag;
+ ulong64 flag;
unsigned short oplevel;
struct Client *client;
} cli_change[MAXPARA];
modebuf_mode_client(state->mbuf, state->cli_change[i].flag,
state->cli_change[i].client,
state->cli_change[i].oplevel);
+
+ if(MyUser(state->sptr) && (state->chptr->mode.mode & MODE_AUDITORIUM) && (state->cli_change[i].flag & MODE_CHANOP)) {
+ do_names(state->sptr, state->chptr, NAMES_ALL|NAMES_EON|((member->status & MODE_CHANOP) ? 0 : NAMES_OPS));
+ }
} /* for (i = 0; state->cli_change[i].flags; i++) */
}
chptr->topic_time);
}
- do_names(sptr, chptr, NAMES_ALL|NAMES_EON); /* send /names list */
+ do_names(sptr, chptr, NAMES_ALL|NAMES_EON|(((chptr->mode.mode & MODE_AUDITORIUM) && !(flags & CHFL_CHANOP)) ? NAMES_OPS : 0)); /* send /names list */
}
joinbuf_flush(&join); /* must be first, if there's a JOIN 0 */
send_reply(acptr, RPL_TOPIC, chptr->chname, chptr->topic);
send_reply(acptr, RPL_TOPICWHOTIME, chptr->chname, chptr->topic_nick, chptr->topic_time);
}
- do_names(acptr, chptr, NAMES_ALL|NAMES_EON);
+ do_names(acptr, chptr, NAMES_ALL|NAMES_EON|(((chptr->mode.mode & MODE_AUDITORIUM) && !(flags & CHFL_CHANOP)) ? NAMES_OPS : 0));
joinbuf_flush(&join);
joinbuf_flush(&create);
send_reply(acptr, RPL_TOPIC, chptr->chname, chptr->topic);
send_reply(acptr, RPL_TOPICWHOTIME, chptr->chname, chptr->topic_nick, chptr->topic_time);
}
- do_names(acptr, chptr, NAMES_ALL|NAMES_EON);
+ do_names(acptr, chptr, NAMES_ALL|NAMES_EON|(((chptr->mode.mode & MODE_AUDITORIUM) && !(flags & CHFL_CHANOP)) ? NAMES_OPS : 0));
joinbuf_flush(&join);
joinbuf_flush(&create);