From: pk910 Date: Mon, 7 Nov 2011 04:04:27 +0000 (+0100) Subject: show how many times a command is triggered in cmd_commands X-Git-Tag: v5.3~196 X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=commitdiff_plain;h=9ae50cc35bcca24f82cd2e70c4af6a72a45c7a6f show how many times a command is triggered in cmd_commands --- diff --git a/src/bot_NeonServ.c b/src/bot_NeonServ.c index a2d842a..5ef4c8b 100644 --- a/src/bot_NeonServ.c +++ b/src/bot_NeonServ.c @@ -317,6 +317,7 @@ static const struct default_language_entry msgtab[] = { {"NS_COMMANDS_NAME", "Name"}, {"NS_COMMANDS_ACCESS", "Access"}, {"NS_COMMANDS_GACCESS", "GodAccess"}, + {"NS_COMMANDS_TRIGGERED", "Triggered"}, {"NS_COMMANDS_FUNCTION", "Function"}, {"NS_DNR_SET", "$b%s$b is do-not-register (by $b%s$b): %s" }, /* {ARGS: "#TestChan", "TestUser", "because of it is like it is"} */ {"NS_DNR_SET_EXPIRES", "$b%s$b is do-not-register (by $b%s$b; expires %s): %s" }, /* {ARGS: "#TestChan", "TestUser", "1 day", "because of it is like it is"} */ diff --git a/src/cmd_global_commands.c b/src/cmd_global_commands.c index 0b6d16c..10b2c4b 100644 --- a/src/cmd_global_commands.c +++ b/src/cmd_global_commands.c @@ -41,15 +41,17 @@ CMD_BIND(global_cmd_commands) { qsort(binds, bindcount, sizeof(struct cmd_binding *), global_cmd_commands_sort); int i; struct Table *table; - table = table_init(4, bindcount + 1, 0); - char *content[4]; + table = table_init(5, bindcount + 1, 0); + char *content[5]; content[0] = get_language_string(user, "NS_COMMANDS_NAME"); content[1] = get_language_string(user, "NS_COMMANDS_ACCESS"); content[2] = get_language_string(user, "NS_COMMANDS_GACCESS"); - content[3] = get_language_string(user, "NS_COMMANDS_FUNCTION"); + content[3] = get_language_string(user, "NS_COMMANDS_TRIGGERED"); + content[4] = get_language_string(user, "NS_COMMANDS_FUNCTION"); table_add(table, content); char caccess[5]; char gaccess[5]; + char triggered[10]; for(i = 0; i < bindcount; i++) { cbind = binds[i]; content[0] = cbind->cmd; @@ -57,7 +59,9 @@ CMD_BIND(global_cmd_commands) { content[1] = caccess; sprintf(gaccess, "%d", global_cmd_commands_operaccess(cbind)); content[2] = gaccess; - content[3] = cbind->func->name; + sprintf(triggered, "%d", cbind->func->triggered); + content[3] = triggered; + content[4] = cbind->func->name; table_add(table, content); } //send the table diff --git a/src/modcmd.c b/src/modcmd.c index b20a39e..ecb788a 100644 --- a/src/modcmd.c +++ b/src/modcmd.c @@ -57,6 +57,7 @@ static struct cmd_function *cmd_functions = NULL; static struct trigger_callback *trigger_callbacks = NULL; static struct cmd_bot_alias *bot_aliases = NULL; static struct ClientSocket *tmp_text_client; +static int total_triggered = 0; int statistics_commands = 0; static const struct default_language_entry msgtab[] = { @@ -156,6 +157,8 @@ static void handle_command(struct ClientSocket *client, struct UserNode *user, s if(cbind->botid == client->botid && stricmp(cbind->cmd, message) == 0) { if(statistics_enabled) statistics_commands++; + total_triggered++; + cbind->func->triggered++; if((cbind->func->flags & CMDFLAG_FUNCMD)) { if(!sent_chan) break; @@ -481,6 +484,7 @@ int register_command(int botid, char *name, cmd_bind_t *func, int paramcount, ch cmdfunc->paramcount = paramcount; cmdfunc->channel_access = channel_access; cmdfunc->global_access = global_access; + cmdfunc->triggered = 0; cmdfunc->next = cmd_functions; cmd_functions = cmdfunc; return 1;