X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fcmd_neonserv_listrank.c;h=65d53cf89a80e49cd8d21021b1a2137fca8bea56;hb=b53d0c5f88063f075a48a0426f9d5d6b3490b9fc;hp=f28b4bfd7da21722284ae45937548c58752c1ade;hpb=7f0b743ba1824e83c6cc94a56c604cea235e4046;p=NeonServV5.git diff --git a/src/cmd_neonserv_listrank.c b/src/cmd_neonserv_listrank.c index f28b4bf..65d53cf 100644 --- a/src/cmd_neonserv_listrank.c +++ b/src/cmd_neonserv_listrank.c @@ -1,5 +1,5 @@ -/* cmd_neonserv_listrank.c - NeonServ v5.0 - * Copyright (C) 2011 Philipp Kreil (pk910) +/* cmd_neonserv_listrank.c - NeonServ v5.3 + * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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); + } }