added support for independent "zero-bots" (bots without an own source file)
[NeonServV5.git] / src / cmd_global_commands.c
index 0b6d16c00dd9d29d965b9b6f5cdf047747c5c47e..4008574f911acff754f4d6d14bb55f3603db30ec 100644 (file)
@@ -29,27 +29,31 @@ CMD_BIND(global_cmd_commands) {
     struct cmd_binding *cbind;
     int bindcount = 0;
     for(cbind = getAllBinds(NULL); cbind; cbind = getAllBinds(cbind)) {
-        if(cbind->botid == client->botid && !(cbind->func->flags & CMDFLAG_FUNCMD))
+        if(cbind->botid == client->botid && (cbind->botid || cbind->clientid == client->clientid) && !(cbind->func->flags & CMDFLAG_FUNCMD))
             bindcount++;
     }
     struct cmd_binding *binds[bindcount];
     bindcount = 0;
     for(cbind = getAllBinds(NULL); cbind; cbind = getAllBinds(cbind)) {
-        if(cbind->botid == client->botid && !(cbind->func->flags & CMDFLAG_FUNCMD))
+        if(cbind->botid == client->botid && (cbind->botid || cbind->clientid == client->clientid) && !(cbind->func->flags & CMDFLAG_FUNCMD))
             binds[bindcount++] = cbind;
     }
     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];
+    char funcname[MAXLEN];
+    int funcpos;
     for(i = 0; i < bindcount; i++) {
         cbind = binds[i];
         content[0] = cbind->cmd;
@@ -57,7 +61,16 @@ 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->triggered);
+        content[3] = triggered;
+        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