]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_operprefix.cpp
m_spanningtree Update comments around collision handling
[user/henk/code/inspircd.git] / src / modules / m_operprefix.cpp
index c84e74892b0142bb48a22f63cca93b9bde4c5b24..3f05dd086fe4a16f9d8beec6f5d27b5aa5c8eac8 100644 (file)
@@ -79,9 +79,9 @@ class ModuleOperPrefixMode : public Module
                modechange.push_back(add ? "+" : "-");
                modechange[1].push_back(opm.GetModeChar());
                modechange.push_back(user->nick);
-               for (UCListIter v = user->chans.begin(); v != user->chans.end(); v++)
+               for (User::ChanList::iterator v = user->chans.begin(); v != user->chans.end(); v++)
                {
-                       modechange[0] = (*v)->name;
+                       modechange[0] = (*v)->chan->name;
                        ServerInstance->Modes->Process(modechange, ServerInstance->FakeClient);
                }
        }
@@ -113,7 +113,8 @@ HideOperWatcher::HideOperWatcher(ModuleOperPrefixMode* parent)
 
 void HideOperWatcher::AfterMode(User* source, User* dest, Channel* channel, const std::string& parameter, bool adding)
 {
-       if (IS_LOCAL(dest))
+       // If hideoper is being unset because the user is deopering, don't set +y
+       if (IS_LOCAL(dest) && dest->IsOper())
                parentmod->SetOperPrefix(dest, !adding);
 }