removed getTextBot() function and added textbot parameter to the CMD_BIND header...
[NeonServV5.git] / src / modules / NeonServ.mod / cmd_neonserv_set.c
index 2243c0df38e0401d0122ccfb149c638016a62b66..48fb7228e6ee83e6e18d3899b9bf3ca6d7d48c01 100644 (file)
 
 #include "cmd_neonserv.h"
 
-typedef char* neonserv_cmd_set_function(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
-static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int setting, char *argument);
-static char* neonserv_cmd_set_trigger(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
-static char* neonserv_cmd_set_modes(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
-static char* neonserv_cmd_set_dynlimit(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
-static char* neonserv_cmd_set_nodelete(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
-static char* neonserv_cmd_set_backupbot(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
+typedef char* neonserv_cmd_set_function(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
+static void neonserv_cmd_set_setting(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int setting, char *argument);
+static char* neonserv_cmd_set_trigger(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
+static char* neonserv_cmd_set_modes(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
+static char* neonserv_cmd_set_dynlimit(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
+static char* neonserv_cmd_set_nodelete(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
+static char* neonserv_cmd_set_backupbot(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument);
 
 #define NS_VALID_FUNCTION 0x01
 #define NS_VALID_STRING   0x02
@@ -95,7 +95,7 @@ CMD_BIND(neonserv_cmd_set) {
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_SET_DEFAULTS_OWNER", chan->name);
+                reply(textclient, user, "NS_SET_DEFAULTS_OWNER", chan->name);
                 return;
             }
         }
@@ -120,10 +120,10 @@ CMD_BIND(neonserv_cmd_set) {
                 query[querypos-2] = '\0';
             }
             printf_mysql_query("UPDATE `channels` SET %s WHERE `channel_id` = '%d'", query, chan->channel_id);
-            reply(getTextBot(), user, "NS_SET_DEFAULTS_DONE", chan->name);
+            reply(textclient, user, "NS_SET_DEFAULTS_DONE", chan->name);
             logEvent(event);
         } else {
-            reply(getTextBot(), user, "NS_SET_DEFAULTS_CODE", chan->name, defaultskey);
+            reply(textclient, user, "NS_SET_DEFAULTS_CODE", chan->name, defaultskey);
         }
     } else if(argc && strcmp(argv[0], "help")) {
         //find the correct command
@@ -144,9 +144,9 @@ CMD_BIND(neonserv_cmd_set) {
                 }
                 if(channel_settings[i].valid & NS_VALID_FUNCTION) {
                     neonserv_cmd_set_function *func = channel_settings[i].parameter;
-                    func(client, user, chan, event, channel_settings[i].setting, args);
+                    func(client, textclient, user, chan, event, channel_settings[i].setting, args);
                 } else {
-                    neonserv_cmd_set_setting(client, user, chan, event, i, args);
+                    neonserv_cmd_set_setting(client, textclient, user, chan, event, i, args);
                 }
                 j = 1;
                 break;
@@ -155,7 +155,7 @@ CMD_BIND(neonserv_cmd_set) {
         }
         if(j == 0) {
             //unknown setting
-            reply(getTextBot(), user, "NS_SET_UNKNOWN_SETTING", argv[0]);
+            reply(textclient, user, "NS_SET_UNKNOWN_SETTING", argv[0]);
         }
     } else {
         char query[MAX_QUERY_LEN], *value, *org_value, *tmp, nameBuf[64];
@@ -198,7 +198,7 @@ CMD_BIND(neonserv_cmd_set) {
         row = mysql_fetch_row(res);
         i = 0;
         j = 0;
-        reply(getTextBot(), user, "NS_SET_HEADER", chan->name);
+        reply(textclient, user, "NS_SET_HEADER", chan->name);
         while(channel_settings[i].setting) {
             if((channel_settings[i].valid & NS_VALID_IF_HALFOP) && !with_halfops) {
                 i++;
@@ -213,7 +213,7 @@ CMD_BIND(neonserv_cmd_set) {
                 org_value = (row[j] ? row[j] : defaults[j]);
             } else if(channel_settings[i].valid & NS_VALID_FUNCTION) {
                 neonserv_cmd_set_function *func = channel_settings[i].parameter;
-                org_value = func(client, user, chan, event, NULL, NULL);
+                org_value = func(client, textclient, user, chan, event, NULL, NULL);
             } else
                 org_value = "0";
             value = org_value;
@@ -246,13 +246,13 @@ CMD_BIND(neonserv_cmd_set) {
         }
         char **table_lines = table_end(table);
         for(i = 0; i < table->entrys; i++) {
-            reply(getTextBot(), user, table_lines[i]);
+            reply(textclient, user, table_lines[i]);
         }
         table_free(table);
     }
 }
 
-static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int setting, char *args) {
+static void neonserv_cmd_set_setting(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int setting, char *args) {
     char *value;
     char nameBuf[64];
     //get current value
@@ -280,7 +280,7 @@ static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNod
             int caccess = atoi(args);
             int max = ((valid & NS_VALID_NO501) ? 500 : 501);
             if(caccess < 0 || caccess > max) {
-                reply(getTextBot(), user, "NS_INVALID_ACCESS", caccess);
+                reply(textclient, user, "NS_INVALID_ACCESS", caccess);
                 return;
             }
             int uaccess = getChannelAccess(user, chan);
@@ -289,7 +289,7 @@ static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNod
                 if(isGodMode(user)) {
                     event->flags |= CMDFLAG_OPLOG;
                 } else {
-                    reply(getTextBot(), user, "NS_SET_CANNOT_SET");
+                    reply(textclient, user, "NS_SET_CANNOT_SET");
                     return;
                 }
             }
@@ -297,7 +297,7 @@ static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNod
                 if(isGodMode(user)) {
                     event->flags |= CMDFLAG_OPLOG;
                 } else {
-                    reply(getTextBot(), user, "NS_SET_BADLEVEL");
+                    reply(textclient, user, "NS_SET_BADLEVEL");
                     return;
                 }
             }
@@ -308,13 +308,13 @@ static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNod
             int options = atoi((char *) channel_settings[setting].parameter);
             int coption = atoi(args);
             if(coption < 0 || coption >= options) {
-                reply(getTextBot(), user, "NS_SET_INVALID_OPTION", coption);
+                reply(textclient, user, "NS_SET_INVALID_OPTION", coption);
                 int i;
                 int nameBufPos = 0;
                 if(valid & NS_HAS_OPT) {
                     for(i = 0; i < options; i++) {
                         sprintf(nameBuf, "NS_SET_OPTION_%s_%d", channel_settings[setting].setting, i);
-                        reply(getTextBot(), user, "\002%d\002 - %s", i, get_language_string(user, nameBuf));
+                        reply(textclient, user, "\002%d\002 - %s", i, get_language_string(user, nameBuf));
                     }
                 } else {
                     for(i = 0; i < options; i++) {
@@ -322,7 +322,7 @@ static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNod
                     }
                     if(nameBufPos) {
                         nameBuf[nameBufPos-2] = '\0';
-                        reply(getTextBot(), user, nameBuf);
+                        reply(textclient, user, nameBuf);
                     }
                 }
                 return;
@@ -338,7 +338,7 @@ static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNod
             } else if(!strcmp(args, "1") || !stricmp(args, "on") || !stricmp(args, get_language_string(user, "NS_SET_ON"))) {
                 args = "1";
             } else {
-                reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", args);
+                reply(textclient, user, "NS_SET_INVALID_BOOLEAN", args);
                 return;
             }
         }
@@ -351,18 +351,18 @@ static void neonserv_cmd_set_setting(struct ClientSocket *client, struct UserNod
         sprintf(nameBuf, "NS_SET_OPTION_%s_%s", channel_settings[setting].setting, value);
         char *tmp = get_language_string(user, nameBuf);
         if(tmp)
-            reply(getTextBot(), user, "\002%s\002 %s - %s", channel_settings[setting].setting, value, tmp);
+            reply(textclient, user, "\002%s\002 %s - %s", channel_settings[setting].setting, value, tmp);
         else
-            reply(getTextBot(), user, "\002%s\002 %s", channel_settings[setting].setting, value);
+            reply(textclient, user, "\002%s\002 %s", channel_settings[setting].setting, value);
     } else
-        reply(getTextBot(), user, "\002%s\002 %s", channel_settings[setting].setting, value);
+        reply(textclient, user, "\002%s\002 %s", channel_settings[setting].setting, value);
     if(channel_settings[setting].valid & NS_HAS_HELP) {
          sprintf(nameBuf, "NS_SET_HELP_%s", channel_settings[setting].setting);
-         reply(getTextBot(), user, "  %s", get_language_string(user, nameBuf));
+         reply(textclient, user, "  %s", get_language_string(user, nameBuf));
     }
 }
 
-static char* neonserv_cmd_set_trigger(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
+static char* neonserv_cmd_set_trigger(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
     char *trigger;
     //get current trigger
     MYSQL_RES *res;
@@ -377,7 +377,7 @@ static char* neonserv_cmd_set_trigger(struct ClientSocket *client, struct UserNo
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_SET_TRIGGER_OWNER", chan->name);
+                reply(textclient, user, "NS_SET_TRIGGER_OWNER", chan->name);
                 return NULL;
             }
         }
@@ -389,12 +389,12 @@ static char* neonserv_cmd_set_trigger(struct ClientSocket *client, struct UserNo
         logEvent(event);
     }
     if(setting) {
-        reply(getTextBot(), user, "\002%s\002 %s", setting, trigger);
+        reply(textclient, user, "\002%s\002 %s", setting, trigger);
     }
     return trigger;
 }
 
-static char* neonserv_cmd_set_modes(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
+static char* neonserv_cmd_set_modes(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
     char *value;
     char valueBuf[MAXLEN];
     //get current value
@@ -420,12 +420,12 @@ static char* neonserv_cmd_set_modes(struct ClientSocket *client, struct UserNode
         freeModeNode(modenode);
     }
     if(setting) {
-        reply(getTextBot(), user, "\002%s\002 %s", setting, value);
+        reply(textclient, user, "\002%s\002 %s", setting, value);
     }
     return value;
 }
 
-static char* neonserv_cmd_set_dynlimit(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
+static char* neonserv_cmd_set_dynlimit(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
     char *value;
     char tmp[64];
     //get current value
@@ -453,12 +453,12 @@ static char* neonserv_cmd_set_dynlimit(struct ClientSocket *client, struct UserN
         logEvent(event);
     }
     if(setting) {
-        reply(getTextBot(), user, "\002%s\002 %s", setting, value);
+        reply(textclient, user, "\002%s\002 %s", setting, value);
     }
     return value;
 }
 
-static char* neonserv_cmd_set_nodelete(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
+static char* neonserv_cmd_set_nodelete(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
     char *value;
     //get current value
     MYSQL_RES *res;
@@ -479,7 +479,7 @@ static char* neonserv_cmd_set_nodelete(struct ClientSocket *client, struct UserN
         } else if(!strcmp(argument, "1") || !strcmp(argument, "on") || !strcmp(argument, get_language_string(user, "NS_SET_ON"))) {
             argument = "1";
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", argument);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", argument);
             return NULL;
         }
         printf_mysql_query("UPDATE `channels` SET `channel_nodelete` = '%s' WHERE `channel_id` = '%d'", escape_string(argument), chan->channel_id);
@@ -488,12 +488,12 @@ static char* neonserv_cmd_set_nodelete(struct ClientSocket *client, struct UserN
         logEvent(event);
     }
     if(setting) {
-        reply(getTextBot(), user, "\002%s\002 %s", setting, value);
+        reply(textclient, user, "\002%s\002 %s", setting, value);
     }
     return value;
 }
 
-static char* neonserv_cmd_set_backupbot(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
+static char* neonserv_cmd_set_backupbot(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument) {
     int backupbot;
     //get current trigger
     MYSQL_RES *res;
@@ -516,13 +516,13 @@ static char* neonserv_cmd_set_backupbot(struct ClientSocket *client, struct User
                 backupbot = 1;
             }
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", argument);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", argument);
             return NULL;
         }
         logEvent(event);
     }
     if(setting) {
-        reply(getTextBot(), user, "\002%s\002 %s", setting, (backupbot ? "1" : "0"));
+        reply(textclient, user, "\002%s\002 %s", setting, (backupbot ? "1" : "0"));
     }
     return (backupbot ? "1" : "0");
 }