X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fcmd_neonserv_listrank.c;h=316e3c66ffbe1cc37f355bc23b9d26be4fc3e9e5;hb=44436a96352a38631237978c9fd431cef3d85cfb;hp=f9c387b88e0bcd21993c528bf634e7fe368080cc;hpb=c575e458c6257e75b97884847143b20965a5dfda;p=NeonServV5.git diff --git a/src/cmd_neonserv_listrank.c b/src/cmd_neonserv_listrank.c index f9c387b..316e3c6 100644 --- a/src/cmd_neonserv_listrank.c +++ b/src/cmd_neonserv_listrank.c @@ -1,4 +1,4 @@ -/* cmd_neonserv_listrank.c - NeonServ v5.2 +/* cmd_neonserv_listrank.c - NeonServ v5.3 * Copyright (C) 2011 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -23,7 +23,7 @@ CMD_BIND(neonserv_cmd_listrank) { MYSQL_RES *res, *res2; - MYSQL_ROW row; + MYSQL_ROW row, row2; struct Table *table; int ranks = 0; printf_mysql_query("SELECT `rank_id`, `rank_name` FROM `support_ranks` ORDER BY `rank_order` ASC"); @@ -34,14 +34,23 @@ CMD_BIND(neonserv_cmd_listrank) { content[1] = get_language_string(user, "NS_LISTRANK_NAME"); content[2] = get_language_string(user, "NS_LISTRANK_ASSIGNED"); table_add(table, content); + char usersBuf[MAXLEN]; + int usersPos, userCount; + char assignedBuf[MAXLEN]; while ((row = mysql_fetch_row(res)) != NULL) { ranks++; content[0] = row[0]; content[1] = row[1]; - printf_mysql_query("SELECT COUNT(*) FROM `users` WHERE `user_rank` = '%s'", row[0]); + printf_mysql_query("SELECT `user_user`, `user_god` FROM `users` WHERE `user_rank` = '%s'", row[0]); res2 = mysql_use(); - row = mysql_fetch_row(res2); - content[2] = row[0]; + usersPos = 0; + userCount = 0; + while((row2 = mysql_fetch_row(res2)) != NULL) { + usersPos += sprintf(usersBuf+usersPos, (usersPos ? ", %s%s" : "%s%s"), (strcmp(row2[1], "0") ? "@" : ""), row2[0]); + userCount++; + } + sprintf(assignedBuf, (userCount ? "%d (%s)" : "%d"), userCount, usersBuf); + content[2] = assignedBuf; table_add(table, content); } //send the table @@ -53,8 +62,16 @@ CMD_BIND(neonserv_cmd_listrank) { if(!ranks) reply(getTextBot(), user, "NS_TABLE_NONE"); table_free(table); - printf_mysql_query("SELECT COUNT(*) FROM `users` WHERE `user_rank` = '0' AND `user_access` > 0"); + printf_mysql_query("SELECT `user_user` FROM `users` WHERE `user_rank` = '0' AND `user_access` > 0"); res2 = mysql_use(); - row = mysql_fetch_row(res2); - reply(getTextBot(), user, "NS_LISTRANK_UNRANKED", atoi(row[0])); + usersPos = 0; + userCount = 0; + while((row2 = mysql_fetch_row(res2)) != NULL) { + usersPos += sprintf(usersBuf+usersPos, (usersPos ? ", %s%s" : "%s%s"), (strcmp(row2[1], "0") ? "@" : ""), row2[0]); + userCount++; + } + reply(getTextBot(), user, "NS_LISTRANK_UNRANKED", userCount); + if(userCount) { + reply(getTextBot(), user, " %s", usersBuf); + } }