show how many times a command is triggered in cmd_commands
authorpk910 <philipp@zoelle1.de>
Mon, 7 Nov 2011 04:04:27 +0000 (05:04 +0100)
committerpk910 <philipp@zoelle1.de>
Mon, 7 Nov 2011 04:07:31 +0000 (05:07 +0100)
src/bot_NeonServ.c
src/cmd_global_commands.c
src/modcmd.c

index a2d842ae7ccaaa6e90a5f6d5f8017c1786e9b58e..5ef4c8beb7c31792837af5daf91cbbdf0c368701 100644 (file)
@@ -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"} */
index 0b6d16c00dd9d29d965b9b6f5cdf047747c5c47e..10b2c4b4628888e71edcc58e9ec5dc7e294e2e3d 100644 (file)
@@ -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
index b20a39e26dc40e5e9fcf8e3e90f83723c9cc135f..ecb788adce3586d542c1c6d024074a4bc88f11ad 100644 (file)
@@ -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;