diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-11-06 20:47:20 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-11-06 20:47:20 +0000 |
commit | 1b823b21c71a9047a9bbb5fa931085bb4929f26a (patch) | |
tree | 3791f36d2811df38d14045133e6e9922dde034ee /src/channels.cpp | |
parent | 2553e4fff7a5a168ef796dcecb73c7365651c897 (diff) |
Send %#chan messages to all members ranked at least halfop, not just those that have halfop
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12046 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/channels.cpp')
-rw-r--r-- | src/channels.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index 500791ea3..3f0fc4a36 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -646,19 +646,19 @@ void Channel::WriteAllExcept(User* user, bool serversource, char status, CUList void Channel::RawWriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const std::string &out) { - char statmode = 0; + unsigned int minrank = 0; if (status) { ModeHandler* mh = ServerInstance->Modes->FindPrefix(status); if (mh) - statmode = mh->GetModeChar(); + minrank = mh->GetPrefixRank(); } for (UserMembIter i = userlist.begin(); i != userlist.end(); i++) { - if ((IS_LOCAL(i->first)) && (except_list.find(i->first) == except_list.end())) + if (IS_LOCAL(i->first) && (except_list.find(i->first) == except_list.end())) { - /* User doesnt have the status we're after */ - if (statmode && !i->second->hasMode(statmode)) + /* User doesn't have the status we're after */ + if (minrank && i->second->getRank() < minrank) continue; i->first->Write(out); |