]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_auditorium.cpp
Add Channel* parameter to OnSendWhoLine
[user/henk/code/inspircd.git] / src / modules / m_auditorium.cpp
index 502a9fb9f1e29f215b0d504790cb3e8c943bba8b..21afcabad0b9f9f730b86c67af4d0d51961ec825 100644 (file)
@@ -129,19 +129,21 @@ class ModuleAuditorium : public Module
                BuildExcept(memb, excepts);
        }
 
-       void OnBuildNeighborList(User* source, UserChanList &include, std::map<User*,bool> &exception) CXX11_OVERRIDE
+       void OnBuildNeighborList(User* source, IncludeChanList& include, std::map<User*, bool>& exception) CXX11_OVERRIDE
        {
-               UCListIter i = include.begin();
-               while (i != include.end())
+               for (IncludeChanList::iterator i = include.begin(); i != include.end(); )
                {
-                       Channel* c = *i++;
-                       Membership* memb = c->GetUser(source);
-                       if (!memb || IsVisible(memb))
+                       Membership* memb = *i;
+                       if (IsVisible(memb))
+                       {
+                               ++i;
                                continue;
+                       }
+
                        // this channel should not be considered when listing my neighbors
-                       include.erase(c);
+                       i = include.erase(i);
                        // however, that might hide me from ops that can see me...
-                       const UserMembList* users = c->GetUsers();
+                       const UserMembList* users = memb->chan->GetUsers();
                        for(UserMembCIter j = users->begin(); j != users->end(); j++)
                        {
                                if (IS_LOCAL(j->first) && CanSee(j->first, memb))
@@ -150,9 +152,8 @@ class ModuleAuditorium : public Module
                }
        }
 
-       void OnSendWhoLine(User* source, const std::vector<std::string>& params, User* user, std::string& line) CXX11_OVERRIDE
+       void OnSendWhoLine(User* source, const std::vector<std::string>& params, User* user, Channel* channel, std::string& line) CXX11_OVERRIDE
        {
-               Channel* channel = ServerInstance->FindChan(params[0]);
                if (!channel)
                        return;
                Membership* memb = channel->GetUser(user);