- for (unsigned int q = 0; q < Current->ChildCount(); q++)
- {
- if ((Current->GetChild(q)->Hidden) || ((Utils->HideULines) && (ServerInstance->ULine(Current->GetChild(q)->GetName().c_str()))))
- {
- if (*user->oper)
- {
- ShowMap(Current->GetChild(q),user,(Utils->FlatLinks && (!*user->oper)) ? depth : depth+2,matrix,totusers,totservers);
- }
- }
- else
- {
- ShowMap(Current->GetChild(q),user,(Utils->FlatLinks && (!*user->oper)) ? depth : depth+2,matrix,totusers,totservers);
- }
+ char* myname = names + 100 * line;
+ char* mystat = stats + 50 * line;
+ memset(myname, ' ', depth);
+ int w = depth;
+
+ if (user->IsOper())
+ {
+ w += snprintf(myname + depth, 99 - depth, "%s (%s)", Current->GetName().c_str(), Current->GetID().c_str());
+ }
+ else
+ {
+ w += snprintf(myname + depth, 99 - depth, "%s", Current->GetName().c_str());
+ }
+ memset(myname + w, ' ', 100 - w);
+ if (w > maxnamew)
+ maxnamew = w;
+ snprintf(mystat, 49, "%5d [%5.2f%%]%s", Current->UserCount, percent, operdata.c_str());
+
+ line++;
+
+ if (user->IsOper() || !Utils->FlatLinks)
+ depth = depth + 2;
+ for (unsigned int q = 0; q < Current->ChildCount(); q++)
+ {
+ TreeServer* child = Current->GetChild(q);
+ if (!user->IsOper()) {
+ if (child->Hidden)
+ continue;
+ if ((Utils->HideULines) && (ServerInstance->ULine(child->GetName())))
+ continue;