diff options
Diffstat (limited to 'src/helperfuncs.cpp')
-rw-r--r-- | src/helperfuncs.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index fdbeb613f..84cc52df5 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -308,28 +308,24 @@ int InspIRCd::RegisteredUserCount() return clientlist->size() - this->UnregisteredUserCount(); } -int InspIRCd::InvisibleUserCount() +int InspIRCd::ModeCount(const char mode) { - int c = 0; + ModeHandler* mh = this->Modes->GetHandler(mode, MODETYPE_USER); - for (user_hash::const_iterator i = clientlist->begin(); i != clientlist->end(); i++) - { - c += ((i->second->registered == REG_ALL) && (i->second->modes[UM_INVISIBLE])); - } + if (mh) + return mh->GetCount(); + else + return 0; +} - return c; +int InspIRCd::InvisibleUserCount() +{ + return ModeCount('i'); } int InspIRCd::OperCount() { - int c = 0; - - for (user_hash::const_iterator i = clientlist->begin(); i != clientlist->end(); i++) - { - if (*(i->second->oper)) - c++; - } - return c; + return ModeCount('o'); } int InspIRCd::UnregisteredUserCount() |