diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-04-10 21:43:01 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-04-10 21:43:01 +0000 |
commit | 03e74cdee93dc0256b4802c76534f97d74022ae9 (patch) | |
tree | 274b83ee2241bfa4af51089278081a925f571883 | |
parent | 9660e71deb37d57298114a3e843e9a20fad5e1df (diff) |
Register the OnUserPreJoin hook, and check for null channel first
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11301 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/modules/m_operchans.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/modules/m_operchans.cpp b/src/modules/m_operchans.cpp index a0f30e730..50aa0aa87 100644 --- a/src/modules/m_operchans.cpp +++ b/src/modules/m_operchans.cpp @@ -56,13 +56,13 @@ class ModuleOperChans : public Module oc = new OperChans(ServerInstance); if (!ServerInstance->Modes->AddMode(oc)) throw ModuleException("Could not add new modes!"); - Implementation eventlist[] = { I_OnCheckBan }; - ServerInstance->Modules->Attach(eventlist, this, 1); + Implementation eventlist[] = { I_OnCheckBan, I_OnUserPreJoin }; + ServerInstance->Modules->Attach(eventlist, this, 2); } virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven) { - if (chan->IsModeSet('O') && !IS_OPER(user)) + if (chan && chan->IsModeSet('O') && !IS_OPER(user)) { 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()); |