return 0;
}
+ if (MyClient(source_p) && chptr->mode.mode & MODE_NOOPERKICK && IsOper(who))
+ {
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
+ "Overriding KICK from %s on %s in %s (channel is +M)",
+ source_p->name, who->name, chptr->chname);
+ sendto_one_numeric(source_p, ERR_ISCHANSERVICE,
+ "%s %s :Cannot kick IRC operators from that channel.",
+ who->name, chptr->chname);
+ return 0;
+ }
+
if(MyClient(source_p))
{
hook_data_channel_approval hookdata;
":%s KICK %s %s :%s",
use_id(source_p), chptr->chname, use_id(who), comment);
remove_user_from_channel(msptr);
+
+ /* we don't need to track NOREJOIN stuff unless it's our client being kicked */
+ if(MyClient(who) && chptr->mode.mode & MODE_NOREJOIN)
+ channel_metadata_time_add(chptr, "KICKNOREJOIN", rb_current_time(), who->id);
}
else if (MyClient(source_p))
sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,