X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fm_svsjoin.c;h=c3fa556f8fd9697fd6c6337089dc84f2e89f76c9;hp=94156fdcd42ed0d9b14149ac06bc05d0fc471f0b;hb=e894de73de8e7846934ecdf4d7cc3a14d5635ce6;hpb=c3727b053aa20cecf3984cc0c9c23b0140edf52c diff --git a/ircd/m_svsjoin.c b/ircd/m_svsjoin.c index 94156fd..c3fa556 100644 --- a/ircd/m_svsjoin.c +++ b/ircd/m_svsjoin.c @@ -78,8 +78,8 @@ int m_svsjoin(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) joinbuf_init(&join, acptr, acptr, JOINBUF_TYPE_JOIN, 0, 0); joinbuf_init(&create, acptr, acptr, JOINBUF_TYPE_CREATE, 0, TStime()); - flags = (chptr->users == 0) ? CHFL_CHANOP : CHFL_DEOPPED; - if(chptr) joinbuf_join(&join, chptr, flags); + flags = (chptr->users == 0) ? CHFL_CHANOP | CHFL_CHANNEL_MANAGER : CHFL_DEOPPED; + if(chptr->users) joinbuf_join(&join, chptr, flags); else joinbuf_join(&create, chptr, flags); /* Send information to the user. */ @@ -87,7 +87,7 @@ int m_svsjoin(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) 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); @@ -154,7 +154,7 @@ signed int ms_svsjoin(struct Client* cptr, struct Client* sptr, signed int parc, 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);