2 #include "cmd_neonserv.h"
7 CMD_BIND(neonserv_cmd_recover) {
10 char *channel = argv[0];
11 if(!is_valid_chan(channel)) {
12 reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", argv[0]);
15 printf_mysql_query("SELECT `botid`, `bot_channels`.`id` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chan->channel_id, client->botid);
17 if ((row = mysql_fetch_row(res)) != NULL) {
18 reply(getTextBot(), user, "NS_REGISTER_ALREADY", argv[0], client->user->nick);
22 printf_mysql_query("SELECT `channel_id` FROM `channels` WHERE `channel_name` = '%s'", escape_string(channel));
24 if ((row = mysql_fetch_row(res)) != NULL) {
25 chanid = atoi(row[0]);
27 reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
30 printf_mysql_query("SELECT `id`, `max_channels`, `defaulttrigger` FROM `bots` WHERE `botclass` = '%d' ORDER BY `register_priority` DESC", client->botid);
34 while ((row = mysql_fetch_row(res)) != NULL) {
36 printf_mysql_query("SELECT COUNT(*) FROM `bot_channels` WHERE `botid` = '%s'", row[0]);
37 row2 = mysql_fetch_row(mysql_use());
38 if(atoi(row2[0]) < atoi(row[1])) {
45 reply(getTextBot(), user, "NS_REGISTER_FULL");
48 struct ClientSocket *bot;
49 for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
50 if(bot->clientid == botid)
54 putsock(bot, "JOIN %s", channel);
56 reply(getTextBot(), user, "NS_REGISTER_DISCONNECTED");
57 printf_mysql_query("INSERT INTO `bot_channels` (`botid`, `chanid`, `trigger`) VALUES ('%d', '%d', '%s')", botid, chanid, bottrigger);
58 reply(getTextBot(), user, "NS_RECOVER_DONE", channel);