added support for independent "zero-bots" (bots without an own source file)
[NeonServV5.git] / src / cmd_global_unbind.c
index 498e803e926d5fefe4f0ee6c85d66467e036f63a..c83a387f4dcaed481281f98b947318aa0f6e98f6 100644 (file)
 CMD_BIND(global_cmd_unbind) {
     MYSQL_RES *res;
     MYSQL_ROW row;
-    struct cmd_binding *cbind = find_cmd_binding(client->botid, argv[0]);
-    printf_mysql_query("SELECT `function` FROM `bot_binds` WHERE `botclass` = '%d' AND `command` = '%s'", client->botid, escape_string(argv[0]));
+    struct cmd_binding *cbind = find_botwise_cmd_binding(client->botid, client->clientid, argv[0]);
+    if(client->botid == 0)
+        printf_mysql_query("SELECT `id`, `function` FROM `bot_binds` WHERE `botclass` = '0' AND `botid` = '%d' AND `command` = '%s'", client->clientid, escape_string(argv[0]));
+    else
+        printf_mysql_query("SELECT `id`, `function` FROM `bot_binds` WHERE `botclass` = '%d' AND `command` = '%s'", client->botid, escape_string(argv[0]));
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL && (!cbind || !(cbind->flags & CMDFLAG_TEMPONARY_BIND))) {
         reply(getTextBot(), user, "NS_UNBIND_NOT_FOUND", argv[0]);
         return;
     }
-    struct cmd_function *function = find_cmd_function(client->botid, row[0]);
+    struct cmd_function *function = find_cmd_function(client->botid, row[1]);
     if(function && (function->flags & CMDFLAG_REQUIRED)) {
-        printf_mysql_query("SELECT `id` FROM `bot_binds` WHERE `botclass` = '%d' AND `function` = '%s'", client->botid, escape_string(function->name));
+        if(client->botid == 0)
+            printf_mysql_query("SELECT `id` FROM `bot_binds` WHERE `botclass` = '0' AND `botid` = '%d' AND `function` = '%s'", client->clientid, escape_string(function->name));
+        else
+            printf_mysql_query("SELECT `id` FROM `bot_binds` WHERE `botclass` = '%d' AND `function` = '%s'", client->botid, escape_string(function->name));
         res = mysql_use();
         if (mysql_num_rows(res) <= 1) {
             reply(getTextBot(), user, "NS_UNBIND_REQUIRED", function->name);
             return;
         }
     }
-    unbind_cmd(client->botid, argv[0]);
-    if((!cbind || !(cbind->flags & CMDFLAG_TEMPONARY_BIND)))
+    unbind_botwise_cmd(client->botid, client->clientid, argv[0]);
+    if(!cbind || !(cbind->flags & CMDFLAG_TEMPONARY_BIND))
         printf_mysql_query("DELETE FROM `bot_binds` WHERE `id` = '%s'", row[0]);
     reply(getTextBot(), user, "NS_UNBIND_DONE", argv[0]);
     logEvent(event);