added cmd_unregister and cmd_recover
[NeonServV5.git] / cmd_neonserv_unregister.c
1
2 /*
3 * argv[0] - channel
4 */
5 static CMD_BIND(neonserv_cmd_unregister) {
6     MYSQL_RES *res;
7     MYSQL_ROW row;
8     char *channel = argv[0];
9     if(!is_valid_chan(channel)) {
10         reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", argv[0]);
11         return;
12     }
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);
14     res = mysql_use();
15     if ((row = mysql_fetch_row(res)) == NULL) {
16         reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
17         return;
18     }
19     int botid = atoi(row[0]);
20     struct ClientSocket *bot;
21     for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
22         if(bot->clientid == botid)
23             break;
24     }
25     if(bot) {
26         putsock(bot, "PART %s :Channel unregistered.", channel);
27     }
28     printf_mysql_query("DELETE FROM `bot_channels` WHERE `id` = '%s'", row[1]);
29     reply(getTextBot(), user, "NS_UNREGISTER_DONE", channel);
30 }