added cmd_bind & cmd_unbind
[NeonServV5.git] / cmd_neonserv_bind.c
1
2 /*
3 * argv[0]   command name
4 * argv[1]   command function
5 * argv[2-*] parameters (optional)
6 */
7
8 static CMD_BIND(neonserv_cmd_bind) {
9     MYSQL_RES *res;
10     MYSQL_ROW row;
11     printf_mysql_query("SELECT `function` FROM `bot_binds` WHERE `botclass` = '%d' AND `command` = '%s'", client->botid, escape_string(argv[0]));
12     res = mysql_use();
13     if ((row = mysql_fetch_row(res)) != NULL) {
14         reply(getTextBot(), user, "NS_BIND_ALREADY", argv[0], row[0]);
15         return;
16     }
17     char *params;
18     if(argc > 2)
19         params = merge_argv(argv, 2, argc);
20     else
21         params = "";
22     struct cmd_function *function = find_cmd_function(client->botid, argv[1]);
23     if(!function) {
24         reply(getTextBot(), user, "NS_BIND_UNKNOWN", argv[1]);
25         return;
26     }
27     bind_cmd_to_function(client->botid, argv[0], function);
28     if(*params)
29         bind_set_parameters(client->botid, argv[0], params);
30     printf_mysql_query("INSERT INTO `bot_binds` (`botclass`, `command`, `function`, `parameters`) VALUES ('%d', '%s', '%s', '%s')", client->botid, escape_string(argv[0]), escape_string(function->name), params);
31     reply(getTextBot(), user, "NS_BIND_DONE", argv[0], function->name);
32     logEvent(event);
33 }