added DoNotRegister system and command cmd_noregister
[NeonServV5.git] / src / cmd_global_register.c
index 08c172a17b7bc6eb9b969c2323e6e5a9e67292c1..61d3e909479900f8465cc558729054a732a49090 100644 (file)
@@ -53,6 +53,23 @@ CMD_BIND(global_cmd_register) {
         } else
             multibot = 1;
     }
+    printf_mysql_query("SELECT `user_user`, `dnr_timeout`, `dnr_reason`, `dnr_id` FROM `donotregister` LEFT JOIN `users` ON `dnr_user` = `user_id` WHERE `dnr_target` = '%s'", escape_string(channel));
+    res = mysql_use();
+    if((row = mysql_fetch_row(res)) != NULL) {
+        int expire_time = atoi(row[1]);
+        if(expire_time) {
+            if(expire_time - time(0) <= 0) {
+                printf_mysql_query("DELETE FROM `donotregister` WHERE `dnr_id` = '%s'", row[3]);
+            } else {
+                char expireBuf[MAXLEN];
+                reply(getTextBot(), user, "NS_DNR_SET_EXPIRES", channel, row[0], timeToStr(user, (expire_time - time(0)), 2, expireBuf), row[2]);
+                return;
+            }
+        } else {
+            reply(getTextBot(), user, "NS_DNR_SET", channel, row[0], row[2]);
+            return;
+        }
+    }
     //if theres already another bot in the channel we don't need a owner parameter...
     if(multibot && argc < 2) {
         //skip all these owner check lines
@@ -157,6 +174,23 @@ static void global_cmd_register_async1(struct ClientSocket *client, struct Clien
     else
         adminid = 0;
     if(multibot != 2) {
+        printf_mysql_query("SELECT `user_user`, `dnr_timeout`, `dnr_reason`, `dnr_id` FROM `donotregister` LEFT JOIN `users` ON `dnr_user` = `user_id` WHERE `dnr_target` = '%s'", escape_string(auth));
+        res = mysql_use();
+        if((row = mysql_fetch_row(res)) != NULL) {
+            int expire_time = atoi(row[1]);
+            if(expire_time) {
+                if(expire_time - time(0) <= 0) {
+                    printf_mysql_query("DELETE FROM `donotregister` WHERE `dnr_id` = '%s'", row[3]);
+                } else {
+                    char expireBuf[MAXLEN];
+                    reply(getTextBot(), user, "NS_DNR_SET_EXPIRES", auth, row[0], timeToStr(user, (expire_time - time(0)), 2, expireBuf), row[2]);
+                    return;
+                }
+            } else {
+                reply(getTextBot(), user, "NS_DNR_SET", auth, row[0], row[2]);
+                return;
+            }
+        }
         printf_mysql_query("SELECT `user_id` FROM `users` WHERE `user_user` = '%s'", escape_string(auth));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {