From 2bc4c904aa0902da006f3a6ef33ee762dab767e0 Mon Sep 17 00:00:00 2001 From: pk910 Date: Fri, 4 Nov 2011 21:50:32 +0100 Subject: [PATCH] modified cmd_listrank to show all usernames --- src/cmd_neonserv_listrank.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/cmd_neonserv_listrank.c b/src/cmd_neonserv_listrank.c index f9c387b..051dbbb 100644 --- a/src/cmd_neonserv_listrank.c +++ b/src/cmd_neonserv_listrank.c @@ -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); + } } -- 2.20.1