X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Foverride_map.cpp;h=660d738e9b86fc423f9a6fcd183043f8a4d4f730;hb=1e4b53a286e428e78bd5650815048970d345f7e3;hp=216fd4d66d53f030babff73c1f274a0483ee0e90;hpb=407f10664a5f8ead87967ca52fd6fcb87d09189a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/override_map.cpp b/src/modules/m_spanningtree/override_map.cpp index 216fd4d66..660d738e9 100644 --- a/src/modules/m_spanningtree/override_map.cpp +++ b/src/modules/m_spanningtree/override_map.cpp @@ -66,10 +66,11 @@ static std::vector GetMap(User* user, TreeServer* current, unsigned { float percent = 0; - if (!ServerInstance->Users->clientlist->empty()) + const user_hash& users = ServerInstance->Users->GetUsers(); + if (!users.empty()) { // If there are no users, WHO THE HELL DID THE /MAP?!?!?! - percent = current->UserCount * 100.0 / ServerInstance->Users->clientlist->size(); + percent = current->UserCount * 100.0 / users.size(); } std::string buffer = current->GetName(); @@ -167,11 +168,11 @@ CmdResult CommandMap::Handle(const std::vector& parameters, User* u { if (parameters.size() > 0) { - /* Remote MAP, the server is within the 1st parameter */ + // Remote MAP, the target server is the 1st parameter TreeServer* s = Utils->FindServerMask(parameters[0]); if (!s) { - user->WriteNumeric(ERR_NOSUCHSERVER, "%s :No such server", parameters[0].c_str()); + user->WriteNumeric(ERR_NOSUCHSERVER, parameters[0], "No such server"); return CMD_FAILURE; } @@ -198,17 +199,14 @@ CmdResult CommandMap::Handle(const std::vector& parameters, User* u std::vector map = GetMap(user, Utils->TreeRoot, max, 0); for (std::vector::const_iterator i = map.begin(); i != map.end(); ++i) - user->SendText(":%s %03d %s :%s", ServerInstance->Config->ServerName.c_str(), - RPL_MAP, user->nick.c_str(), i->c_str()); + user->WriteRemoteNumeric(RPL_MAP, *i); - size_t totusers = ServerInstance->Users->clientlist->size(); + size_t totusers = ServerInstance->Users->GetUsers().size(); float avg_users = (float) totusers / Utils->serverlist.size(); - user->SendText(":%s %03d %s :%u server%s and %u user%s, average %.2f users per server", - ServerInstance->Config->ServerName.c_str(), RPL_MAPUSERS, user->nick.c_str(), - (unsigned int)Utils->serverlist.size(), (Utils->serverlist.size() > 1 ? "s" : ""), (unsigned int)totusers, (totusers > 1 ? "s" : ""), avg_users); - user->SendText(":%s %03d %s :End of /MAP", ServerInstance->Config->ServerName.c_str(), - RPL_ENDMAP, user->nick.c_str()); + user->WriteRemoteNumeric(RPL_MAPUSERS, InspIRCd::Format("%u server%s and %u user%s, average %.2f users per server", + (unsigned int)Utils->serverlist.size(), (Utils->serverlist.size() > 1 ? "s" : ""), (unsigned int)totusers, (totusers > 1 ? "s" : ""), avg_users)); + user->WriteRemoteNumeric(RPL_ENDMAP, "End of /MAP"); return CMD_SUCCESS; }