show whole binding (inclusive predefined parameters) and trigger count _per bind_
authorpk910 <philipp@zoelle1.de>
Mon, 7 Nov 2011 06:27:09 +0000 (07:27 +0100)
committerpk910 <philipp@zoelle1.de>
Mon, 7 Nov 2011 06:27:09 +0000 (07:27 +0100)
src/cmd_global_commands.c
src/modcmd.c
src/modcmd.h

index 10b2c4b4628888e71edcc58e9ec5dc7e294e2e3d..e0cfba056a836031ccb7bbc1f21252ca19ffd804 100644 (file)
@@ -52,6 +52,8 @@ CMD_BIND(global_cmd_commands) {
     char caccess[5];
     char gaccess[5];
     char triggered[10];
+    char funcname[MAXLEN];
+    int funcpos;
     for(i = 0; i < bindcount; i++) {
         cbind = binds[i];
         content[0] = cbind->cmd;
@@ -59,9 +61,16 @@ CMD_BIND(global_cmd_commands) {
         content[1] = caccess;
         sprintf(gaccess, "%d", global_cmd_commands_operaccess(cbind));
         content[2] = gaccess;
-        sprintf(triggered, "%d", cbind->func->triggered);
+        sprintf(triggered, "%d", cbind->triggered);
         content[3] = triggered;
-        content[4] = cbind->func->name;
+        funcpos = sprintf(funcname, "%s", cbind->func->name);
+        if(cbind->paramcount) {
+            int j;
+            for(j = 0; j < cbind->paramcount; j++) {
+                funcpos += sprintf(funcname + funcpos, " %s", cbind->parameters[j]);
+            }
+        }
+        content[4] = funcname;
         table_add(table, content);
     }
     //send the table
index ecb788adce3586d542c1c6d024074a4bc88f11ad..931c508df83daaca0d0751e056effa8720d0c28c 100644 (file)
@@ -158,7 +158,7 @@ static void handle_command(struct ClientSocket *client, struct UserNode *user, s
             if(statistics_enabled)
                 statistics_commands++;
             total_triggered++;
-            cbind->func->triggered++;
+            cbind->triggered++;
             if((cbind->func->flags & CMDFLAG_FUNCMD)) {
                 if(!sent_chan)
                     break;
@@ -484,7 +484,6 @@ 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;
@@ -541,6 +540,7 @@ int bind_cmd_to_function(int botid, char *cmd, struct cmd_function *func) {
     cbind->global_access = 0;
     cbind->channel_access = NULL;
     cbind->flags = 0;
+    cbind->triggered = 0;
     cbind->next = cmd_binds[bind_index];
     cmd_binds[bind_index] = cbind;
     return 1;
@@ -586,6 +586,7 @@ int bind_cmd_to_command(int botid, char *cmd, char *func) {
     cbind->global_access = 0;
     cbind->channel_access = NULL;
     cbind->flags = 0;
+    cbind->triggered = 0;
     cmd_binds[bind_index] = cbind;
     return 1;
 }
index 4f0616269e1696263604e8f772e3aca4c2383215..e84453788700b65625516043d842617adac68330 100644 (file)
@@ -52,7 +52,6 @@ struct cmd_function {
     int paramcount;
     int global_access;
     char *channel_access;
-    int triggered;
     
     struct cmd_function *next;
 };
@@ -66,6 +65,7 @@ struct cmd_binding {
     int paramcount;
     int global_access;
     char *channel_access;
+    int triggered;
     
     struct cmd_binding *next;
 };