+ ModResult OnUserPreJoin(User* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven)
+ {
+ if (chan && chan->IsModeSet('O') && !user->IsOper())
+ {
+ user->WriteNumeric(ERR_CANTJOINOPERSONLY, "%s %s :Only IRC operators may join %s (+O is set)",
+ user->nick.c_str(), chan->name.c_str(), chan->name.c_str());
+ return MOD_RES_DENY;
+ }
+ return MOD_RES_PASSTHRU;
+ }