changed Makefile; build all commands as an own file
[NeonServV5.git] / cmd_neonserv_move.c
index e9fc54b29e90d669ca1a86477001ac0d3599528a..804954faf45ff92be7a1f9798fdd11e200e92da4 100644 (file)
@@ -1,9 +1,11 @@
 
+#include "cmd_neonserv.h"
+
 /*
 * argv[0] - channel
 * argv[1] - new channel
 */
-static CMD_BIND(neonserv_cmd_move) {
+CMD_BIND(neonserv_cmd_move) {
     MYSQL_RES *res;
     MYSQL_ROW row;
     char *channel = argv[0];
@@ -52,7 +54,17 @@ static CMD_BIND(neonserv_cmd_move) {
         putsock(bot, "JOIN %s", new_channel);
     }
     printf_mysql_query("DELETE FROM `channels` WHERE `channel_name` = '%s'", escape_string(new_channel));
-    printf_mysql_query("UPDATE `channels` SET `channel_name` = '%s' WHERE `id` = '%s'", escape_string(new_channel), row[1]);
+    printf_mysql_query("UPDATE `channels` SET `channel_name` = '%s' WHERE `channel_id` = '%s'", escape_string(new_channel), row[1]);
+    struct ChanNode *channode = getChanByName(channel);
+    if(channode && channode->flags & CHANFLAG_REQUESTED_CHANINFO) {
+        channode->flags &= ~CHANFLAG_CHAN_REGISTERED;
+        channode->channel_id = 0;
+    }
+    channode = getChanByName(new_channel);
+    if(channode && channode->flags & CHANFLAG_REQUESTED_CHANINFO) {
+        channode->flags |= CHANFLAG_CHAN_REGISTERED;
+        channode->channel_id = atoi(row[1]);
+    }
     reply(getTextBot(), user, "NS_MOVE_DONE", channel, new_channel);
     logEvent(event);
 }