Another year is about to end... So we have to update these damn copyright information :P
[NeonServV5.git] / src / cmd_global_unbind.c
index f4940d375199f6ea61758fcc23c90a7bf9fe3b39..8cd8f45715fe4788891938d8b3e8ec74e3edcb0c 100644 (file)
@@ -1,5 +1,5 @@
-/* cmd_global_unbind.c - NeonServ v5.2
- * Copyright (C) 2011  Philipp Kreil (pk910)
+/* cmd_global_unbind.c - NeonServ v5.3
+ * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 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 `id`, `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[1]);
+    struct cmd_function *function = find_cmd_function(client->botid, cbind->func->name);
     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]);
+    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]);