- if (chan->IsModeSet('u'))
- {
- silent = true;
- /* Send silenced event only to the user being kicked and the user doing the kick */
- source->WriteFrom(source, "KICK %s %s %s", chan->name, user->nick, reason.c_str());
- if (ShowOps)
- chan->WriteAllExcept(source, false, '@', except_list, "KICK %s %s %s", chan->name, user->nick, reason.c_str());
- else
- user->WriteFrom(source, "KICK %s %s %s", chan->name, user->nick, reason.c_str());
- }
+ BuildExcept(memb, excepts);
+ }
+
+ void OnUserKick(User* source, Membership* memb, const std::string &reason, CUList& excepts)
+ {
+ BuildExcept(memb, excepts);
+ }
+
+ ModResult OnHostCycle(User* user)
+ {
+ for (UCListIter f = user->chans.begin(); f != user->chans.end(); f++)
+ if ((*f)->IsModeSet('u'))
+ return MOD_RES_DENY;
+
+ return MOD_RES_PASSTHRU;