5 static CMD_BIND(neonserv_cmd_recover) {
8 char *channel = argv[0];
9 if(!is_valid_chan(channel)) {
10 reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", argv[0]);
13 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);
15 if ((row = mysql_fetch_row(res)) != NULL) {
16 reply(getTextBot(), user, "NS_REGISTER_ALREADY", argv[0], client->user->nick);
20 printf_mysql_query("SELECT `channel_id` FROM `channels` WHERE `channel_name` = '%s'", escape_string(channel));
22 if ((row = mysql_fetch_row(res)) != NULL) {
23 chanid = atoi(row[0]);
25 reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
28 printf_mysql_query("SELECT `id`, `max_channels`, `defaulttrigger` FROM `bots` WHERE `botclass` = '%d' ORDER BY `register_priority` DESC", client->botid);
32 while ((row = mysql_fetch_row(res)) != NULL) {
34 printf_mysql_query("SELECT COUNT(*) FROM `bot_channels` WHERE `botid` = '%s'", row[0]);
35 row2 = mysql_fetch_row(mysql_use());
36 if(atoi(row2[0]) < atoi(row[1])) {
43 reply(getTextBot(), user, "NS_REGISTER_FULL");
46 struct ClientSocket *bot;
47 for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
48 if(bot->clientid == botid)
52 putsock(bot, "JOIN %s", channel);
54 reply(getTextBot(), user, "NS_REGISTER_DISCONNECTED");
55 printf_mysql_query("INSERT INTO `bot_channels` (`botid`, `chanid`, `trigger`) VALUES ('%d', '%d', '%s')", botid, chanid, bottrigger);
56 reply(getTextBot(), user, "NS_RECOVER_DONE", channel);