return clientlist->size() - this->UnregisteredUserCount();
}
-int InspIRCd::InvisibleUserCount()
+int InspIRCd::ModeCount(const char mode)
{
- int c = 0;
+ ModeHandler* mh = this->Modes->FindMode(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 this->all_opers.size();
}
int InspIRCd::UnregisteredUserCount()
{
- int c = 0;
-
- for (std::vector<userrec*>::const_iterator i = local_users.begin(); i != local_users.end(); i++)
- {
- userrec* t = (userrec*)(*i);
- if (t->registered != REG_ALL)
- c++;
- }
-
- return c;
+ return this->unregistered_count;
}
long InspIRCd::ChannelCount()
long InspIRCd::LocalUserCount()
{
- int c = 0;
-
- for (std::vector<userrec*>::const_iterator i = local_users.begin(); i != local_users.end(); i++)
- {
- userrec* t = (userrec*)(*i);
- if (t->registered == REG_ALL)
- c++;
- }
-
- return c;
+ /* Doesnt count unregistered clients */
+ return (local_users.size() - this->UnregisteredUserCount());
}
-
+
bool InspIRCd::IsChannel(const char *chname)
{
char *c;