removed getTextBot() function and added textbot parameter to the CMD_BIND header...
authorpk910 <philipp@zoelle1.de>
Tue, 24 Jul 2012 10:44:08 +0000 (12:44 +0200)
committerpk910 <philipp@zoelle1.de>
Tue, 24 Jul 2012 10:49:27 +0000 (12:49 +0200)
106 files changed:
src/modcmd.c
src/modcmd.h
src/module_commands.c
src/modules.c
src/modules/NeonFun.mod/cmd_neonfun_4stone.c
src/modules/NeonFun.mod/cmd_neonfun_4view.c
src/modules/NeonFun.mod/cmd_neonfun_4wins.c
src/modules/NeonFun.mod/cmd_neonfun_uno.c
src/modules/NeonFun.mod/cmd_neonfun_unoplay.c
src/modules/NeonFun.mod/cmd_neonfun_unotake.c
src/modules/NeonHelp.mod/cmd_neonhelp_delete.c
src/modules/NeonHelp.mod/cmd_neonhelp_next.c
src/modules/NeonHelp.mod/cmd_neonhelp_requests.c
src/modules/NeonHelp.mod/cmd_neonhelp_stats.c
src/modules/NeonServ.mod/cmd_neonserv_access.c
src/modules/NeonServ.mod/cmd_neonserv_addban.c
src/modules/NeonServ.mod/cmd_neonserv_addrank.c
src/modules/NeonServ.mod/cmd_neonserv_addtimeban.c
src/modules/NeonServ.mod/cmd_neonserv_adduser.c
src/modules/NeonServ.mod/cmd_neonserv_assignrank.c
src/modules/NeonServ.mod/cmd_neonserv_ban.c
src/modules/NeonServ.mod/cmd_neonserv_bans.c
src/modules/NeonServ.mod/cmd_neonserv_chanservsync.c
src/modules/NeonServ.mod/cmd_neonserv_clvl.c
src/modules/NeonServ.mod/cmd_neonserv_csuspend.c
src/modules/NeonServ.mod/cmd_neonserv_cunsuspend.c
src/modules/NeonServ.mod/cmd_neonserv_dehalfop.c
src/modules/NeonServ.mod/cmd_neonserv_dehalfopall.c
src/modules/NeonServ.mod/cmd_neonserv_delban.c
src/modules/NeonServ.mod/cmd_neonserv_delme.c
src/modules/NeonServ.mod/cmd_neonserv_delrank.c
src/modules/NeonServ.mod/cmd_neonserv_deluser.c
src/modules/NeonServ.mod/cmd_neonserv_deop.c
src/modules/NeonServ.mod/cmd_neonserv_deopall.c
src/modules/NeonServ.mod/cmd_neonserv_devoice.c
src/modules/NeonServ.mod/cmd_neonserv_devoiceall.c
src/modules/NeonServ.mod/cmd_neonserv_down.c
src/modules/NeonServ.mod/cmd_neonserv_events.c
src/modules/NeonServ.mod/cmd_neonserv_giveowner.c
src/modules/NeonServ.mod/cmd_neonserv_halfop.c
src/modules/NeonServ.mod/cmd_neonserv_halfopall.c
src/modules/NeonServ.mod/cmd_neonserv_help.c
src/modules/NeonServ.mod/cmd_neonserv_info.c
src/modules/NeonServ.mod/cmd_neonserv_invite.c
src/modules/NeonServ.mod/cmd_neonserv_inviteme.c
src/modules/NeonServ.mod/cmd_neonserv_kick.c
src/modules/NeonServ.mod/cmd_neonserv_kickban.c
src/modules/NeonServ.mod/cmd_neonserv_listrank.c
src/modules/NeonServ.mod/cmd_neonserv_mdeluser.c
src/modules/NeonServ.mod/cmd_neonserv_mode.c
src/modules/NeonServ.mod/cmd_neonserv_myaccess.c
src/modules/NeonServ.mod/cmd_neonserv_nicklist.c
src/modules/NeonServ.mod/cmd_neonserv_noregister.c
src/modules/NeonServ.mod/cmd_neonserv_op.c
src/modules/NeonServ.mod/cmd_neonserv_opall.c
src/modules/NeonServ.mod/cmd_neonserv_oplog.c
src/modules/NeonServ.mod/cmd_neonserv_peek.c
src/modules/NeonServ.mod/cmd_neonserv_recover.c
src/modules/NeonServ.mod/cmd_neonserv_rename.c
src/modules/NeonServ.mod/cmd_neonserv_resync.c
src/modules/NeonServ.mod/cmd_neonserv_search.c
src/modules/NeonServ.mod/cmd_neonserv_set.c
src/modules/NeonServ.mod/cmd_neonserv_setrank.c
src/modules/NeonServ.mod/cmd_neonserv_suspend.c
src/modules/NeonServ.mod/cmd_neonserv_topic.c
src/modules/NeonServ.mod/cmd_neonserv_trace.c
src/modules/NeonServ.mod/cmd_neonserv_trim.c
src/modules/NeonServ.mod/cmd_neonserv_unban.c
src/modules/NeonServ.mod/cmd_neonserv_unbanall.c
src/modules/NeonServ.mod/cmd_neonserv_unbanme.c
src/modules/NeonServ.mod/cmd_neonserv_unsuspend.c
src/modules/NeonServ.mod/cmd_neonserv_unvisited.c
src/modules/NeonServ.mod/cmd_neonserv_up.c
src/modules/NeonServ.mod/cmd_neonserv_users.c
src/modules/NeonServ.mod/cmd_neonserv_uset.c
src/modules/NeonServ.mod/cmd_neonserv_voice.c
src/modules/NeonServ.mod/cmd_neonserv_voiceall.c
src/modules/NeonServ.mod/cmd_neonserv_wipeinfo.c
src/modules/NeonSpam.mod/cmd_neonspam_addbad.c
src/modules/NeonSpam.mod/cmd_neonspam_badwords.c
src/modules/NeonSpam.mod/cmd_neonspam_delbad.c
src/modules/NeonSpam.mod/cmd_neonspam_set.c
src/modules/funcmd.mod/cmd_funcmds.c
src/modules/global.mod/cmd_global_addbot.c
src/modules/global.mod/cmd_global_bind.c
src/modules/global.mod/cmd_global_bots.c
src/modules/global.mod/cmd_global_command.c
src/modules/global.mod/cmd_global_commands.c
src/modules/global.mod/cmd_global_delbot.c
src/modules/global.mod/cmd_global_extscript.c
src/modules/global.mod/cmd_global_god.c
src/modules/global.mod/cmd_global_meminfo.c
src/modules/global.mod/cmd_global_modcmd.c
src/modules/global.mod/cmd_global_motd.c
src/modules/global.mod/cmd_global_move.c
src/modules/global.mod/cmd_global_netinfo.c
src/modules/global.mod/cmd_global_reconnect.c
src/modules/global.mod/cmd_global_register.c
src/modules/global.mod/cmd_global_reloadlang.c
src/modules/global.mod/cmd_global_setaccess.c
src/modules/global.mod/cmd_global_setbot.c
src/modules/global.mod/cmd_global_staff.c
src/modules/global.mod/cmd_global_unbind.c
src/modules/global.mod/cmd_global_unregister.c
src/modules/global.mod/cmd_global_version.c
src/modules/module.h

index 764ccedab1c7807c4e854a879c73157ca9434cc9..2edabf17968f1b29a4bac9268382db08a02d6d0a 100644 (file)
@@ -57,7 +57,6 @@ static struct cmd_binding **cmd_binds;
 static struct cmd_function *cmd_functions = NULL;
 static struct trigger_callback *trigger_callbacks = NULL;
 static struct cmd_bot_alias *bot_aliases = NULL;
-static struct ClientSocket *tmp_text_client;
 static int total_triggered = 0;
 int statistics_commands = 0;
 
@@ -124,13 +123,12 @@ static char* get_channel_trigger(int botid, int clientid, struct ChanNode *chan)
     return trigger->trigger;
 }
 
-static void handle_command_async(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct ChanNode *sent_chan, struct cmd_binding *cbind, char **argv, int argc);
+static void handle_command_async(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct ChanNode *sent_chan, struct cmd_binding *cbind, char **argv, int argc);
 
 static USERAUTH_CALLBACK(command_checked_auth) {
     struct command_check_user_cache *cache = data;
-    tmp_text_client = cache->textclient;
     if(user)
-        handle_command_async(cache->client, user, cache->chan, cache->sent_chan, cache->cbind, cache->argv, cache->argc);
+        handle_command_async(cache->client, cache->textclient, user, cache->chan, cache->sent_chan, cache->cbind, cache->argv, cache->argc);
     free(cache->message);
     if(cache->args_buffer)
         free(cache->args_buffer);
@@ -143,7 +141,7 @@ static CMD_BIND(modcmd_linker) {
     //just empty
 }
 
-static struct cmd_binding *modcmd_linker_command(struct ClientSocket *client, struct UserNode *user, struct cmd_binding *cbind, int bind_index, char **args_ptr) {
+static struct cmd_binding *modcmd_linker_command(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, int bind_index, char **args_ptr) {
     //links subcommands
     char command[MAXLEN];
     struct cmd_binding *parent_bind = cbind;
@@ -162,7 +160,7 @@ static struct cmd_binding *modcmd_linker_command(struct ClientSocket *client, st
         }
         *args_ptr = args;
         if(cbind && cbind->func->func == modcmd_linker) {
-            return modcmd_linker_command(client, user, cbind, bind_index, args_ptr);
+            return modcmd_linker_command(client, textclient, user, cbind, bind_index, args_ptr);
         }
         return cbind;
     } else {
@@ -176,7 +174,7 @@ static struct cmd_binding *modcmd_linker_command(struct ClientSocket *client, st
                 subcompos += sprintf(subcommands + subcompos, (subcompos ? ", %s" : "%s"), cbind->cmd + commandlen);
             }
         }
-        reply(tmp_text_client, user, "MODCMD_SUBCOMMANDS", parent_bind->cmd, (subcompos ? subcommands : "\1dnone\1d"));
+        reply(textclient, user, "MODCMD_SUBCOMMANDS", parent_bind->cmd, (subcompos ? subcommands : "\1dnone\1d"));
         return NULL;
     }
 }
@@ -207,9 +205,9 @@ static void handle_command(struct ClientSocket *client, struct UserNode *user, s
         if(cbind->botid == client->botid && (cbind->botid || cbind->clientid == client->clientid) && stricmp(cbind->cmd, message) == 0) {
             found_cmd = 1;
             //get a text bot
-            tmp_text_client = get_botwise_prefered_bot(client->botid, (client->botid == 0 ? client->clientid : 0));
+            struct ClientSocket *textclient = get_botwise_prefered_bot(client->botid, (client->botid == 0 ? client->clientid : 0));
             if(cbind->func->func == modcmd_linker) {
-                cbind = modcmd_linker_command(client, user, cbind, bind_index, &args);
+                cbind = modcmd_linker_command(client, textclient, user, cbind, bind_index, &args);
                 if(cbind == NULL) break;
             }
             if(statistics_enabled)
@@ -343,11 +341,11 @@ static void handle_command(struct ClientSocket *client, struct UserNode *user, s
                 }
             }
             if(argc < cbind->func->paramcount) {
-                reply(tmp_text_client, user, "MODCMD_LESS_PARAM_COUNT");
+                reply(textclient, user, "MODCMD_LESS_PARAM_COUNT");
                 break;
             }
             if((BIND_FLAGS(cbind) & CMDFLAG_REQUIRE_CHAN) && !chan) {
-                reply(tmp_text_client, user, "MODCMD_CHAN_REQUIRED");
+                reply(textclient, user, "MODCMD_CHAN_REQUIRED");
                 break;
             }
             if(((BIND_FLAGS(cbind) & CMDFLAG_CHECK_AUTH) || (chan && chan != sent_chan && !isUserOnChan(user, chan))) && !(user->flags & USERFLAG_ISAUTHED)) {
@@ -368,11 +366,11 @@ static void handle_command(struct ClientSocket *client, struct UserNode *user, s
                 data->message = message;
                 data->args_buffer = args_buffer;
                 data->cbind = cbind;
-                data->textclient = tmp_text_client;
+                data->textclient = textclient;
                 get_userauth(user, 0, command_checked_auth, data);
                 return;
             } else
-                handle_command_async(client, user, chan, sent_chan, cbind, argv, argc);
+                handle_command_async(client, textclient, user, chan, sent_chan, cbind, argv, argc);
             break;
         }
     }
@@ -383,14 +381,14 @@ static void handle_command(struct ClientSocket *client, struct UserNode *user, s
         free(args_buffer);
 }
 
-static void handle_command_async(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct ChanNode *sent_chan, struct cmd_binding *cbind, char **argv, int argc) {
+static void handle_command_async(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct ChanNode *sent_chan, struct cmd_binding *cbind, char **argv, int argc) {
     MYSQL_RES *res;
     MYSQL_ROW row;
     int uaccess;
     char requested_uaccess = 0;
     int eventflags = (BIND_FLAGS(cbind) & (CMDFLAG_LOG | CMDFLAG_OPLOG));
     if((BIND_FLAGS(cbind) & CMDFLAG_REQUIRE_AUTH) && !(user->flags & USERFLAG_ISAUTHED)) {
-        reply(tmp_text_client, user, "MODCMD_AUTH_REQUIRED");
+        reply(textclient, user, "MODCMD_AUTH_REQUIRED");
         return;
     }
     if(chan && sent_chan != chan && (BIND_FLAGS(cbind) & CMDFLAG_NO_CROSSCHAN) && !isUserOnChan(user, chan)) {
@@ -413,7 +411,7 @@ static void handle_command_async(struct ClientSocket *client, struct UserNode *u
                 if(isGodMode(user)) {
                     eventflags |= CMDFLAG_OPLOG;
                 } else {
-                    reply(tmp_text_client, user, "MODCMD_CROSSCHAN", chan->name);
+                    reply(textclient, user, "MODCMD_CROSSCHAN", chan->name);
                     return;
                 }
             }
@@ -426,7 +424,7 @@ static void handle_command_async(struct ClientSocket *client, struct UserNode *u
         if ((row = mysql_fetch_row(res)) != NULL) {
             int saccess = getChannelAccess(user, sent_chan);
             if(row[0] && saccess < atoi(row[0]) && !isGodMode(user)) { //NOTE: HARDCODED DEFAULT: pubcmd = 0
-                reply(tmp_text_client, user, "MODCMD_PUBCMD", sent_chan->name);
+                reply(textclient, user, "MODCMD_PUBCMD", sent_chan->name);
                 return;
             }
         }
@@ -441,9 +439,9 @@ static void handle_command_async(struct ClientSocket *client, struct UserNode *u
         }
         if(user_global_access < global_access) {
             if(!user_global_access)
-                reply(tmp_text_client, user, "MODCMD_PRIVILEGED", cbind->cmd);
+                reply(textclient, user, "MODCMD_PRIVILEGED", cbind->cmd);
             else
-                reply(tmp_text_client, user, "MODCMD_ACCESS_DENIED");
+                reply(textclient, user, "MODCMD_ACCESS_DENIED");
             return;
         }
     }
@@ -499,7 +497,7 @@ static void handle_command_async(struct ClientSocket *client, struct UserNode *u
                         eventflags |= CMDFLAG_OPLOG;
                     } else if(uaccess < minaccess) {
                         //ACCESS DENIED
-                        reply(tmp_text_client, user, "MODCMD_ACCESS_DENIED");
+                        reply(textclient, user, "MODCMD_ACCESS_DENIED");
                         return;
                     }
                     if(!row[1] && !defaults) {
@@ -511,7 +509,7 @@ static void handle_command_async(struct ClientSocket *client, struct UserNode *u
                             eventflags |= CMDFLAG_OPLOG;
                         } else {
                             //PUBCMD
-                            reply(tmp_text_client, user, "MODCMD_PUBCMD", chan->name);
+                            reply(textclient, user, "MODCMD_PUBCMD", chan->name);
                             return;
                         }
                     }
@@ -525,7 +523,7 @@ static void handle_command_async(struct ClientSocket *client, struct UserNode *u
                             if(isGodMode(user)) {
                                 eventflags |= CMDFLAG_OPLOG;
                             } else {
-                                reply(tmp_text_client, user, "MODCMD_ACCESS_DENIED");
+                                reply(textclient, user, "MODCMD_ACCESS_DENIED");
                                 return;
                             }
                         }
@@ -535,25 +533,25 @@ static void handle_command_async(struct ClientSocket *client, struct UserNode *u
             chan->flags |= CHANFLAG_REQUESTED_CHANINFO;
         }
         if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) {
-            reply(tmp_text_client, user, "MODCMD_CHAN_REQUIRED");
+            reply(textclient, user, "MODCMD_CHAN_REQUIRED");
             return;
         }
         printf_mysql_query("SELECT `botid`, `suspended` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chan->channel_id, client->botid);
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) == NULL) {
-            reply(tmp_text_client, user, "MODCMD_CHAN_REQUIRED");
+            reply(textclient, user, "MODCMD_CHAN_REQUIRED");
             return;
         } else if(!strcmp(row[1], "1")) {
-            reply(tmp_text_client, user, "MODCMD_CHAN_SUSPENDED");
+            reply(textclient, user, "MODCMD_CHAN_SUSPENDED");
             return;
         }
     }
     if((BIND_FLAGS(cbind) & CMDFLAG_REQUIRE_GOD) && !isGodMode(user)) {
-        reply(tmp_text_client, user, "MODCMD_PRIVILEGED", cbind->cmd);
+        reply(textclient, user, "MODCMD_PRIVILEGED", cbind->cmd);
         return;
     }
     struct Event *event = createEvent(client, user, chan, cbind, argv, argc, eventflags);
-    cbind->func->func(client, user, chan, argv, argc, event);
+    cbind->func->func(client, textclient, user, chan, argv, argc, event);
 }
 
 static void got_chanmsg(struct UserNode *user, struct ChanNode *chan, char *message) {
@@ -821,10 +819,6 @@ struct cmd_function *find_cmd_function(int botid, char *name) {
     return cmdfunc;
 }
 
-struct ClientSocket *getTextBot() {
-    return tmp_text_client;
-}
-
 void init_modcmd() {
     cmd_binds = calloc(27, sizeof(*cmd_binds));
     bind_chanmsg(got_chanmsg, 0);
index 1321713e7567aa5e3172f4e849cd0b94b6af7db9..4ca57e13b34d3a98ce86f260484e01bbf1139cb0 100644 (file)
@@ -42,8 +42,8 @@ struct UserNode;
 struct ChanNode;
 struct Event;
 
-#define CMD_BIND(NAME) void NAME(UNUSED_ARG(struct ClientSocket *client), UNUSED_ARG(struct UserNode *user), UNUSED_ARG(struct ChanNode *chan), UNUSED_ARG(char **argv), UNUSED_ARG(char argc), UNUSED_ARG(struct Event *event))
-typedef void cmd_bind_t(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char **argv, char argc, struct Event *event);
+#define CMD_BIND(NAME) void NAME(UNUSED_ARG(struct ClientSocket *client), UNUSED_ARG(struct ClientSocket *textclient), UNUSED_ARG(struct UserNode *user), UNUSED_ARG(struct ChanNode *chan), UNUSED_ARG(char **argv), UNUSED_ARG(char argc), UNUSED_ARG(struct Event *event))
+typedef void cmd_bind_t(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, char **argv, char argc, struct Event *event);
 typedef void trigger_callback_t(int clientid, struct ChanNode *chan, char *trigger);
 
 struct cmd_function {
@@ -122,7 +122,6 @@ void free_modcmd();
 /* MODULAR ACCESSIBLE */ struct cmd_binding *find_botwise_cmd_binding(int botid, int clientid, char *cmd);
 /* MODULAR ACCESSIBLE */ void bind_botwise_unbound_required_functions(int botid, int clientid);
 /* MODULAR ACCESSIBLE */ struct cmd_function *find_cmd_function(int botid, char *name);
-/* MODULAR ACCESSIBLE */ struct ClientSocket *getTextBot();
 /* MODULAR ACCESSIBLE */ void register_command_alias(int botid, char *alias);
 /* MODULAR ACCESSIBLE */ struct cmd_binding *getAllBinds(struct cmd_binding *last);
 
index 109bd00c669700269d8c4a45aa7d28e2f8696ad9..0444f2a920fdd7fb6ee5af4cba5c48e657f16053 100644 (file)
@@ -49,23 +49,23 @@ void register_module_commands() {
 
 static CMD_BIND(module_cmd_load) {
     if(ext_load_module(argv[0]))
-        reply(getTextBot(), user, "MODULE_LOADED", argv[0]);
+        reply(textclient, user, "MODULE_LOADED", argv[0]);
     else
-        reply(getTextBot(), user, "MODULE_ERROR");
+        reply(textclient, user, "MODULE_ERROR");
 }
 
 static CMD_BIND(module_cmd_unload) {
     if(ext_unload_module(argv[0]))
-        reply(getTextBot(), user, "MODULE_UNLOADED", argv[0]);
+        reply(textclient, user, "MODULE_UNLOADED", argv[0]);
     else
-        reply(getTextBot(), user, "MODULE_ERROR");
+        reply(textclient, user, "MODULE_ERROR");
 }
 
 static CMD_BIND(module_cmd_reload) {
     if(ext_reload_module(argv[0]))
-        reply(getTextBot(), user, "MODULE_RELOADED", argv[0]);
+        reply(textclient, user, "MODULE_RELOADED", argv[0]);
     else
-        reply(getTextBot(), user, "MODULE_ERROR");
+        reply(textclient, user, "MODULE_ERROR");
 }
 
 static CMD_BIND(module_cmd_modules) {
@@ -75,12 +75,12 @@ static CMD_BIND(module_cmd_modules) {
     struct ModuleInfo *modinfo;
     for(modinfo = ext_get_modules(NULL); modinfo; modinfo = ext_get_modules(modinfo)) {
         if(modpos + strlen(modinfo->name) > 450) {
-            reply(getTextBot(), user, "MODULE_LIST", modules);
+            reply(textclient, user, "MODULE_LIST", modules);
             modpos = 0;
         }
         modcount++;
         modpos += sprintf(modules + modpos, (modpos ? ", %s" : "%s"), modinfo->name);
     }
     if(!modcount || modpos)
-        reply(getTextBot(), user, "MODULE_LIST", (modpos ? modules : "none"));
+        reply(textclient, user, "MODULE_LIST", (modpos ? modules : "none"));
 }
index 5ada206c563b31888380fc027ef9c016dbb8a669..db3a291606f51ef8bd5fdc726a93ec21ac04dd4d 100644 (file)
@@ -186,7 +186,7 @@ void *global_functions[] = {
 /* 120 */ (Function) find_botwise_cmd_binding,
 /* 121 */ (Function) bind_botwise_unbound_required_functions,
 /* 122 */ (Function) find_cmd_function,
-/* 123 */ (Function) getTextBot,
+/* 123 */ (Function) NULL, /* deprecated */
 /* 124 */ (Function) register_command_alias,
 /* 125 */ (Function) getAllBinds,
 /* 126 */ (Function) createModeNode,
index 96fa0913d35797a221d9e1c0ccd9268996630d47..ee6151c5d187e207c9cd765e847eb1af4123a6b0 100644 (file)
@@ -33,17 +33,17 @@ CMD_BIND(neonfun_cmd_4stone) {
     if(game) {
         //check if it's the player's turn
         if(game->player[game->active_player] != chanuser) {
-            reply(getTextBot(), user, "NF_4WINS_NOT_YOUR_TURN");
+            reply(textclient, user, "NF_4WINS_NOT_YOUR_TURN");
             return;
         }
         int x = atoi(argv[0])-1;
         if(x < 0 || x >= FOURWINS_MATRIX_WIDTH) {
-            reply(getTextBot(), user, "NF_4WINS_INVALID_COLUMN");
+            reply(textclient, user, "NF_4WINS_INVALID_COLUMN");
             return;
         }
         int y = fourwins_next_free_y(game, x);
         if(y < 0) {
-            reply(getTextBot(), user, "NF_4WINS_COLUMN_FULL");
+            reply(textclient, user, "NF_4WINS_COLUMN_FULL");
             return;
         }
         timeq_del(game->timer);
index 22aef652141c7bea3d1510913dea052a6c6ea6bf..54b3cbe3d0aa0c85223681ac3254b5b81cdaa8ef 100644 (file)
@@ -22,7 +22,7 @@ CMD_BIND(neonfun_cmd_4view) {
     struct UserNode *gameuser;
     struct ChanUser *chanuser;
     if(!argc || !(gameuser = getUserByNick(argv[0])) || !(chanuser = getChanUser(gameuser, chan))) {
-        reply(getTextBot(), user, "NF_4WINS_APPEND_PLAYER");
+        reply(textclient, user, "NF_4WINS_APPEND_PLAYER");
         return;
     }
     struct fourwins_game *game, *fgame = NULL;
@@ -30,12 +30,12 @@ CMD_BIND(neonfun_cmd_4view) {
     for(game = fourwins_active_games; game; game = game->next) {
         for(guest = game->guests; guest; guest = guest->next) {
             if(guest->chanuser->user == user) {
-                reply(getTextBot(), user, "NF_4WINS_VIEWING_ANOTHER_GAME");
+                reply(textclient, user, "NF_4WINS_VIEWING_ANOTHER_GAME");
                 return;
             }
         }
         if(game->player[0]->user == user || game->player[1]->user == user) {
-            reply(getTextBot(), user, "NF_4WINS_VIEWING_ANOTHER_GAME");
+            reply(textclient, user, "NF_4WINS_VIEWING_ANOTHER_GAME");
             return;
         }
         if(chanuser == game->player[0] || chanuser == game->player[1]) {
@@ -50,8 +50,8 @@ CMD_BIND(neonfun_cmd_4view) {
         guest->chanuser = chanuser;
         guest->next = game->guests;
         game->guests = guest;
-        reply(getTextBot(), user, "NF_4WINS_VIEWING_GAME");
+        reply(textclient, user, "NF_4WINS_VIEWING_GAME");
     } else {
-        reply(getTextBot(), user, "NF_4WINS_NO_GAME_FOUND");
+        reply(textclient, user, "NF_4WINS_NO_GAME_FOUND");
     }
 }
index 2aafcb69f464d01f7dac82c6dfc1c4b0d4133fcb..5a9c5876905ce2f56c94317a4d7540bbc3f3181c 100644 (file)
@@ -71,32 +71,32 @@ CMD_BIND(neonfun_cmd_4wins) {
         game->timer = timeq_add(120, module_id, fourwins_timeout, game);
     } else {
         if(!argc) {
-            reply(getTextBot(), user, "NF_4WINS_ENTER_OPPONENT");
+            reply(textclient, user, "NF_4WINS_ENTER_OPPONENT");
             return;
         }
         struct UserNode *opp_user = getUserByNick(argv[0]);
         if(!opp_user) {
-            reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+            reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
             return;
         }
         if(opp_user == user) {
-            reply(getTextBot(), user, "NF_4WINS_SELF");
+            reply(textclient, user, "NF_4WINS_SELF");
             return;
         }
         struct ChanUser *opponent = getChanUser(opp_user, chan);
         if(!opponent) {
-            reply(getTextBot(), user, "NF_4WINS_OPPONENT_NOT_IN_CHAN", opp_user->nick);
+            reply(textclient, user, "NF_4WINS_OPPONENT_NOT_IN_CHAN", opp_user->nick);
             return;
         }
         game = calloc(1,sizeof(*game));
         game->player[0] = chanuser;
         game->player[1] = opponent;
-        game->textbot = getTextBot();
+        game->textbot = textclient;
         game->state = FOURWINS_STATE_WAITING;
         game->timer = timeq_add(120, module_id, fourwins_timeout, game);
         game->next = fourwins_active_games;
         fourwins_active_games = game;
-        reply(getTextBot(), user, "NF_4WINS_REQUESTED", opp_user->nick);
-        reply(getTextBot(), opp_user, "NF_4WINS_REQUEST", user->nick);
+        reply(textclient, user, "NF_4WINS_REQUESTED", opp_user->nick);
+        reply(textclient, opp_user, "NF_4WINS_REQUEST", user->nick);
     }
 }
index b2ba1e6d103580235b525f1d541583f8389e12a3..ee78224ea82befde750cf7c510de233a333af48b 100644 (file)
@@ -27,7 +27,7 @@ CMD_BIND(neonfun_cmd_uno) {
             if(game->state == UNO_STATE_WAITING)
                 break;
             else {
-                reply(getTextBot(), user, "NF_UNO_ALREADY_RUNNING", chan->name);
+                reply(textclient, user, "NF_UNO_ALREADY_RUNNING", chan->name);
                 return;
             }
         }
@@ -37,7 +37,7 @@ CMD_BIND(neonfun_cmd_uno) {
         struct uno_player *player, *last_player = NULL;
         for(player = game->player; player; player = player->next) {
             if(player->chanuser == chanuser) {
-                reply(getTextBot(), user, "NF_UNO_ALREADY_JOINED");
+                reply(textclient, user, "NF_UNO_ALREADY_JOINED");
                 return;
             } else
                 last_player = player;
@@ -56,7 +56,7 @@ CMD_BIND(neonfun_cmd_uno) {
     } else {
         game = malloc(sizeof(*game));
         game->channel = chan;
-        game->textbot = getTextBot();
+        game->textbot = textclient;
         game->state = UNO_STATE_WAITING;
         game->reverse_direction = 0;
         game->take_cards_pending = 0;
index a6b341981ec8939ed63725e43e091559ce7ff9ab..47b25b9443f1d5b4d8d0cb51da3502ac4f5836ad 100644 (file)
@@ -33,7 +33,7 @@ CMD_BIND(neonfun_cmd_unoplay) {
     if(game) {
         //check if it's the player's turn
         if(game->active_player->chanuser != chanuser) {
-            reply(getTextBot(), user, "NF_UNO_NOT_YOUR_TURN");
+            reply(textclient, user, "NF_UNO_NOT_YOUR_TURN");
             return;
         }
         game->active_player->timeout = 0;
index 22fb21c0504cfa0bf1ff495034e27d8dc5e94802..5b6e502b27b4c01a5b9ef95769e7e0aefc6d00b4 100644 (file)
@@ -33,7 +33,7 @@ CMD_BIND(neonfun_cmd_unotake) {
     if(game) {
         //check if it's the player's turn
         if(game->active_player->chanuser != chanuser) {
-            reply(getTextBot(), user, "NF_UNO_NOT_YOUR_TURN");
+            reply(textclient, user, "NF_UNO_NOT_YOUR_TURN");
             return;
         }
         game->active_player->timeout = 0;
index c20577e08fdf686e5ff884a4425d8c038a47137d..5f26430f00a5719a01637c8c49bd081b296520e8 100644 (file)
@@ -53,11 +53,11 @@ CMD_BIND(neonhelp_cmd_delete) {
         }
     }
     if(!caccess) {
-        reply(getTextBot(), user, "MODCMD_ACCESS_DENIED");
+        reply(textclient, user, "MODCMD_ACCESS_DENIED");
         return;
     }
     if(!(client->flags & SOCKET_HAVE_HELPNODE) || client->botclass_helpnode == NULL) {
-        reply(getTextBot(), user, "NH_NEXT_NONE");
+        reply(textclient, user, "NH_NEXT_NONE");
         return;
     }
     struct NeonHelpNode *helpnode, *next_helpnode = NULL, *prev_helpnode = NULL;
@@ -69,7 +69,7 @@ CMD_BIND(neonhelp_cmd_delete) {
             prev_helpnode = helpnode;
     }
     if(!next_helpnode) {
-        reply(getTextBot(), user, "NH_NEXT_NOT_FOUND");
+        reply(textclient, user, "NH_NEXT_NOT_FOUND");
         return;
     }
     reply(client, next_helpnode->user, "NH_DELETED", next_helpnode->suppid);
@@ -78,6 +78,6 @@ CMD_BIND(neonhelp_cmd_delete) {
         prev_helpnode->next = next_helpnode->next;
     else
         client->botclass_helpnode = next_helpnode->next;
-    reply(getTextBot(), user, "NH_DELETED_STAFF", next_helpnode->suppid, next_helpnode->user->nick);
+    reply(textclient, user, "NH_DELETED_STAFF", next_helpnode->suppid, next_helpnode->user->nick);
     free(next_helpnode);
 }
index a149dc65cb8ec7475e8a3c6b64de7b0d49b4e08c..775861ad005e55884fb7a858d06624b78098f001 100644 (file)
@@ -53,11 +53,11 @@ CMD_BIND(neonhelp_cmd_next) {
         }
     }
     if(!caccess) {
-        reply(getTextBot(), user, "MODCMD_ACCESS_DENIED");
+        reply(textclient, user, "MODCMD_ACCESS_DENIED");
         return;
     }
     if(!(client->flags & SOCKET_HAVE_HELPNODE) || client->botclass_helpnode == NULL) {
-        reply(getTextBot(), user, "NH_NEXT_NONE");
+        reply(textclient, user, "NH_NEXT_NONE");
         return;
     }
     struct NeonHelpNode *helpnode, *next_helpnode = NULL;
@@ -78,18 +78,18 @@ CMD_BIND(neonhelp_cmd_next) {
         }
     }
     if(!next_helpnode) {
-        reply(getTextBot(), user, "NH_NEXT_NOT_FOUND");
+        reply(textclient, user, "NH_NEXT_NOT_FOUND");
         return;
     }
     printf_mysql_query("SELECT `text` FROM `helpserv_requests` WHERE `id` = '%d'", next_helpnode->suppid);
     res = mysql_use();
     if (!(row2 = mysql_fetch_row(res))) return;
-    reply(getTextBot(), user, "NH_NEXT_HEADER", next_helpnode->suppid, next_helpnode->user->nick);
+    reply(textclient, user, "NH_NEXT_HEADER", next_helpnode->suppid, next_helpnode->user->nick);
     char *a, *b = row2[0];
     do {
         a = strstr(b, "\n");
         if(a) *a = '\0';
-        reply(getTextBot(), user, "  %s", b);
+        reply(textclient, user, "  %s", b);
         if(a) {
             *a = '\n';
             b = a+1;
index 805826ade212340f77028d3b0ce49fa7e3ebee02..37d38e790e9fa70d3a2e2ba0c72ddff0692de1a3 100644 (file)
@@ -53,7 +53,7 @@ CMD_BIND(neonhelp_cmd_requests) {
         }
     }
     if(!caccess) {
-        reply(getTextBot(), user, "MODCMD_ACCESS_DENIED");
+        reply(textclient, user, "MODCMD_ACCESS_DENIED");
         return;
     }
     struct Table *table;
@@ -100,9 +100,9 @@ CMD_BIND(neonhelp_cmd_requests) {
     char **table_lines = table_end(table);
     int i;
     for(i = 0; i < table->entrys; i++) {
-        reply(getTextBot(), user, table_lines[i]);
+        reply(textclient, user, table_lines[i]);
     }
     if(table->entrys == 1)
-        reply(getTextBot(), user, "NS_TABLE_NONE");
+        reply(textclient, user, "NS_TABLE_NONE");
     table_free(table);
 }
index 673180137d4e65adee9f888bafab0225f2f3031a..7d832ede96cbfa71b434695050ec798c7e43e84c 100644 (file)
@@ -53,7 +53,7 @@ CMD_BIND(neonhelp_cmd_stats) {
         }
     }
     if(!caccess) {
-        reply(getTextBot(), user, "MODCMD_ACCESS_DENIED");
+        reply(textclient, user, "MODCMD_ACCESS_DENIED");
         return;
     }
     if(argc > 0) {
@@ -79,10 +79,10 @@ CMD_BIND(neonhelp_cmd_stats) {
         char **table_lines = table_end(table);
         int i;
         for(i = 0; i < table->entrys; i++) {
-            reply(getTextBot(), user, table_lines[i]);
+            reply(textclient, user, table_lines[i]);
         }
         if(table->entrys == 1)
-            reply(getTextBot(), user, "NS_TABLE_NONE");
+            reply(textclient, user, "NS_TABLE_NONE");
         table_free(table);
     }
 }
index 3cae12fe75f8bd7474d327a8fa581be76b990f5b..7eaaea184cebd8b487c1422e27be7b8aeeba1805 100644 (file)
@@ -40,30 +40,30 @@ CMD_BIND(neonserv_cmd_access) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->nick = strdup(user->nick);
             get_userauth(user, module_id, neonserv_cmd_access_nick_lookup, cache);
         } else
-            neonserv_cmd_access_async1(client, getTextBot(), user, chan, user->nick, user->auth, user);
+            neonserv_cmd_access_async1(client, textclient, user, chan, user->nick, user->auth, user);
     }
     else if(argv[0][0] == '*') {
         //we've got an auth
         argv[0]++;
-        neonserv_cmd_access_async1(client, getTextBot(), user, chan, NULL, argv[0], NULL);
+        neonserv_cmd_access_async1(client, textclient, user, chan, NULL, argv[0], NULL);
     } else {
         struct UserNode *cuser = getUserByNick(argv[0]);
         if(!cuser) {
             cuser = createTempUser(argv[0]);
             if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_access_async1(client, getTextBot(), user, chan, argv[0], cuser->auth, cuser);
+            neonserv_cmd_access_async1(client, textclient, user, chan, argv[0], cuser->auth, cuser);
         } else {
             struct neonserv_cmd_access_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -71,7 +71,7 @@ CMD_BIND(neonserv_cmd_access) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->nick = strdup(argv[0]);
index 6741e7cb116072ecc9703481946bbe6cc9f3e644..2a7b0980777621718ca3ebe19c14961ab2ab5993 100644 (file)
@@ -39,7 +39,7 @@ CMD_BIND(neonserv_cmd_addban) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->mask = strdup(argv[0]);
index 7261378f114214bab3b6410be45449cbd9bfe57f..227758bf1fe4a6f19866909ecb85fae3e0193636 100644 (file)
@@ -28,9 +28,9 @@ CMD_BIND(neonserv_cmd_addrank) {
     printf_mysql_query("SELECT `rank_name` FROM `support_ranks` WHERE `rank_name` = '%s'", escape_string(name));
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) != NULL) {
-        reply(getTextBot(), user, "NS_ADDRANK_EXISTS", row[0]);
+        reply(textclient, user, "NS_ADDRANK_EXISTS", row[0]);
         return;
     }
     printf_mysql_query("INSERT INTO `support_ranks` (`rank_name`) VALUES ('%s')", escape_string(name));
-    reply(getTextBot(), user, "NS_ADDRANK_DONE", name);
+    reply(textclient, user, "NS_ADDRANK_DONE", name);
 }
index 189fb97dd2ae2edc15afc41f2762faa57649933b..e2d0dc1b2f68b2f180a019710efee509cd3f2aab 100644 (file)
@@ -37,7 +37,7 @@ struct neonserv_cmd_addtimeban_cache {
 CMD_BIND(neonserv_cmd_addtimeban) {
     int duration = strToTime(user, argv[1]);
     if(duration < 5) {
-        reply(getTextBot(), user, "NS_TIMEBAN_DURATION_TOO_SHORT", 5);
+        reply(textclient, user, "NS_TIMEBAN_DURATION_TOO_SHORT", 5);
         return;
     }
     struct neonserv_cmd_addtimeban_cache *cache = malloc(sizeof(*cache));
@@ -46,7 +46,7 @@ CMD_BIND(neonserv_cmd_addtimeban) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->mask = strdup(argv[0]);
index e63ef6913a56ed2c66b1a7635c19d096035b3560..cc1e2524fb25e8094bf531a4cdec2478af05ca3a 100644 (file)
@@ -40,14 +40,14 @@ CMD_BIND(neonserv_cmd_adduser) {
     MYSQL_ROW row;
     caccess = atoi(argv[1]);
     if(caccess <= 0 || caccess > 500) {
-        reply(getTextBot(), user, "NS_INVALID_ACCESS", caccess);
+        reply(textclient, user, "NS_INVALID_ACCESS", caccess);
         return;
     }
     if(caccess >= getChannelAccess(user, chan)) {
         if(isGodMode(user)) {
             event->flags |= CMDFLAG_OPLOG;
         } else {
-            reply(getTextBot(), user, "NS_ACCESS_OUTRANKED");
+            reply(textclient, user, "NS_ACCESS_OUTRANKED");
             return;
         }
     }
@@ -58,7 +58,7 @@ CMD_BIND(neonserv_cmd_adduser) {
         printf_mysql_query("SELECT `user_user` FROM `users` WHERE `user_user` = '%s'", escape_string(argv[0]));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {
-            neonserv_cmd_adduser_async1(client, getTextBot(), user, chan, event, argv[0], row[0], caccess);
+            neonserv_cmd_adduser_async1(client, textclient, user, chan, event, argv[0], row[0], caccess);
         } else {
             //we need to create a new user...
             //but first lookup the auth to check if it really exists
@@ -68,7 +68,7 @@ CMD_BIND(neonserv_cmd_adduser) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
@@ -81,13 +81,13 @@ CMD_BIND(neonserv_cmd_adduser) {
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_adduser_async1(client, getTextBot(), user, chan, event, argv[0], cuser->auth, caccess);
+            neonserv_cmd_adduser_async1(client, textclient, user, chan, event, argv[0], cuser->auth, caccess);
         } else {
             struct neonserv_cmd_adduser_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -95,7 +95,7 @@ CMD_BIND(neonserv_cmd_adduser) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
index caa056f4cc36eda729b09d3737af9f170b86f77e..1662706f33bf9063b27ddd70f4477eceb30b1a53 100644 (file)
@@ -42,7 +42,7 @@ CMD_BIND(neonserv_cmd_assignrank) {
         printf_mysql_query("SELECT `rank_id`, `rank_name` FROM `support_ranks` WHERE `rank_name` = '%s'", escape_string(name));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) == NULL) {
-            reply(getTextBot(), user, "NS_DELRANK_NOT_FOUND", name);
+            reply(textclient, user, "NS_DELRANK_NOT_FOUND", name);
             return;
         }
         rank_id = atoi(row[0]);
@@ -53,7 +53,7 @@ CMD_BIND(neonserv_cmd_assignrank) {
         printf_mysql_query("SELECT `user_user` FROM `users` WHERE `user_user` = '%s'", escape_string(argv[0]));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {
-            neonserv_cmd_assignrank_async1(client, getTextBot(), user, event, argv[0], row[0], rank_id);
+            neonserv_cmd_assignrank_async1(client, textclient, user, event, argv[0], row[0], rank_id);
         } else {
             //we need to create a new user...
             //but first lookup the auth to check if it really exists
@@ -63,7 +63,7 @@ CMD_BIND(neonserv_cmd_assignrank) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->event = event;
             cache->rank_id = rank_id;
@@ -75,13 +75,13 @@ CMD_BIND(neonserv_cmd_assignrank) {
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_assignrank_async1(client, getTextBot(), user, event, argv[0], cuser->auth, rank_id);
+            neonserv_cmd_assignrank_async1(client, textclient, user, event, argv[0], cuser->auth, rank_id);
         } else {
             struct neonserv_cmd_assignrank_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -89,7 +89,7 @@ CMD_BIND(neonserv_cmd_assignrank) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->event = event;
             cache->rank_id = rank_id;
index 95c12b2f15fd4127a110386ab61b595e588130f9..d74b4c68a42a13be06ee02c5a1f0cacee7028285 100644 (file)
@@ -37,7 +37,7 @@ CMD_BIND(neonserv_cmd_ban) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->masks = strdup(merge_argv_char(argv, 0, argc, ','));
@@ -114,9 +114,9 @@ static void neonserv_cmd_ban_async1(struct ClientSocket *client, struct ClientSo
     }
     freeModeBuffer(modeBuf);
     if(done_masks == provided_masks)
-        reply(getTextBot(), user, "NS_BAN_DONE", done_masks, chan->name, total_match);
+        reply(textclient, user, "NS_BAN_DONE", done_masks, chan->name, total_match);
     else
-        reply(getTextBot(), user, "NS_BAN_FAIL", client->user->nick);
+        reply(textclient, user, "NS_BAN_FAIL", client->user->nick);
     if(done_masks)
         logEvent(event);
 }
index 0eadc9ba0e356f9a11e31a8b0b9c7bbad4a21ea1..2cad8d0e536672997e03f9dd5ceed1ae35e21f0e 100644 (file)
@@ -66,10 +66,10 @@ CMD_BIND(neonserv_cmd_bans) {
     table_change(table, 0, content);
     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]);
     }
     if(!cindex)
-        reply(getTextBot(), user, "NS_TABLE_NONE");
-    reply(getTextBot(), user, "NS_TABLE_COUNT", cindex);
+        reply(textclient, user, "NS_TABLE_NONE");
+    reply(textclient, user, "NS_TABLE_COUNT", cindex);
     table_free(table);
 }
index e75465dfa7ee96ccea55a99323d7f4246283e721..af8ef3523f83688eeca58dfc2eebfa6481a1ad35 100644 (file)
@@ -50,7 +50,7 @@ const char* neonserv_cmd_chanservsync_supported[] = {"ChanServ", NULL};
 
 CMD_BIND(neonserv_cmd_chanservsync) {
     if(neonserv_cmd_chanservsync_used && time(0) - neonserv_cmd_chanservsync_used->last_response < CHANSERVSYNC_END_TIMEOUT) {
-        reply(getTextBot(), user, "NS_CHANSERVSYNC_INUSE");
+        reply(textclient, user, "NS_CHANSERVSYNC_INUSE");
         return;
     }
     if(neonserv_cmd_chanservsync_used) {
@@ -88,9 +88,9 @@ CMD_BIND(neonserv_cmd_chanservsync) {
             supp++;
         }
         if(!f) {
-            reply(getTextBot(), user, "NS_CHANSERVSYNC_UNSUPPORTED", botnick, client->user->nick);
+            reply(textclient, user, "NS_CHANSERVSYNC_UNSUPPORTED", botnick, client->user->nick);
         }
-        reply(getTextBot(), user, "NS_CHANSERVSYNC_KEY", client->user->nick, botnick, botnick, synckey);
+        reply(textclient, user, "NS_CHANSERVSYNC_KEY", client->user->nick, botnick, botnick, synckey);
         return;
     }
     struct neonserv_cmd_chanservsync_cache *cache = malloc(sizeof(*cache));
@@ -99,7 +99,7 @@ CMD_BIND(neonserv_cmd_chanservsync) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->chan = chan;
     cache->botnick = strdup(botnick);
@@ -107,7 +107,7 @@ CMD_BIND(neonserv_cmd_chanservsync) {
     neonserv_cmd_chanservsync_used = cache;
     putsock(client, "PRIVMSG %s :users %s", botnick, chan->name);
     bind_privnotice(neonserv_cmd_chanservsync_notice_listener, module_id);
-    reply(getTextBot(), user, "NS_CHANSERVSYNC_SYNCHRONIZING", chan->name, botnick);
+    reply(textclient, user, "NS_CHANSERVSYNC_SYNCHRONIZING", chan->name, botnick);
     logEvent(event);
 }
 
index c8969361f7189e9d75eef602f61c8e1a8928ae69..6b97e8feadd20d48e77d4d715f8f9d10715ff804 100644 (file)
@@ -37,33 +37,33 @@ CMD_BIND(neonserv_cmd_clvl) {
     int caccess;
     caccess = atoi(argv[1]);
     if(caccess <= 0 || caccess > 500) {
-        reply(getTextBot(), user, "NS_INVALID_ACCESS", caccess);
+        reply(textclient, user, "NS_INVALID_ACCESS", caccess);
         return;
     }
     if(caccess >= getChannelAccess(user, chan)) {
         if(isGodMode(user)) {
             event->flags |= CMDFLAG_OPLOG;
         } else {
-            reply(getTextBot(), user, "NS_ACCESS_OUTRANKED");
+            reply(textclient, user, "NS_ACCESS_OUTRANKED");
             return;
         }
     }
     if(argv[0][0] == '*') {
         //we've got an auth
         argv[0]++;
-        neonserv_cmd_clvl_async1(client, getTextBot(), user, chan, event, argv[0], argv[0], caccess);
+        neonserv_cmd_clvl_async1(client, textclient, user, chan, event, argv[0], argv[0], caccess);
     } else {
         struct UserNode *cuser = getUserByNick(argv[0]);
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_clvl_async1(client, getTextBot(), user, chan, event, argv[0], cuser->auth, caccess);
+            neonserv_cmd_clvl_async1(client, textclient, user, chan, event, argv[0], cuser->auth, caccess);
         } else {
             struct neonserv_cmd_clvl_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -71,7 +71,7 @@ CMD_BIND(neonserv_cmd_clvl) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
index 1dad37dd21fc5424399f238ea3a1260a11a90a66..cc90a2be778b5b8b16b9cef288c29fbf53a5787b 100644 (file)
@@ -25,7 +25,7 @@ CMD_BIND(neonserv_cmd_csuspend) {
     MYSQL_ROW row;
     char *channel = argv[0];
     if(!is_valid_chan(channel)) {
-        reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", argv[0]);
+        reply(textclient, user, "NS_INVALID_CHANNEL_NAME", argv[0]);
         return;
     }
     int chanid;
@@ -34,17 +34,17 @@ CMD_BIND(neonserv_cmd_csuspend) {
     if ((row = mysql_fetch_row(res)) != NULL) {
         chanid = atoi(row[0]);
     } else {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
         return;
     }
     printf_mysql_query("SELECT `botid`, `bot_channels`.`id`, `suspended` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chanid, client->botid);
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL) {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
         return;
     }
     if(!strcmp(row[2], "1")) {
-        reply(getTextBot(), user, "NS_CSUSPEND_ALREADY", channel);
+        reply(textclient, user, "NS_CSUSPEND_ALREADY", channel);
         return;
     }
     int botid = atoi(row[0]);
@@ -63,6 +63,6 @@ CMD_BIND(neonserv_cmd_csuspend) {
             module_global_cmd_unregister_neonbackup(channel);
     }
     printf_mysql_query("UPDATE `bot_channels` SET `suspended` = '1' WHERE `id` = '%s'", row[1]);
-    reply(getTextBot(), user, "NS_CSUSPEND_DONE", channel);
+    reply(textclient, user, "NS_CSUSPEND_DONE", channel);
     logEvent(event);
 }
index b9c6a368968050b3a32b4be7e5d4d8cb253ed789..6d02b6a1f0fa458d0e7044b26181bef2b7f24848 100644 (file)
@@ -25,7 +25,7 @@ CMD_BIND(neonserv_cmd_cunsuspend) {
     MYSQL_ROW row;
     char *channel = argv[0];
     if(!is_valid_chan(channel)) {
-        reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", argv[0]);
+        reply(textclient, user, "NS_INVALID_CHANNEL_NAME", argv[0]);
         return;
     }
     int chanid;
@@ -34,17 +34,17 @@ CMD_BIND(neonserv_cmd_cunsuspend) {
     if ((row = mysql_fetch_row(res)) != NULL) {
         chanid = atoi(row[0]);
     } else {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
         return;
     }
     printf_mysql_query("SELECT `botid`, `bot_channels`.`id`, `suspended` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chanid, client->botid);
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL) {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
         return;
     }
     if(!strcmp(row[2], "0")) {
-        reply(getTextBot(), user, "NS_CUNSUSPEND_NOT", channel);
+        reply(textclient, user, "NS_CUNSUSPEND_NOT", channel);
         return;
     }
     int botid = atoi(row[0]);
@@ -63,6 +63,6 @@ CMD_BIND(neonserv_cmd_cunsuspend) {
             module_global_cmd_register_neonbackup(channel);
     }
     printf_mysql_query("UPDATE `bot_channels` SET `suspended` = '0' WHERE `id` = '%s'", row[1]);
-    reply(getTextBot(), user, "NS_CUNSUSPEND_DONE", channel);
+    reply(textclient, user, "NS_CUNSUSPEND_DONE", channel);
     logEvent(event);
 }
index 1523c74fd7ae6f662280767d7642ff2ffb95ce96..3a075224fef54b7795f00f4c5ad8df1650b26fd8 100644 (file)
@@ -38,7 +38,7 @@ CMD_BIND(neonserv_cmd_dehalfop) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->argv = calloc(argc, sizeof(char*));
index a06d9a7650561ac0407762cfcd8a923b445ff874..5edf24b875bb5a8022d5f1a3bf0ced4c8da60d72 100644 (file)
@@ -38,7 +38,7 @@ CMD_BIND(neonserv_cmd_dehalfopall) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->argv = calloc(argc, sizeof(char*));
@@ -79,7 +79,7 @@ static void neonserv_cmd_dehalfopall_async1(struct ClientSocket *client, struct
         done_users++;
     }
     freeModeBuffer(modeBuf);
-    reply(getTextBot(), user, "NS_DEHALFOPALL_DONE", done_users, chan->name);
+    reply(textclient, user, "NS_DEHALFOPALL_DONE", done_users, chan->name);
     if(done_users)
         logEvent(event);
 }
index a4ea0d102287049033a6d8172f4936cc8f0960b4..cda15756598f45f107a301ac16f7296f831fc740 100644 (file)
@@ -44,8 +44,8 @@ CMD_BIND(neonserv_cmd_delban) {
     }
     if(matching_bans) {
         putsock(client, "MODE %s -b %s", chan->name, mask);
-        reply(getTextBot(), user, "NS_DELBAN_DONE", mask, chan->name);
+        reply(textclient, user, "NS_DELBAN_DONE", mask, chan->name);
         logEvent(event);
     } else
-        reply(getTextBot(), user, "NS_DELBAN_FAIL", mask);
+        reply(textclient, user, "NS_DELBAN_FAIL", mask);
 }
index 3b2c84dcc878f07c7dac36ee2a82533b71cfe256..b7883838d2e0ac9a0bda5ddf304d8522f1f3cae5 100644 (file)
@@ -34,7 +34,7 @@ CMD_BIND(neonserv_cmd_delme) {
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {
             if(atoi(row[0]) == 500) {
-                reply(getTextBot(), user, "NS_DELME_OWNER", chan->name);
+                reply(textclient, user, "NS_DELME_OWNER", chan->name);
                 return;
             }
             //check key
@@ -47,16 +47,16 @@ CMD_BIND(neonserv_cmd_delme) {
                 seed = (seed * 0xEECE66DL ^ ((*tmp << 24) | (*tmp << 16) | (*tmp << 8) | *tmp));
             sprintf(unregkey, "%08x", seed);
             if(argc < 1 || strcmp(argv[0], unregkey)) {
-                reply(getTextBot(), user, "NS_DELME_KEY", unregkey);
+                reply(textclient, user, "NS_DELME_KEY", unregkey);
                 return;
             } else {
                 //delete
                 printf_mysql_query("DELETE FROM `chanusers` WHERE `chanuser_id` = '%s'", row[1]);
-                reply(getTextBot(), user, "NS_DELME_DONE", atoi(row[0]), chan->name);
+                reply(textclient, user, "NS_DELME_DONE", atoi(row[0]), chan->name);
                 logEvent(event);
                 return;
             }
         }
     }
-    reply(getTextBot(), user, "NS_NOT_ON_USERLIST_YOU", chan->name);
+    reply(textclient, user, "NS_NOT_ON_USERLIST_YOU", chan->name);
 }
index 62e7af60058d2d82e43b558e68fe26eca8e08715..fa6d767ee31d0a15600d7d7fa0e837be3f3869a0 100644 (file)
@@ -28,10 +28,10 @@ CMD_BIND(neonserv_cmd_delrank) {
     printf_mysql_query("SELECT `rank_id`, `rank_name` FROM `support_ranks` WHERE `rank_name` = '%s'", escape_string(name));
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL) {
-        reply(getTextBot(), user, "NS_DELRANK_NOT_FOUND", name);
+        reply(textclient, user, "NS_DELRANK_NOT_FOUND", name);
         return;
     }
     printf_mysql_query("UPDATE `users` SET `user_rank` = '0', `user_access` = '0' WHERE `user_rank` = '%s'", row[0]);
     printf_mysql_query("DELETE FROM `support_ranks` WHERE `rank_id` = '%s'", row[0]);
-    reply(getTextBot(), user, "NS_DELRANK_DELETED", row[1]);
+    reply(textclient, user, "NS_DELRANK_DELETED", row[1]);
 }
index 59d389c29257a5eac42b4ce6d009c12bc98a480c..e2bb83321a969b1543ea1348c8849b3ee07f62e8 100644 (file)
@@ -35,19 +35,19 @@ CMD_BIND(neonserv_cmd_deluser) {
     if(argv[0][0] == '*') {
         //we've got an auth
         argv[0]++;
-        neonserv_cmd_deluser_async1(client, getTextBot(), user, chan, event, argv[0], argv[0]);
+        neonserv_cmd_deluser_async1(client, textclient, user, chan, event, argv[0], argv[0]);
     } else {
         struct UserNode *cuser = getUserByNick(argv[0]);
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_deluser_async1(client, getTextBot(), user, chan, event, argv[0], cuser->auth);
+            neonserv_cmd_deluser_async1(client, textclient, user, chan, event, argv[0], cuser->auth);
         } else {
             struct neonserv_cmd_deluser_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -55,7 +55,7 @@ CMD_BIND(neonserv_cmd_deluser) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
index 023b0bb26b0259aa128ec1cb59a0686b011d24c3..220756100a06e4742086b92f7ae83f60ace3621b 100644 (file)
@@ -38,7 +38,7 @@ CMD_BIND(neonserv_cmd_deop) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->argv = calloc(argc, sizeof(char*));
index 65aa44f28c0dac4b3f7ed238f6021da46f613cc4..997d9eea16c9581257fa602d87ff8c7aae358530 100644 (file)
@@ -38,7 +38,7 @@ CMD_BIND(neonserv_cmd_deopall) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->argv = calloc(argc, sizeof(char*));
@@ -79,7 +79,7 @@ static void neonserv_cmd_deopall_async1(struct ClientSocket *client, struct Clie
         done_users++;
     }
     freeModeBuffer(modeBuf);
-    reply(getTextBot(), user, "NS_DEOPALL_DONE", done_users, chan->name);
+    reply(textclient, user, "NS_DEOPALL_DONE", done_users, chan->name);
     if(done_users)
         logEvent(event);
 }
index 0c456baa8a278da3c1330ea9b00aaaf9ee09c2bb..30bde402215113ba4027a9752433b9e129d42b7e 100644 (file)
@@ -33,7 +33,7 @@ CMD_BIND(neonserv_cmd_devoice) {
         chanuser = getChanUser(cuser, chan);
         if(!chanuser) continue;
         if(isUserProtected(chan, cuser, user)) {
-            reply(getTextBot(), user, "NS_USER_PROTECTED", cuser->nick);
+            reply(textclient, user, "NS_USER_PROTECTED", cuser->nick);
             continue;
         }
         done_users++;
@@ -42,9 +42,9 @@ CMD_BIND(neonserv_cmd_devoice) {
     }
     freeModeBuffer(modeBuf);
     if(done_users == argc)
-        reply(getTextBot(), user, "NS_DEVOICE_DONE", chan->name);
+        reply(textclient, user, "NS_DEVOICE_DONE", chan->name);
     else
-        reply(getTextBot(), user, "NS_DEVOICE_FAIL", client->user->nick);
+        reply(textclient, user, "NS_DEVOICE_FAIL", client->user->nick);
     if(done_users)
         logEvent(event);
 }
index 02058b25cc6ca4f8b1136066ddf8775a0895d625..f89627e2af0a25d1b76bf8342a543ac232cd4d49 100644 (file)
@@ -39,7 +39,7 @@ CMD_BIND(neonserv_cmd_devoiceall) {
         done_users++;
     }
     freeModeBuffer(modeBuf);
-    reply(getTextBot(), user, "NS_DEVOICEALL_DONE", done_users, chan->name);
+    reply(textclient, user, "NS_DEVOICEALL_DONE", done_users, chan->name);
     if(done_users)
         logEvent(event);
 }
index f5eb38ab0a397ac36ea389602a11eb634f9f5b67..deb581ca33fa5e29bb372b933bdce80863608d8f 100644 (file)
@@ -24,7 +24,7 @@
 CMD_BIND(neonserv_cmd_down) {
     struct ChanUser *chanuser = getChanUser(user, chan);
     if(!chanuser) {
-        reply(getTextBot(), user, "NS_NOT_ON_CHANNEL_YOU", chan->name);
+        reply(textclient, user, "NS_NOT_ON_CHANNEL_YOU", chan->name);
         return;
     }
     if((chanuser->flags & CHANUSERFLAG_OPPED)) {
@@ -34,5 +34,5 @@ CMD_BIND(neonserv_cmd_down) {
         putsock(client, "MODE %s -v %s", chan->name, user->nick);
         logEvent(event);
     } else
-        reply(getTextBot(), user, "NS_DOWN_ALREADY", chan->name);
+        reply(textclient, user, "NS_DOWN_ALREADY", chan->name);
 }
index e446336fdb863ca63855d6d84396c294ad2da471..9bd83510acf097bf774d84598d858f8834db6913 100644 (file)
@@ -40,7 +40,7 @@ CMD_BIND(neonserv_cmd_events) {
     struct tm *timeinfo;
     time_t event_time;
     if(skip < 0) skip = 0;
-    reply(getTextBot(), user, "NS_EVENTS_HEADER");
+    reply(textclient, user, "NS_EVENTS_HEADER");
     while ((row = mysql_fetch_row(res)) != NULL) {
         if(skip) {
             skip--;
@@ -51,7 +51,7 @@ CMD_BIND(neonserv_cmd_events) {
         event_time = (time_t) atol(row[0]);
         timeinfo = localtime(&event_time);
         strftime(timeBuf, 80, "%X %x", timeinfo);
-        reply(getTextBot(), user, "[%s] [%s:%s]: %s", timeBuf, row[2], row[1], row[3]);
+        reply(textclient, user, "[%s] [%s:%s]: %s", timeBuf, row[2], row[1], row[3]);
     }
-    reply(getTextBot(), user, "NS_TABLE_COUNT", count);
+    reply(textclient, user, "NS_TABLE_COUNT", count);
 }
index 2da4c5dc2c2598c26e4304c2c10618b8fdca72b3..39068b4f5115a37d7d3f085c771d5efd8d8b8855 100644 (file)
@@ -44,25 +44,25 @@ CMD_BIND(neonserv_cmd_giveowner) {
     if ((row = mysql_fetch_row(res)) == NULL) return;
     if(strcmp(row[0], "0") && (atoi(row[0]) + GIVEOWNER_TIMEOUT) > time(0)) {
         char timeBuf[MAXLEN];
-        reply(getTextBot(), user, "NS_GIVEOWNER_TIMEOUT", timeToStr(user, (GIVEOWNER_TIMEOUT - (time(0) - atoi(row[0]))), 2, timeBuf), chan->name);
+        reply(textclient, user, "NS_GIVEOWNER_TIMEOUT", timeToStr(user, (GIVEOWNER_TIMEOUT - (time(0) - atoi(row[0]))), 2, timeBuf), chan->name);
         return;
     }
     if(argv[0][0] == '*') {
         //we've got an auth
         argv[0]++;
-        neonserv_cmd_giveowner_async1(client, getTextBot(), user, chan, event, argv[0], argv[0], (argc != 1 ? argv[1] : NULL));
+        neonserv_cmd_giveowner_async1(client, textclient, user, chan, event, argv[0], argv[0], (argc != 1 ? argv[1] : NULL));
     } else {
         struct UserNode *cuser = getUserByNick(argv[0]);
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_giveowner_async1(client, getTextBot(), user, chan, event, argv[0], cuser->auth, (argc != 1 ? argv[1] : NULL));
+            neonserv_cmd_giveowner_async1(client, textclient, user, chan, event, argv[0], cuser->auth, (argc != 1 ? argv[1] : NULL));
         } else {
             struct neonserv_cmd_giveowner_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -70,7 +70,7 @@ CMD_BIND(neonserv_cmd_giveowner) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
@@ -115,11 +115,11 @@ static void neonserv_cmd_giveowner_async1(struct ClientSocket *client, struct Cl
             if(expire_time - time(0) <= 0) {
                 printf_mysql_query("DELETE FROM `donotregister` WHERE `dnr_id` = '%s'", row[3]);
             } else {
-                reply(getTextBot(), user, "NS_DNR_SET_ANONYM", auth);
+                reply(textclient, user, "NS_DNR_SET_ANONYM", auth);
                 return;
             }
         } else {
-            reply(getTextBot(), user, "NS_DNR_SET_ANONYM", auth);
+            reply(textclient, user, "NS_DNR_SET_ANONYM", auth);
             return;
         }
     }
index 7cd557c05c1a94df25d0c9e9eb7675631cbb23d6..4a4e0efe841e193b96eefd1e0d8da9ee4a9e7633 100644 (file)
@@ -37,7 +37,7 @@ CMD_BIND(neonserv_cmd_halfop) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->nicks = strdup(merge_argv(argv, 0, argc));
index 29f6d21449db7cbecaa0abcd1e49e2477fe15077..8b3c72e9351e56cfb06022bab038d86fc74b942b 100644 (file)
@@ -38,7 +38,7 @@ CMD_BIND(neonserv_cmd_halfopall) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     if(argc) {
index fde0c991e9b615a579698eca14b1166b9ef6e382..903da7ff8b11222af9bc1ed39c4eb575efe37b66 100644 (file)
@@ -44,7 +44,7 @@ CMD_BIND(neonserv_cmd_help) {
             res = mysql_use();
         }
         if ((row = mysql_fetch_row(res)) == NULL) {
-            reply(getTextBot(), user, "NS_HELP_TOPIC");
+            reply(textclient, user, "NS_HELP_TOPIC");
             return;
         }
     }
@@ -56,7 +56,7 @@ CMD_BIND(neonserv_cmd_help) {
             case '\n':
                 if(sendBufPos) {
                     sendBuf[sendBufPos] = '\0';
-                    reply(getTextBot(), user, "%s", sendBuf);
+                    reply(textclient, user, "%s", sendBuf);
                     sendBufPos = 0;
                 }
                 break;
@@ -91,7 +91,7 @@ CMD_BIND(neonserv_cmd_help) {
     }
     if(sendBufPos) {
         sendBuf[sendBufPos] = '\0';
-        reply(getTextBot(), user, "%s", sendBuf);
+        reply(textclient, user, "%s", sendBuf);
         sendBufPos = 0;
     }
 }
index a6b8127080f604ceb1c44a5da2db3d3afd5cbd2c..4b3054dc72c9b9af97e8e178dec9cd4c901f697c 100644 (file)
@@ -31,7 +31,7 @@ CMD_BIND(neonserv_cmd_info) {
     table = table_init(2, 9, 0);
     table_set_bold(table, 0, 1);
     char *content[2];
-    reply(getTextBot(), user, "NS_INFO_HEADER", chan->name);
+    reply(textclient, user, "NS_INFO_HEADER", chan->name);
     content[0] = get_language_string(user, "NS_INFO_DEFAULTTOPIC");
     content[1] = row[0];
     table_add(table, content);
@@ -83,14 +83,14 @@ CMD_BIND(neonserv_cmd_info) {
     char **table_lines = table_end(table);
     int i;
     for(i = 0; i < table->entrys; i++) {
-        reply(getTextBot(), user, table_lines[i]);
+        reply(textclient, user, table_lines[i]);
     }
     table_free(table);
     if(userisowner || isGodMode(user)) {
         printf_mysql_query("SELECT `owner_history_time`, a.`user_user`, b.`user_user` FROM `owner_history` LEFT JOIN `users` a ON `owner_history_from_uid` = a.`user_id` LEFT JOIN `users` b ON `owner_history_to_uid` = b.`user_id` WHERE `owner_history_cid` = '%d'", chan->channel_id);
         res = mysql_use();
         if(mysql_num_rows(res)) {
-            reply(getTextBot(), user, "NS_INFO_OWNERLOG", chan->name);
+            reply(textclient, user, "NS_INFO_OWNERLOG", chan->name);
             time_t rawtime;
             struct tm *timeinfo;
             char timeBuf[80];
@@ -98,7 +98,7 @@ CMD_BIND(neonserv_cmd_info) {
                 rawtime = (time_t) atol(row[0]);
                 timeinfo = localtime(&rawtime);
                 strftime(timeBuf, 80, "%c", timeinfo);
-                reply(getTextBot(), user, "NS_INFO_OWNERCHANGE", row[1], row[2], timeBuf);
+                reply(textclient, user, "NS_INFO_OWNERCHANGE", row[1], row[2], timeBuf);
             }
         }
     }
index 307cccd4b3c55fb4304ee4eda611703d180249e0..e684a367f23dcaaef936d242ff72b43c9897fb81 100644 (file)
@@ -47,19 +47,19 @@ static struct neonserv_cmd_invite_timeout *first_timeout = NULL, *last_timeout =
 
 CMD_BIND(neonserv_cmd_invite) {
     if(neonserv_cmd_invite_is_timeout(argv[0], chan->name)) {
-        reply(getTextBot(), user, "NS_INVITE_TIMEOUT", argv[0], chan->name);
+        reply(textclient, user, "NS_INVITE_TIMEOUT", argv[0], chan->name);
         return;
     }
     struct UserNode *cuser = getUserByNick(argv[0]);
     if(!cuser) {
         cuser = createTempUser(argv[0]);
                if(!cuser) {
-            reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+            reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
             return;
         }
         cuser->flags |= USERFLAG_ISTMPUSER;
     } else if(getChanUser(cuser, chan)) {
-        reply(getTextBot(), user, "NS_INVITE_ON_CHAN", cuser->nick, chan->name);
+        reply(textclient, user, "NS_INVITE_ON_CHAN", cuser->nick, chan->name);
         /* BUG
          This check does not work if the user is invisible (CHMODE +D/+d)
          to fix this we'd need to request the full userlist...
@@ -68,7 +68,7 @@ CMD_BIND(neonserv_cmd_invite) {
         return;
     }
     if(cuser->flags & USERFLAG_ISAUTHED) {
-        neonserv_cmd_invite_async1(client, getTextBot(), user, chan, event, argv[0], cuser->auth);
+        neonserv_cmd_invite_async1(client, textclient, user, chan, event, argv[0], cuser->auth);
     } else {
         struct neonserv_cmd_invite_cache *cache = malloc(sizeof(*cache));
         if (!cache) {
@@ -76,7 +76,7 @@ CMD_BIND(neonserv_cmd_invite) {
             return;
         }
         cache->client = client;
-        cache->textclient = getTextBot();
+        cache->textclient = textclient;
         cache->user = user;
         cache->chan = chan;
         cache->event = event;
index b3feca765f78cff26a4d90449ba57d82f31c2d7c..a66d570d9d46c3c05b5c535435b47ccfd216b289 100644 (file)
@@ -23,7 +23,7 @@
 
 CMD_BIND(neonserv_cmd_inviteme) {
     if(getChanUser(user, chan)) {
-        reply(getTextBot(), user, "NS_INVITEME_ON_CHAN", chan->name);
+        reply(textclient, user, "NS_INVITEME_ON_CHAN", chan->name);
         /* BUG
          This check does not work if the user is invisible (CHMODE +D/+d)
          to fix this we'd need to request the full userlist...
@@ -32,5 +32,5 @@ CMD_BIND(neonserv_cmd_inviteme) {
         return;
     }
     putsock(client, "INVITE %s %s", user->nick, chan->name);
-    reply(getTextBot(), user, "NS_INVITEME_DONE", chan->name);
+    reply(textclient, user, "NS_INVITEME_DONE", chan->name);
 }
index 0e6c2ba1edcddff15ba75cf2698f559b738fdebc..15c7d120aebc0135a37702e2a7d95add68e1f68a 100644 (file)
@@ -39,7 +39,7 @@ CMD_BIND(neonserv_cmd_kick) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->nicks = strdup(argv[0]);
@@ -159,9 +159,9 @@ static void neonserv_cmd_kick_async1(struct ClientSocket *client, struct ClientS
         }
     }
     if(kicked_users == provided_nicks)
-        reply(getTextBot(), user, "NS_KICK_DONE", kicked_users, chan->name);
+        reply(textclient, user, "NS_KICK_DONE", kicked_users, chan->name);
     else
-        reply(getTextBot(), user, "NS_KICK_FAIL", client->user->nick);
+        reply(textclient, user, "NS_KICK_FAIL", client->user->nick);
     if(kicked_users)
         logEvent(event);
 }
index 52fdcb4c48056744ced09defbbab94371ae47d57..b1b73834851e6aada82f95064b4be66b8967db44 100644 (file)
@@ -39,7 +39,7 @@ CMD_BIND(neonserv_cmd_kickban) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->nicks = strdup(argv[0]);
@@ -161,9 +161,9 @@ static void neonserv_cmd_kickban_async1(struct ClientSocket *client, struct Clie
         }
     }
     if(kicked_users == provided_nicks)
-        reply(getTextBot(), user, "NS_KICKBAN_DONE", kicked_users, chan->name);
+        reply(textclient, user, "NS_KICKBAN_DONE", kicked_users, chan->name);
     else
-        reply(getTextBot(), user, "NS_KICKBAN_FAIL", client->user->nick);
+        reply(textclient, user, "NS_KICKBAN_FAIL", client->user->nick);
     if(kicked_users)
         logEvent(event);
 }
index 7d8d2bdfd6275a62a012522cef1b4307bdf15df3..4b3a6054be7e6b8fe2d57cd9ade91f435d603916 100644 (file)
@@ -57,10 +57,10 @@ CMD_BIND(neonserv_cmd_listrank) {
     char **table_lines = table_end(table);
     int i;
     for(i = 0; i < table->entrys; i++) {
-        reply(getTextBot(), user, table_lines[i]);
+        reply(textclient, user, table_lines[i]);
     }
     if(!ranks)
-        reply(getTextBot(), user, "NS_TABLE_NONE");
+        reply(textclient, user, "NS_TABLE_NONE");
     table_free(table);
     printf_mysql_query("SELECT `user_user` FROM `users` WHERE `user_rank` = '0' AND `user_access` > 0");
     res2 = mysql_use();
@@ -70,8 +70,8 @@ CMD_BIND(neonserv_cmd_listrank) {
         usersPos += sprintf(usersBuf+usersPos, (usersPos ? ", %s%s" : "%s%s"), (strcmp(row2[1], "0") ? "@" : ""), row2[0]);
         userCount++;
     }
-    reply(getTextBot(), user, "NS_LISTRANK_UNRANKED", userCount);
+    reply(textclient, user, "NS_LISTRANK_UNRANKED", userCount);
     if(userCount) {
-        reply(getTextBot(), user, "  %s", usersBuf);
+        reply(textclient, user, "  %s", usersBuf);
     }
 }
index 3bb3a6ddea61c67fef2528748f4583246909f56d..656fbec1133d545698e7703d2b010307998a80e3 100644 (file)
@@ -31,7 +31,7 @@ CMD_BIND(neonserv_cmd_mdeluser) {
         min_access = atoi(argv[0]);
         max_access = atoi(seperator);
         if(max_access < min_access) {
-            reply(getTextBot(), user, "NS_INVALID_ACCESS_RANGE", min_access, max_access);
+            reply(textclient, user, "NS_INVALID_ACCESS_RANGE", min_access, max_access);
             return;
         }
     } else {
@@ -42,7 +42,7 @@ CMD_BIND(neonserv_cmd_mdeluser) {
         if(isGodMode(user)) {
             event->flags |= CMDFLAG_OPLOG;
         } else {
-            reply(getTextBot(), user, "NS_NO_ACCESS");
+            reply(textclient, user, "NS_NO_ACCESS");
             return;
         }
     }
@@ -57,7 +57,7 @@ CMD_BIND(neonserv_cmd_mdeluser) {
             printf_mysql_query("DELETE FROM `chanusers` WHERE `chanuser_id` = '%s'", row[1]);
         }
     }
-    reply(getTextBot(), user, "NS_MDELUSER_DONE", del_count, argv[1], min_access, max_access, chan->name);
+    reply(textclient, user, "NS_MDELUSER_DONE", del_count, argv[1], min_access, max_access, chan->name);
     if(del_count)
         logEvent(event);
 }
index 2579287a4aeda526164f330084ec80ca3076d90e..f4ca2d88b26ceeb76ca1c765dda1473785110361 100644 (file)
@@ -38,7 +38,7 @@ CMD_BIND(neonserv_cmd_mode) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->mode = strdup(merge_argv(argv, 0, argc));
index f21b233ec81de1dbb698eb8bd6c38d4278bad05f..abbce35906a60f2e28cebb95505a7dd64a147684 100644 (file)
@@ -44,14 +44,14 @@ CMD_BIND(neonserv_cmd_myaccess) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->nick = strdup(argv[0]);
             cache->chanmatch = (chanmatch ? strdup(chanmatch) : NULL);
             get_userauth(user, module_id, neonserv_cmd_myaccess_nick_lookup, cache);
         } else
-            neonserv_cmd_myaccess_async1(client, getTextBot(), user, chan, user->nick, user->auth, chanmatch);
+            neonserv_cmd_myaccess_async1(client, textclient, user, chan, user->nick, user->auth, chanmatch);
     }
     else if(argv[0][0] == '*') {
         //we've got an auth
@@ -59,7 +59,7 @@ CMD_BIND(neonserv_cmd_myaccess) {
             chanmatch = argv[1];
         }
         argv[0]++;
-        neonserv_cmd_myaccess_async1(client, getTextBot(), user, chan, NULL, argv[0], chanmatch);
+        neonserv_cmd_myaccess_async1(client, textclient, user, chan, NULL, argv[0], chanmatch);
     } else {
         if(argc > 1 && argv[1][0] == '#') {
             chanmatch = argv[1];
@@ -68,13 +68,13 @@ CMD_BIND(neonserv_cmd_myaccess) {
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_myaccess_async1(client, getTextBot(), user, chan, argv[0], cuser->auth, chanmatch);
+            neonserv_cmd_myaccess_async1(client, textclient, user, chan, argv[0], cuser->auth, chanmatch);
         } else {
             struct neonserv_cmd_myaccess_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -82,7 +82,7 @@ CMD_BIND(neonserv_cmd_myaccess) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->nick = strdup(argv[0]);
index de0a8345738050fc646dd77cc83586d65823bd04..56d780e325f3ace36b1d3ea97b3b4d033fd09d82 100644 (file)
@@ -40,7 +40,7 @@ CMD_BIND(neonserv_cmd_nicklist) {
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_ACCESS_DENIED");
+                reply(textclient, user, "NS_ACCESS_DENIED");
                 return;
             }
         }
@@ -52,7 +52,7 @@ CMD_BIND(neonserv_cmd_nicklist) {
     if(argc && !stricmp(argv[0], "nowho") && isGodMode(user)) {
         argv++;
         argc--;
-        neonserv_cmd_nicklist_async1(client, getTextBot(), user, chan, event, (argc ? argv[0] : NULL), syncusers);
+        neonserv_cmd_nicklist_async1(client, textclient, user, chan, event, (argc ? argv[0] : NULL), syncusers);
         return;
     }
     struct neonserv_cmd_nicklist_cache *cache = malloc(sizeof(*cache));
@@ -61,7 +61,7 @@ CMD_BIND(neonserv_cmd_nicklist) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     if(argc) {
index e46f0c40cd945598b4ed176d17e96ab4dd2830b3..bb16d31dc0c9d8e174c00dbb889f672d097464a4 100644 (file)
@@ -26,7 +26,7 @@
 static AUTHLOOKUP_CALLBACK(neonserv_cmd_noregister_auth_lookup);
 static USERAUTH_CALLBACK(neonserv_cmd_noregister_nick_lookup);
 static void neonserv_cmd_noregister_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event,char *auth, int duration, char *reason);
-static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc);
+static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc);
 
 struct neonserv_cmd_noregister_cache {
     struct ClientSocket *client, *textclient;
@@ -39,12 +39,12 @@ struct neonserv_cmd_noregister_cache {
 
 CMD_BIND(neonserv_cmd_noregister) {
     if(argc < 3) {
-        neonserv_cmd_noregister_list(client, user, chan, event, argv, argc);
+        neonserv_cmd_noregister_list(client, textclient, user, chan, event, argv, argc);
         return;
     }
     int duration = strToTime(user, argv[1]);
     if(duration == 0 && strcmp(argv[1], "0")) {
-        reply(getTextBot(), user, "NS_NOREGISTER_INVALID_DURATION", argv[1]);
+        reply(textclient, user, "NS_NOREGISTER_INVALID_DURATION", argv[1]);
         return;
     }
     char *reason = merge_argv(argv, 2, argc);
@@ -54,17 +54,17 @@ CMD_BIND(neonserv_cmd_noregister) {
         printf_mysql_query("SELECT `botid` FROM `bot_channels` LEFT JOIN `channels` ON `bot_channels`.`chanid` = `channels`.`channel_id` WHERE `channel_name` = '%s'", escape_string(argv[0]));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {
-            reply(getTextBot(), user, "NS_NOREGISTER_REGISTERED", argv[0]);
+            reply(textclient, user, "NS_NOREGISTER_REGISTERED", argv[0]);
             return;
         }
-        neonserv_cmd_noregister_async1(client, getTextBot(), user, chan, event, argv[0], duration, reason);
+        neonserv_cmd_noregister_async1(client, textclient, user, chan, event, argv[0], duration, reason);
     } else if(argv[0][0] == '*') {
         //we've got an auth
         argv[0]++;
         printf_mysql_query("SELECT `user_user` FROM `users` WHERE `user_user` = '%s'", escape_string(argv[0]));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {
-            neonserv_cmd_noregister_async1(client, getTextBot(), user, chan, event, row[0], duration, reason);
+            neonserv_cmd_noregister_async1(client, textclient, user, chan, event, row[0], duration, reason);
         } else {
             //we need to create a new user...
             //but first lookup the auth to check if it really exists
@@ -74,7 +74,7 @@ CMD_BIND(neonserv_cmd_noregister) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
@@ -88,13 +88,13 @@ CMD_BIND(neonserv_cmd_noregister) {
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_noregister_async1(client, getTextBot(), user, chan, event, cuser->auth, duration, reason);
+            neonserv_cmd_noregister_async1(client, textclient, user, chan, event, cuser->auth, duration, reason);
         } else {
             struct neonserv_cmd_noregister_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -102,7 +102,7 @@ CMD_BIND(neonserv_cmd_noregister) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
@@ -159,10 +159,10 @@ static void neonserv_cmd_noregister_async1(struct ClientSocket *client, struct C
     else
         userid = 0;
     printf_mysql_query("INSERT INTO `donotregister` (`dnr_target`, `dnr_timeout`, `dnr_user`, `dnr_reason`) VALUES ('%s', '%lu', '%d', '%s')", escape_string(auth), (duration ? (time(0)+duration) : 0), userid, escape_string(reason));
-    reply(getTextBot(), user, "NS_NOREGISTER_DONE", auth);
+    reply(textclient, user, "NS_NOREGISTER_DONE", auth);
 }
 
-static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc) {
+static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc) {
     struct Table *table;
     int entrys = 0;
     MYSQL_RES *res;
@@ -191,9 +191,9 @@ static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct Use
     char **table_lines = table_end(table);
     int i;
     for(i = 0; i < table->entrys; i++) {
-        reply(getTextBot(), user, table_lines[i]);
+        reply(textclient, user, table_lines[i]);
     }
     if(!entrys)
-        reply(getTextBot(), user, "NS_TABLE_NONE");
+        reply(textclient, user, "NS_TABLE_NONE");
     table_free(table);
 }
index 5601b74e02c397a1a130751817204927831c6671..e022c76b647d9aa7b3d71d97e56880c602f8c62e 100644 (file)
@@ -37,7 +37,7 @@ CMD_BIND(neonserv_cmd_op) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->nicks = strdup(merge_argv(argv, 0, argc));
index 3837052f9e39c4fd184b96678815fbea6f8e0fc0..2c52c8f491c99f6825796b57bee1044a255eb742 100644 (file)
@@ -33,7 +33,7 @@ struct neonserv_cmd_opall_cache {
 
 CMD_BIND(neonserv_cmd_opall) {
     if(!argc || strcmp(argv[0], "FORCE")) {
-        reply(getTextBot(), user, "NS_OPALL_SECURITY", chan->name);
+        reply(textclient, user, "NS_OPALL_SECURITY", chan->name);
         return;
     }
     struct neonserv_cmd_opall_cache *cache = malloc(sizeof(*cache));
@@ -42,7 +42,7 @@ CMD_BIND(neonserv_cmd_opall) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     if(argc > 1) {
index e036e2b78c98de8f3200595978aab555ac22551a..4c46838d68d4b2759991293f3fc1ab5f928a243e 100644 (file)
@@ -40,7 +40,7 @@ CMD_BIND(neonserv_cmd_oplog) {
     struct tm *timeinfo;
     time_t event_time;
     if(skip < 0) skip = 0;
-    reply(getTextBot(), user, "NS_EVENTS_HEADER");
+    reply(textclient, user, "NS_EVENTS_HEADER");
     while ((row = mysql_fetch_row(res)) != NULL) {
         if(skip) {
             skip--;
@@ -51,7 +51,7 @@ CMD_BIND(neonserv_cmd_oplog) {
         event_time = (time_t) atol(row[0]);
         timeinfo = localtime(&event_time);
         strftime(timeBuf, 80, "%X %x", timeinfo);
-        reply(getTextBot(), user, "[%s] [%s%s%s]: %s", timeBuf, row[1], (row[2] ? ":" : ""), (row[2] ? row[2] : ""), row[3]);
+        reply(textclient, user, "[%s] [%s%s%s]: %s", timeBuf, row[1], (row[2] ? ":" : ""), (row[2] ? row[2] : ""), row[3]);
     }
-    reply(getTextBot(), user, "NS_TABLE_COUNT", count);
+    reply(textclient, user, "NS_TABLE_COUNT", count);
 }
index ff57f468f0a8eae6b6a7c724d1f8075f5c8e89e8..7bd56e8f3d5dcd9bac523c5a25df3a261d187fe0 100644 (file)
@@ -35,7 +35,7 @@ CMD_BIND(neonserv_cmd_peek) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     get_userlist_if_invisible(chan, module_id, neonserv_cmd_peek_userlist_lookup, cache);
 }
index 7e8999fb9f3e10d153c6a332b631f5f2b9cae112..de4dbc5caee23504e38c040fdc21798324606caf 100644 (file)
@@ -25,7 +25,7 @@ CMD_BIND(neonserv_cmd_recover) {
     MYSQL_ROW row, row2;
     char *channel = argv[0];
     if(!is_valid_chan(channel)) {
-        reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", argv[0]);
+        reply(textclient, user, "NS_INVALID_CHANNEL_NAME", argv[0]);
         return;
     }
     int chanid;
@@ -34,13 +34,13 @@ CMD_BIND(neonserv_cmd_recover) {
     if ((row = mysql_fetch_row(res)) != NULL) {
         chanid = atoi(row[0]);
     } else {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
         return;
     }
     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'", chanid, client->botid);
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) != NULL) {
-        reply(getTextBot(), user, "NS_REGISTER_ALREADY", argv[0], client->user->nick);
+        reply(textclient, user, "NS_REGISTER_ALREADY", argv[0], client->user->nick);
         return;
     }
     printf_mysql_query("SELECT `id`, `max_channels`, `defaulttrigger` FROM `bots` WHERE `botclass` = '%d' ORDER BY `register_priority` DESC", client->botid);
@@ -58,7 +58,7 @@ CMD_BIND(neonserv_cmd_recover) {
         }
     }
     if(!botid) {
-        reply(getTextBot(), user, "NS_REGISTER_FULL");
+        reply(textclient, user, "NS_REGISTER_FULL");
         return;
     }
     struct ClientSocket *bot;
@@ -69,8 +69,8 @@ CMD_BIND(neonserv_cmd_recover) {
     if(bot) {
         putsock(bot, "JOIN %s", channel);
     } else
-        reply(getTextBot(), user, "NS_REGISTER_DISCONNECTED");
+        reply(textclient, user, "NS_REGISTER_DISCONNECTED");
     printf_mysql_query("INSERT INTO `bot_channels` (`botid`, `chanid`, `trigger`) VALUES ('%d', '%d', '%s')", botid, chanid, bottrigger);
-    reply(getTextBot(), user, "NS_RECOVER_DONE", channel);
+    reply(textclient, user, "NS_RECOVER_DONE", channel);
     logEvent(event);
 }
index ad7b02817b19144201c495ee46833f6924f89644..910f4d115bca4d15315ba66fab946c9880b2be95 100644 (file)
@@ -39,7 +39,7 @@ CMD_BIND(neonserv_cmd_rename) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->oldauth = strdup(argv[0]);
index 7a227f011eecd1bd5e86bc90138349c317ab0551..77a9df23c3f539a9b696d5e6e41e94d380e2f91d 100644 (file)
@@ -55,7 +55,7 @@ CMD_BIND(neonserv_cmd_resync) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->usermask = (usermask ? strdup(usermask) : NULL);
     cache->min_access = min_access;
index 12c1b75b3a23013739a0b4b0b87639616798a361..c67e042df668d30f33905480bd3e1a1409d92cf0 100644 (file)
@@ -55,7 +55,7 @@ CMD_BIND(neonserv_cmd_search) {
     }
     for(i = 1; i < argc; i += 2) {
         if(argc <= i+1) {
-            reply(getTextBot(), user, "MODCMD_LESS_PARAM_COUNT");
+            reply(textclient, user, "MODCMD_LESS_PARAM_COUNT");
             return;
         }
         if(!stricmp(argv[i], "name")) criteria.name = argv[i+1];
@@ -122,13 +122,13 @@ CMD_BIND(neonserv_cmd_search) {
     int matches = 0;
     if((criteria.flags & (CMD_SEARCH_FLAG_IS_ZOMBIE | CMD_SEARCH_FLAG_NOT_ZOMBIE))) {
         if(neonserv_cmd_search_zombie) {
-            reply(getTextBot(), user, "NS_SEARCH_ZOMBIE_SCAN_IN_PROGRESS");
+            reply(textclient, user, "NS_SEARCH_ZOMBIE_SCAN_IN_PROGRESS");
             return;
         }
         neonserv_cmd_search_zombie = 1;
     }
     
-    reply(getTextBot(), user, "NS_SEARCH_HEADER");
+    reply(textclient, user, "NS_SEARCH_HEADER");
     MYSQL_RES *res, *res2;
     MYSQL_ROW row, row2;
     printf_mysql_query("SELECT `channel_name`, `user_user`, `channel_registered`, `channel_nodelete`, `suspended`, `channel_id` FROM `bot_channels` LEFT JOIN `bots` ON `bots`.`id` = `botid` LEFT JOIN `channels` ON `chanid` = `channel_id` LEFT JOIN `users` ON `channel_registrator` = `user_id` WHERE `botclass` = '%d' AND `active` = '1'", client->botid);
@@ -199,7 +199,7 @@ CMD_BIND(neonserv_cmd_search) {
         matches++;
         //output
         if(show_chans) {
-            reply(getTextBot(), user, "%s", row[0]);
+            reply(textclient, user, "%s", row[0]);
         }
     }
     if((criteria.flags & (CMD_SEARCH_FLAG_IS_ZOMBIE | CMD_SEARCH_FLAG_NOT_ZOMBIE))) {
@@ -211,11 +211,11 @@ CMD_BIND(neonserv_cmd_search) {
             } else if((criteria.flags & CMD_SEARCH_FLAG_IS_ZOMBIE)) {
                 matches++;
                 if(show_chans) {
-                    reply(getTextBot(), user, "%s", channel->name);
+                    reply(textclient, user, "%s", channel->name);
                 }
             }
         }
     }
     neonserv_cmd_search_zombie = 0;
-    reply(getTextBot(), user, "NS_TABLE_COUNT", matches);
+    reply(textclient, user, "NS_TABLE_COUNT", matches);
 }
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");
 }
index f02ffbebe01706df48b08991587d4717f11caf7a..ac2661af21b058d3f520610051e2fe665fc2cceb 100644 (file)
 * argv[2-*] value
 */
 
-static void neonserv_cmd_setrank_name(struct UserNode *user, int rank_id, char *current, char *value);
-static void neonserv_cmd_setrank_info(struct UserNode *user, int rank_id, char *current, char *value);
-static void neonserv_cmd_setrank_access(struct UserNode *user, int rank_id, char *current, char *value);
-static void neonserv_cmd_setrank_order(struct UserNode *user, int rank_id, char *current, char *value);
+static void neonserv_cmd_setrank_name(struct ClientSocket *textclient, struct UserNode *user, int rank_id, char *current, char *value);
+static void neonserv_cmd_setrank_info(struct ClientSocket *textclient, struct UserNode *user, int rank_id, char *current, char *value);
+static void neonserv_cmd_setrank_access(struct ClientSocket *textclient, struct UserNode *user, int rank_id, char *current, char *value);
+static void neonserv_cmd_setrank_order(struct ClientSocket *textclient, struct UserNode *user, int rank_id, char *current, char *value);
 
 CMD_BIND(neonserv_cmd_setrank) {
     MYSQL_RES *res;
@@ -34,80 +34,80 @@ CMD_BIND(neonserv_cmd_setrank) {
     printf_mysql_query("SELECT `rank_id`, `rank_name`, `rank_info`, `rank_access`, `rank_order` FROM `support_ranks` WHERE `rank_id` = '%s'", escape_string(argv[0]));
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL) {
-        reply(getTextBot(), user, "NS_SETRANK_NOT_FOUND", argv[0]);
+        reply(textclient, user, "NS_SETRANK_NOT_FOUND", argv[0]);
         return;
     }
     if(argc < 2) {
-        reply(getTextBot(), user, "NS_SETRANK_HEAD", row[0]);
-        reply(getTextBot(), user, "\002NAME   \002 %s", row[1]);
-        reply(getTextBot(), user, "\002INFO   \002 %s", row[2]);
-        reply(getTextBot(), user, "\002ACCESS \002 %s", row[3]);
-        reply(getTextBot(), user, "\002ORDER  \002 %s", row[4]);
+        reply(textclient, user, "NS_SETRANK_HEAD", row[0]);
+        reply(textclient, user, "\002NAME   \002 %s", row[1]);
+        reply(textclient, user, "\002INFO   \002 %s", row[2]);
+        reply(textclient, user, "\002ACCESS \002 %s", row[3]);
+        reply(textclient, user, "\002ORDER  \002 %s", row[4]);
     } else {
         char *value = NULL;
         if(argc > 2) {
             value = merge_argv(argv, 2, argc);
         }
         if(!stricmp(argv[1], "name"))
-            neonserv_cmd_setrank_name(user, atoi(row[0]), row[1], value);
+            neonserv_cmd_setrank_name(textclient, user, atoi(row[0]), row[1], value);
         else if(!stricmp(argv[1], "info"))
-            neonserv_cmd_setrank_info(user, atoi(row[0]), row[2], value);
+            neonserv_cmd_setrank_info(textclient, user, atoi(row[0]), row[2], value);
         else if(!stricmp(argv[1], "access"))
-            neonserv_cmd_setrank_access(user, atoi(row[0]), row[3], value);
+            neonserv_cmd_setrank_access(textclient, user, atoi(row[0]), row[3], value);
         else if(!stricmp(argv[1], "order"))
-            neonserv_cmd_setrank_order(user, atoi(row[0]), row[4], value);
+            neonserv_cmd_setrank_order(textclient, user, atoi(row[0]), row[4], value);
         else
-            reply(getTextBot(), user, "NS_SETRANK_UNKNOWN_SETTING", row[1]);
+            reply(textclient, user, "NS_SETRANK_UNKNOWN_SETTING", row[1]);
     }
 }
 
-static void neonserv_cmd_setrank_name(struct UserNode *user, int rank_id, char *current, char *value) {
+static void neonserv_cmd_setrank_name(struct ClientSocket *textclient, struct UserNode *user, int rank_id, char *current, char *value) {
     if(value && stricmp(value, current)) {
         MYSQL_RES *res;
         MYSQL_ROW row;
         printf_mysql_query("SELECT `rank_id` FROM `support_ranks` WHERE `rank_name` = '%s'", escape_string(value));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {
-            reply(getTextBot(), user, "NS_ADDRANK_EXISTS", value);
+            reply(textclient, user, "NS_ADDRANK_EXISTS", value);
             return;
         }
         printf_mysql_query("UPDATE `support_ranks` SET `rank_name` = '%s' WHERE `rank_id` = '%d'", escape_string(value), rank_id);
         current = value;
     }
-    reply(getTextBot(), user, "\002NAME\002 %s", current);
+    reply(textclient, user, "\002NAME\002 %s", current);
 }
 
-static void neonserv_cmd_setrank_info(struct UserNode *user, int rank_id, char *current, char *value) {
+static void neonserv_cmd_setrank_info(struct ClientSocket *textclient, struct UserNode *user, int rank_id, char *current, char *value) {
     if(value && stricmp(value, current)) {
         printf_mysql_query("UPDATE `support_ranks` SET `rank_info` = '%s' WHERE `rank_id` = '%d'", escape_string(value), rank_id);
         current = value;
     }
-    reply(getTextBot(), user, "\002INFO\002 %s", current);
+    reply(textclient, user, "\002INFO\002 %s", current);
 }
 
-static void neonserv_cmd_setrank_access(struct UserNode *user, int rank_id, char *current, char *value) {
+static void neonserv_cmd_setrank_access(struct ClientSocket *textclient, struct UserNode *user, int rank_id, char *current, char *value) {
     if(value && stricmp(value, current)) {
         int new_access = atoi(value);
         if(new_access <= 0 || new_access > 1000) {
-            reply(getTextBot(), user, "NS_INVALID_ACCESS", new_access);
+            reply(textclient, user, "NS_INVALID_ACCESS", new_access);
             return;
         }
         printf_mysql_query("UPDATE `users` SET `user_access` = '%d' WHERE `user_rank` = '%d'", new_access, rank_id);
         printf_mysql_query("UPDATE `support_ranks` SET `rank_access` = '%d' WHERE `rank_id` = '%d'", new_access, rank_id);
         current = value;
     }
-    reply(getTextBot(), user, "\002ACCESS\002 %s", current);
+    reply(textclient, user, "\002ACCESS\002 %s", current);
 }
 
-static void neonserv_cmd_setrank_order(struct UserNode *user, int rank_id, char *current, char *value) {
+static void neonserv_cmd_setrank_order(struct ClientSocket *textclient, struct UserNode *user, int rank_id, char *current, char *value) {
     if(value && stricmp(value, current)) {
         int new_order = atoi(value);
         if(new_order <= 0 || new_order > 99) {
-            reply(getTextBot(), user, "NS_SETRANK_ORDER_INVALID", new_order);
+            reply(textclient, user, "NS_SETRANK_ORDER_INVALID", new_order);
             return;
         }
         printf_mysql_query("UPDATE `support_ranks` SET `rank_order` = '%d' WHERE `rank_id` = '%d'", new_order, rank_id);
         current = value;
     }
-    reply(getTextBot(), user, "\002ORDER\002 %s", current);
+    reply(textclient, user, "\002ORDER\002 %s", current);
 }
index 4991f9ab182bccd92990d659d74bbc3744993d10..57b43be73a31119774284730e32b301ed2334b6d 100644 (file)
@@ -35,19 +35,19 @@ CMD_BIND(neonserv_cmd_suspend) {
     if(argv[0][0] == '*') {
         //we've got an auth
         argv[0]++;
-        neonserv_cmd_suspend_async1(client, getTextBot(), user, chan, event, argv[0], argv[0]);
+        neonserv_cmd_suspend_async1(client, textclient, user, chan, event, argv[0], argv[0]);
     } else {
         struct UserNode *cuser = getUserByNick(argv[0]);
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_suspend_async1(client, getTextBot(), user, chan, event, argv[0], cuser->auth);
+            neonserv_cmd_suspend_async1(client, textclient, user, chan, event, argv[0], cuser->auth);
         } else {
             struct neonserv_cmd_suspend_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -55,7 +55,7 @@ CMD_BIND(neonserv_cmd_suspend) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
index 80e0b2de2c70d9a9b135ac9f7fde2bd0a6f22044..116d2a62215657aae3723ef88adb00389dd0e5c2 100644 (file)
@@ -50,7 +50,7 @@ CMD_BIND(neonserv_cmd_topic) {
     if(argc == 0) {
         //default topic!
         putsock(client, "TOPIC %s :%s", chan->name, row[5]);
-        reply(getTextBot(), user, "NS_TOPIC_DONE", row[5]);
+        reply(textclient, user, "NS_TOPIC_DONE", row[5]);
         logEvent(event);
         return;
     }
@@ -63,7 +63,7 @@ CMD_BIND(neonserv_cmd_topic) {
             printf_mysql_query("UPDATE `channels` SET `channel_defaulttopic` = '%s' WHERE `channel_id` = '%d'", escape_string(newtopic), chan->channel_id);
         }
         putsock(client, "TOPIC %s :%s", chan->name, newtopic);
-        reply(getTextBot(), user, "NS_TOPIC_DONE", newtopic);
+        reply(textclient, user, "NS_TOPIC_DONE", newtopic);
         logEvent(event);
         return;
     }
@@ -72,7 +72,7 @@ CMD_BIND(neonserv_cmd_topic) {
         int topic_id = 0;
         topic_id = atoi(argv[0]);
         if(!topic_id || topic_id > ADVANCEDTOPIC_MAXID) {
-            reply(getTextBot(), user, "NS_EXTTOPIC_INVALID_ID", argv[0]);
+            reply(textclient, user, "NS_EXTTOPIC_INVALID_ID", argv[0]);
             return;
         }
         //parse topics
@@ -89,7 +89,7 @@ CMD_BIND(neonserv_cmd_topic) {
             advtopics[i] = "";
         if(argc < 2) {
             //just show the topic with this id
-            reply(getTextBot(), user, "NS_EXTTOPIC_TOPICID", topic_id, advtopics[topic_id-1]);
+            reply(textclient, user, "NS_EXTTOPIC_TOPICID", topic_id, advtopics[topic_id-1]);
             return;
         }
         newtopic = merge_argv(argv, 1, argc);
@@ -127,7 +127,7 @@ CMD_BIND(neonserv_cmd_topic) {
         if(topiclistpos > MAXLEN)
             topiclist[MAXLEN] = '\0';
         putsock(client, "TOPIC %s :%s", chan->name, topiclist);
-        reply(getTextBot(), user, "NS_TOPIC_DONE", topiclist);
+        reply(textclient, user, "NS_TOPIC_DONE", topiclist);
         logEvent(event);
     } else {
         newtopic = merge_argv(argv, 0, argc);
@@ -149,7 +149,7 @@ CMD_BIND(neonserv_cmd_topic) {
         if(topiclistpos > MAXLEN)
             topiclist[MAXLEN] = '\0';
         putsock(client, "TOPIC %s :%s", chan->name, topiclist);
-        reply(getTextBot(), user, "NS_TOPIC_DONE", topiclist);
+        reply(textclient, user, "NS_TOPIC_DONE", topiclist);
         logEvent(event);
     }
 }
index c9b8e89de2918655899bc6422768b9282bc74e49..717c85e8ee4517b5089f524e9a179a2101ea983c 100644 (file)
@@ -49,7 +49,7 @@ CMD_BIND(neonserv_cmd_trace) {
     }
     for(i = 1; i < argc; i += 2) {
         if(argc <= i+1) {
-            reply(getTextBot(), user, "MODCMD_LESS_PARAM_COUNT");
+            reply(textclient, user, "MODCMD_LESS_PARAM_COUNT");
             return;
         }
         if(!stricmp(argv[i], "mask")) criteria->mask = argv[i+1];
@@ -63,7 +63,7 @@ CMD_BIND(neonserv_cmd_trace) {
             } else if(!strcmp(argv[i+1], "0") || !strcmp(argv[i+1], "off") || !strcmp(argv[i+1], get_language_string(user, "NS_SET_OFF"))) {
                 criteria->authed = 0;
             } else {
-                reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", argv[i+1]);
+                reply(textclient, user, "NS_SET_INVALID_BOOLEAN", argv[i+1]);
                 return;
             }
             criteria->flags |= NS_TRACE_CRITERIA_AUTHED;
@@ -80,7 +80,7 @@ CMD_BIND(neonserv_cmd_trace) {
     char tmp[MAXLEN];
     int matches = 0;
     struct UserNode *cuser;
-    reply(getTextBot(), user, "NS_TRACE_HEADER");
+    reply(textclient, user, "NS_TRACE_HEADER");
     for(cuser = getAllUsers(NULL); cuser; cuser = getAllUsers(cuser)) {
         if(show_user && matches == criteria->limit) {
             //too many
@@ -106,8 +106,8 @@ CMD_BIND(neonserv_cmd_trace) {
         matches++;
         //output
         if(show_user) {
-            reply(getTextBot(), user, "%s!%s@%s %s", cuser->nick, cuser->ident, cuser->host, ((cuser->flags & USERFLAG_ISAUTHED) ? cuser->auth : "*"));
+            reply(textclient, user, "%s!%s@%s %s", cuser->nick, cuser->ident, cuser->host, ((cuser->flags & USERFLAG_ISAUTHED) ? cuser->auth : "*"));
         }
     }
-    reply(getTextBot(), user, "NS_TABLE_COUNT", matches);
+    reply(textclient, user, "NS_TABLE_COUNT", matches);
 }
index 1e382d67c8f5ee4cac2c7cdb4d87c260154271c5..fea0c0afdb0e9e6ffe5dc90a7a7af11a7e99024d 100644 (file)
@@ -38,14 +38,14 @@ CMD_BIND(neonserv_cmd_trim) {
         if(isGodMode(user)) {
             event->flags |= CMDFLAG_OPLOG;
         } else {
-            reply(getTextBot(), user, "NS_ACCESS_DENIED");
+            reply(textclient, user, "NS_ACCESS_DENIED");
             return;
         }
     }
     int min_access, max_access;
     int duration = strToTime(user, argv[1]);
     if(duration < 30) {
-        reply(getTextBot(), user, "NS_TRIM_DURATION_TOO_SHORT", 30);
+        reply(textclient, user, "NS_TRIM_DURATION_TOO_SHORT", 30);
         return;
     }
     if(!stricmp(argv[0], "users")) {
@@ -56,7 +56,7 @@ CMD_BIND(neonserv_cmd_trim) {
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_ACCESS_DENIED");
+                reply(textclient, user, "NS_ACCESS_DENIED");
                 return;
             }
         }
@@ -77,7 +77,7 @@ CMD_BIND(neonserv_cmd_trim) {
         }
         freeModeBuffer(modenode);
         char timeBuf[MAXLEN];
-        reply(getTextBot(), user, "NS_TRIM_BAN_DONE", bancount, chan->name, timeToStr(user, duration, 3, timeBuf));
+        reply(textclient, user, "NS_TRIM_BAN_DONE", bancount, chan->name, timeToStr(user, duration, 3, timeBuf));
         if(bancount)
             logEvent(event);
         return;
@@ -89,7 +89,7 @@ CMD_BIND(neonserv_cmd_trim) {
             min_access = atoi(argv[0]);
             max_access = atoi(seperator);
             if(max_access < min_access) {
-                reply(getTextBot(), user, "NS_INVALID_ACCESS_RANGE", min_access, max_access);
+                reply(textclient, user, "NS_INVALID_ACCESS_RANGE", min_access, max_access);
                 return;
             }
         } else {
@@ -100,7 +100,7 @@ CMD_BIND(neonserv_cmd_trim) {
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_NO_ACCESS");
+                reply(textclient, user, "NS_NO_ACCESS");
                 return;
             }
         }
@@ -111,7 +111,7 @@ CMD_BIND(neonserv_cmd_trim) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->min_access = min_access;
@@ -152,7 +152,7 @@ static void neonserv_cmd_trim_async1(struct ClientSocket *client, struct ClientS
         }
     }
     char timeBuf[MAXLEN];
-    reply(getTextBot(), user, "NS_TRIM_DONE", trim_count, min_access, max_access, chan->name, timeToStr(user, duration, 3, timeBuf));
+    reply(textclient, user, "NS_TRIM_DONE", trim_count, min_access, max_access, chan->name, timeToStr(user, duration, 3, timeBuf));
     if(trim_count)
         logEvent(event);
 }
index 681bc414de038ee62df15c6597ebcecc5a69b585..46fb68a0edff159111356bc9dd2a049379ecd6fe 100644 (file)
@@ -45,7 +45,7 @@ CMD_BIND(neonserv_cmd_unban) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->chan = chan;
     cache->event = event;
index 53a34ee0e354a2325a8b9403942fcf98c2ad35a5..f46914605eb0dbb44809f3b7c9bd35db0cf14048 100644 (file)
@@ -32,8 +32,8 @@ CMD_BIND(neonserv_cmd_unbanall) {
     }
     freeModeBuffer(modeBuf);
     if(bans) {
-        reply(getTextBot(), user, "NS_UNBANALL_DONE", bans, chan->name);
+        reply(textclient, user, "NS_UNBANALL_DONE", bans, chan->name);
         logEvent(event);
     } else
-        reply(getTextBot(), user, "NS_UNBANALL_FAIL", client->user->nick, chan->name);
+        reply(textclient, user, "NS_UNBANALL_FAIL", client->user->nick, chan->name);
 }
index 0bd8cb29e6283505fb61d683aa60cb05f32040c1..f52e669ce5b05f2863363adfdcfefd74264fb19e 100644 (file)
@@ -36,8 +36,8 @@ CMD_BIND(neonserv_cmd_unbanme) {
     }
     freeModeBuffer(modeBuf);
     if(bans) {
-        reply(getTextBot(), user, "NS_UNBANME_DONE", bans, chan->name);
+        reply(textclient, user, "NS_UNBANME_DONE", bans, chan->name);
         logEvent(event);
     } else
-        reply(getTextBot(), user, "NS_UNBANME_FAIL", client->user->nick, usermask);
+        reply(textclient, user, "NS_UNBANME_FAIL", client->user->nick, usermask);
 }
index 9f710718dd09df9436f1451e4a7a584a2c5453d1..9159c0a0c97e2e13a2f10c51e7c34f2e4e902312 100644 (file)
@@ -35,19 +35,19 @@ CMD_BIND(neonserv_cmd_unsuspend) {
     if(argv[0][0] == '*') {
         //we've got an auth
         argv[0]++;
-        neonserv_cmd_unsuspend_async1(client, getTextBot(), user, chan, event, argv[0], argv[0]);
+        neonserv_cmd_unsuspend_async1(client, textclient, user, chan, event, argv[0], argv[0]);
     } else {
         struct UserNode *cuser = getUserByNick(argv[0]);
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_unsuspend_async1(client, getTextBot(), user, chan, event, argv[0], cuser->auth);
+            neonserv_cmd_unsuspend_async1(client, textclient, user, chan, event, argv[0], cuser->auth);
         } else {
             struct neonserv_cmd_unsuspend_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -55,7 +55,7 @@ CMD_BIND(neonserv_cmd_unsuspend) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
index 62f86c0bd2cfaaf4e93f8671865658240f715db4..fd265fb384faf470b182918f310a96a265709637 100644 (file)
@@ -34,11 +34,11 @@ static TIMEQ_CALLBACK(neonserv_check_unvisited_timer);
 
 CMD_BIND(neonserv_cmd_unvisited) {
     int duration = (argc ? strToTime(user, argv[0]) : 60*60*24*7*3);
-    reply(getTextBot(), user, "NS_SEARCH_HEADER");
+    reply(textclient, user, "NS_SEARCH_HEADER");
     int unreg = 0;
     if(argc > 1 && !stricmp(argv[1], "unregister")) 
         unreg = 1;
-    neonserv_check_unvisited(client, getTextBot(), user, duration, unreg);
+    neonserv_check_unvisited(client, textclient, user, duration, unreg);
 }
 
 void neonserv_cmd_unvisited_init() {
index 597f02336b532a664bb932ff916766cf9c06b237..76dc980cb1c9dc583aafc714bca82b149708a80d 100644 (file)
@@ -39,12 +39,12 @@ CMD_BIND(neonserv_cmd_up) {
             return;
         }
         cache->client = client;
-        cache->textclient = getTextBot();
+        cache->textclient = textclient;
         cache->user = user;
         cache->event = event;
         get_userlist_if_invisible(chan, module_id, neonserv_cmd_up_userlist_lookup, cache);
     } else {
-        neonserv_cmd_up_async1(client, getTextBot(), user, chan, event);
+        neonserv_cmd_up_async1(client, textclient, user, chan, event);
     }
 }
 
@@ -57,7 +57,7 @@ static USERLIST_CALLBACK(neonserv_cmd_up_userlist_lookup) {
 static void neonserv_cmd_up_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event) {
     struct ChanUser *chanuser = getChanUser(user, chan);
     if(!chanuser) {
-        reply(getTextBot(), user, "NS_NOT_ON_CHANNEL_YOU", chan->name);
+        reply(textclient, user, "NS_NOT_ON_CHANNEL_YOU", chan->name);
         return;
     }
     loadChannelSettings(chan);
@@ -83,13 +83,13 @@ static void neonserv_cmd_up_async1(struct ClientSocket *client, struct ClientSoc
             putsock(client, "MODE %s +o %s", chan->name, user->nick);
             logEvent(event);
         } else
-            reply(getTextBot(), user, "NS_UP_ALREADY_OP", chan->name);
+            reply(textclient, user, "NS_UP_ALREADY_OP", chan->name);
     } else if(caccess >= chan_getvoice) {
         if(!(chanuser->flags & CHANUSERFLAG_VOICED)) {
             putsock(client, "MODE %s +v %s", chan->name, user->nick);
             logEvent(event);
         } else
-            reply(getTextBot(), user, "NS_UP_ALREADY_VOICE", chan->name);
+            reply(textclient, user, "NS_UP_ALREADY_VOICE", chan->name);
     } else
-        reply(getTextBot(), user, "NS_NOT_ON_USERLIST_YOU", chan->name);
+        reply(textclient, user, "NS_NOT_ON_USERLIST_YOU", chan->name);
 }
index badb15eb7de729276a5c21a3bc7aa4a272c66b4d..21fcf93f1ac84bd1e1e27cb51b23ef73ae8bbcd9 100644 (file)
@@ -48,7 +48,7 @@ CMD_BIND(neonserv_cmd_users) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->usermask = (usermask ? strdup(usermask) : NULL);
     cache->min_access = min_access;
index 822cd5ec0fd6e04e8658e2bc83c853fb683ea8c6..41b9dfd7d5715b91ecd3dba7920938259955144f 100644 (file)
 
 #include "cmd_neonserv.h"
 
-typedef void neonserv_cmd_uset_function(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
-static void neonserv_cmd_uset_language(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
-static void neonserv_cmd_uset_blockinvite(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
-static void neonserv_cmd_uset_noinvite(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
-static void neonserv_cmd_uset_autoinvite(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
-static void neonserv_cmd_uset_noautoop(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
-static void neonserv_cmd_uset_info(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
+typedef void neonserv_cmd_uset_function(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
+static void neonserv_cmd_uset_language(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
+static void neonserv_cmd_uset_blockinvite(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
+static void neonserv_cmd_uset_noinvite(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
+static void neonserv_cmd_uset_autoinvite(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
+static void neonserv_cmd_uset_noautoop(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
+static void neonserv_cmd_uset_info(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults);
 
 #define USET_FLAG_GLOBAL    0x01
 #define USET_FLAG_CHANNEL   0x02
@@ -67,7 +67,7 @@ CMD_BIND(neonserv_cmd_uset) {
                     loadChannelSettings(chan);
                     if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) {
                         neonserv_cmd_uset_err_chan_required:
-                        reply(getTextBot(), user, "MODCMD_CHAN_REQUIRED");
+                        reply(textclient, user, "MODCMD_CHAN_REQUIRED");
                         return;
                     }
                     if((uset_settings[i].flags & USET_FLAG_DEFAULTS) && !row) {
@@ -75,13 +75,13 @@ CMD_BIND(neonserv_cmd_uset) {
                         res = mysql_use();
                         row = mysql_fetch_row(res);
                         if(!row) {
-                            reply(getTextBot(), user, "NS_NOT_ON_USERLIST_YOU", chan->name);
+                            reply(textclient, user, "NS_NOT_ON_USERLIST_YOU", chan->name);
                             return;
                         }
                     }
                 }
                 neonserv_cmd_uset_function *func = uset_settings[i].function;
-                func(client, user, chan, event, uset_settings[i].setting, args, row);
+                func(client, textclient, user, chan, event, uset_settings[i].setting, args, row);
                 j = 1;
                 break;
             }
@@ -89,22 +89,22 @@ CMD_BIND(neonserv_cmd_uset) {
         }
         if(j == 0) {
             //unknown setting
-            reply(getTextBot(), user, "NS_USET_UNKNOWN_SETTING", argv[0]);
+            reply(textclient, user, "NS_USET_UNKNOWN_SETTING", argv[0]);
         }
     } else {
         //view all options
-        reply(getTextBot(), user, "NS_USET_GLOBAL");
+        reply(textclient, user, "NS_USET_GLOBAL");
         while(uset_settings[i].setting) {
             if((uset_settings[i].flags & (USET_FLAG_INVISIBLE | USET_FLAG_GLOBAL)) == USET_FLAG_GLOBAL) {
                 neonserv_cmd_uset_function *func = uset_settings[i].function;
-                func(client, user, chan, event, uset_settings[i].setting, NULL, row);
+                func(client, textclient, user, chan, event, uset_settings[i].setting, NULL, row);
             }
             i++;
         }
         if(!chan) return;
         loadChannelSettings(chan);
         if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) return;
-        reply(getTextBot(), user, "NS_USET_CHANNEL");
+        reply(textclient, user, "NS_USET_CHANNEL");
         i = 0;
         while(uset_settings[i].setting) {
             if((uset_settings[i].flags & (USET_FLAG_INVISIBLE | USET_FLAG_CHANNEL)) == USET_FLAG_CHANNEL) {
@@ -118,14 +118,14 @@ CMD_BIND(neonserv_cmd_uset) {
                     }
                 }
                 neonserv_cmd_uset_function *func = uset_settings[i].function;
-                func(client, user, chan, event, uset_settings[i].setting, NULL, row);
+                func(client, textclient, user, chan, event, uset_settings[i].setting, NULL, row);
             }
             i++;
         }
     }
 }
 
-static void neonserv_cmd_uset_language(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
+static void neonserv_cmd_uset_language(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
     MYSQL_RES *res;
     MYSQL_ROW row;
     struct language* lang;
@@ -148,7 +148,7 @@ static void neonserv_cmd_uset_language(struct ClientSocket *client, struct UserN
         }
     } else
         lang = user->language;
-    reply(getTextBot(), user, "\002Language    \002%s", lang->langname);
+    reply(textclient, user, "\002Language    \002%s", lang->langname);
     char tmp[MAXLEN];
     int tmppos = 0;
     lang = get_default_language();
@@ -158,10 +158,10 @@ static void neonserv_cmd_uset_language(struct ClientSocket *client, struct UserN
     while((row = mysql_fetch_row(res)) != NULL) {
         tmppos += sprintf(tmp + tmppos, ", %s (%s)", row[1], row[0]);
     }
-    reply(getTextBot(), user, "  %s", tmp);
+    reply(textclient, user, "  %s", tmp);
 }
 
-static void neonserv_cmd_uset_blockinvite(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
+static void neonserv_cmd_uset_blockinvite(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
     MYSQL_RES *res;
     MYSQL_ROW row;
     printf_mysql_query("SELECT `user_id`, `user_block_invites` FROM `users` WHERE `user_user` = '%s'", escape_string(user->auth));
@@ -180,10 +180,10 @@ static void neonserv_cmd_uset_blockinvite(struct ClientSocket *client, struct Us
             printf_mysql_query("UPDATE `users` SET `user_block_invites` = '%d' WHERE `user_id` = '%s'", blockinvite, row[0]);
         }
     }
-    reply(getTextBot(), user, "\002BlockInvite \002%s", (blockinvite ? get_language_string(user, "NS_SET_ON") : get_language_string(user, "NS_SET_OFF")));
+    reply(textclient, user, "\002BlockInvite \002%s", (blockinvite ? get_language_string(user, "NS_SET_ON") : get_language_string(user, "NS_SET_OFF")));
 }
 
-static void neonserv_cmd_uset_noinvite(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
+static void neonserv_cmd_uset_noinvite(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
     MYSQL_RES *res;
     MYSQL_ROW row;
     printf_mysql_query("SELECT `id` FROM `noinvite` LEFT JOIN `users` ON `uid` = `user_id` WHERE `cid` = '%d' AND `user_user` = '%s'", chan->channel_id, escape_string(user->auth));
@@ -212,10 +212,10 @@ static void neonserv_cmd_uset_noinvite(struct ClientSocket *client, struct UserN
             }
         }
     }
-    reply(getTextBot(), user, "\002NoInvite    \002%s", (noinvite ? get_language_string(user, "NS_SET_ON") : get_language_string(user, "NS_SET_OFF")));
+    reply(textclient, user, "\002NoInvite    \002%s", (noinvite ? get_language_string(user, "NS_SET_ON") : get_language_string(user, "NS_SET_OFF")));
 }
 
-static void neonserv_cmd_uset_autoinvite(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
+static void neonserv_cmd_uset_autoinvite(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
     int flags = atoi(defaults[0]);
     int getInvite = 0;
     if(!defaults[3] && atoi(defaults[2]) >= atoi(getChanDefault("channel_getinvite")))
@@ -236,12 +236,12 @@ static void neonserv_cmd_uset_autoinvite(struct ClientSocket *client, struct Use
         }
     }
     if(getInvite)
-        reply(getTextBot(), user, "\002AutoInvite  \002%s", ((flags & DB_CHANUSER_AUTOINVITE) ? get_language_string(user, "NS_SET_ON") : get_language_string(user, "NS_SET_OFF")));
+        reply(textclient, user, "\002AutoInvite  \002%s", ((flags & DB_CHANUSER_AUTOINVITE) ? get_language_string(user, "NS_SET_ON") : get_language_string(user, "NS_SET_OFF")));
     else
-        reply(getTextBot(), user, "\002AutoInvite  \002%s", get_language_string(user, "NS_USET_NO_ACCESS"));
+        reply(textclient, user, "\002AutoInvite  \002%s", get_language_string(user, "NS_USET_NO_ACCESS"));
 }
 
-static void neonserv_cmd_uset_noautoop(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
+static void neonserv_cmd_uset_noautoop(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
     int flags = atoi(defaults[0]);
     if(argument) {
         if(!strcmp(argument, "0") || !stricmp(argument, "off") || !stricmp(argument, get_language_string(user, "NS_SET_OFF"))) {
@@ -256,10 +256,10 @@ static void neonserv_cmd_uset_noautoop(struct ClientSocket *client, struct UserN
             }
         }
     }
-    reply(getTextBot(), user, "\002NoAutoOp    \002%s", ((flags & DB_CHANUSER_NOAUTOOP) ? get_language_string(user, "NS_SET_ON") : get_language_string(user, "NS_SET_OFF")));
+    reply(textclient, user, "\002NoAutoOp    \002%s", ((flags & DB_CHANUSER_NOAUTOOP) ? get_language_string(user, "NS_SET_ON") : get_language_string(user, "NS_SET_OFF")));
 }
 
-static void neonserv_cmd_uset_info(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
+static void neonserv_cmd_uset_info(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, const char *setting, char *argument, MYSQL_ROW defaults) {
     char *infoline;
     if(argument) {
         infoline = argument;
@@ -268,5 +268,5 @@ static void neonserv_cmd_uset_info(struct ClientSocket *client, struct UserNode
         printf_mysql_query("UPDATE `chanusers` SET `chanuser_infoline` = '%s' WHERE `chanuser_id` = '%s'", escape_string(infoline), defaults[4]);
     } else
         infoline = defaults[1];
-    reply(getTextBot(), user, "\002Info        \002%s", infoline);
+    reply(textclient, user, "\002Info        \002%s", infoline);
 }
index b50556e1d70519eb9f8d757fdc628803086df935..351ac2ae15de69810e6a6cc72bc5f92fab749677 100644 (file)
@@ -37,7 +37,7 @@ CMD_BIND(neonserv_cmd_voice) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     cache->nicks = strdup(merge_argv(argv, 0, argc));
index 29b4525f590f7de4ba5aaf5406b2b66945f2aa73..273053be9bc592b999a86bbd2d1f57c1e6bd214c 100644 (file)
@@ -37,7 +37,7 @@ CMD_BIND(neonserv_cmd_voiceall) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->user = user;
     cache->event = event;
     if(argc > 0) {
index 8541f5b3617d57b06eb2e4b48fbfae3301afc38e..f287040fb1edbdfe041f42baea0cf60beddb0848 100644 (file)
@@ -35,19 +35,19 @@ CMD_BIND(neonserv_cmd_wipeinfo) {
     if(argv[0][0] == '*') {
         //we've got an auth
         argv[0]++;
-        neonserv_cmd_wipeinfo_async1(client, getTextBot(), user, chan, event, argv[0], argv[0]);
+        neonserv_cmd_wipeinfo_async1(client, textclient, user, chan, event, argv[0], argv[0]);
     } else {
         struct UserNode *cuser = getUserByNick(argv[0]);
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            neonserv_cmd_wipeinfo_async1(client, getTextBot(), user, chan, event, argv[0], cuser->auth);
+            neonserv_cmd_wipeinfo_async1(client, textclient, user, chan, event, argv[0], cuser->auth);
         } else {
             struct neonserv_cmd_wipeinfo_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -55,7 +55,7 @@ CMD_BIND(neonserv_cmd_wipeinfo) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
index d6ca60cf120e07d5a3b41b30326540bc7b4c3465..c6452c6ba2712ea059fb0ed71e4c8dc0527ada8f 100644 (file)
@@ -53,5 +53,5 @@ CMD_BIND(neonspam_cmd_addbad) {
     badword->reaction_time = reaction_time;
     badword->next = settings->badwords;
     settings->badwords = badword;
-    reply(getTextBot(), user, "SS_BADWORD_ADDED", cbadword, badword_id);
+    reply(textclient, user, "SS_BADWORD_ADDED", cbadword, badword_id);
 }
index 9767e35d3b1230260da1917219f923c9187f2791..96741f73c93df2efa7f14e959db831c5497079f6 100644 (file)
@@ -29,7 +29,7 @@ CMD_BIND(neonspam_cmd_badwords) {
         printf_mysql_query("SELECT `badword_match` FROM `spamserv_badwords` WHERE `badword_id` = '%d' AND `badword_cid` = '%d'", badword_id, chan->channel_id);
         res = mysql_use();
         if(!(row = mysql_fetch_row(res))) {
-            reply(getTextBot(), user, "SS_BADWORD_ID_UNKNOWN", badword_id, chan->name);
+            reply(textclient, user, "SS_BADWORD_ID_UNKNOWN", badword_id, chan->name);
             return;
         }
         //to be continued...
@@ -99,7 +99,7 @@ CMD_BIND(neonspam_cmd_badwords) {
         char **table_lines = table_end(table);
         int i;
         for(i = 0; i < table->entrys; i++) {
-            reply(getTextBot(), user, table_lines[i]);
+            reply(textclient, user, table_lines[i]);
         }
         table_free(table);
     }
index 0a34d028034622820b139211090da9daae2d03f7..e1154b24ad3911aeff4f0374eeaa2f9008617bd2 100644 (file)
@@ -28,7 +28,7 @@ CMD_BIND(neonspam_cmd_delbad) {
     printf_mysql_query("SELECT `badword_match` FROM `spamserv_badwords` WHERE `badword_id` = '%d' AND `badword_cid` = '%d'", badword_id, chan->channel_id);
     res = mysql_use();
     if(!(row = mysql_fetch_row(res))) {
-        reply(getTextBot(), user, "SS_BADWORD_ID_UNKNOWN", badword_id, chan->name);
+        reply(textclient, user, "SS_BADWORD_ID_UNKNOWN", badword_id, chan->name);
         return;
     }
     struct NeonSpamBadword *badword, *prev = NULL;
@@ -45,5 +45,5 @@ CMD_BIND(neonspam_cmd_delbad) {
             prev = badword;
     }
     printf_mysql_query("DELETE FROM `spamserv_badwords` WHERE `badword_id` = '%d'", badword_id);
-    reply(getTextBot(), user, "SS_BADWORD_DELETED", row[0], badword_id);
+    reply(textclient, user, "SS_BADWORD_DELETED", row[0], badword_id);
 }
index 92bce288d6b502bcdc24f316a94166094ee987ac..752f2b25122ffe5aca3561f95369142f7929576e 100644 (file)
 
 #include "cmd_neonspam.h"
 
-typedef char* neonspam_cmd_set_function(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_set_trigger(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_setflags(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_setexcept(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_set_reaction(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_set_reaction_time(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_setpercent(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_setsensibility(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_set_spamlimit(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_setscanops(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_setscanvoice(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
-static char* neonspam_cmd_setscanexcept(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+typedef char* neonspam_cmd_set_function(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_set_trigger(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_setflags(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_setexcept(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_set_reaction(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_set_reaction_time(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_setpercent(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_setsensibility(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_set_spamlimit(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_setscanops(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_setscanvoice(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
+static char* neonspam_cmd_setscanexcept(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf);
 
 static MYSQL_ROW neonspam_settings_row, neonspam_settings_defaults;
 #define SPAMSERV_SETTINGS_QUERY "`channel_spam_reaction`, `channel_spam_reaction_duration`, `channel_flood_reaction`, `channel_flood_reaction_duration`, `channel_join_reaction`, `channel_join_reaction_duration`, `channel_botnet_bantime`, `channel_caps_reaction`, `channel_caps_reaction_duration`, `channel_digit_reaction`, `channel_digit_reaction_duration`, `channel_badword_reaction`, `channel_badword_reaction_duration`"
@@ -155,7 +155,7 @@ CMD_BIND(neonspam_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;
             }
         }
@@ -169,10 +169,10 @@ CMD_BIND(neonspam_cmd_set) {
         sprintf(defaultskey, "%08x", seed);
         if(argc > 1 && !strcmp(argv[1], defaultskey)) {
             printf_mysql_query("UPDATE `channels` SET " SPAMSERV_SETTINGS_RESET " WHERE `channel_id` = '%d'", 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
@@ -187,7 +187,7 @@ CMD_BIND(neonspam_cmd_set) {
                 char valueBuf[MAXLEN], nameBuf[MAXLEN];
                 char *value, *optimized_value, *option_help;
                 neonspam_cmd_set_function *func = neonspam_settings[i].function;
-                value = func(client, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, args, valueBuf);
+                value = func(client, textclient, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, args, valueBuf);
                 if(value) {
                     optimized_value = value;
                     if(neonspam_settings[i].flags & SET_BOOL) {
@@ -201,13 +201,13 @@ CMD_BIND(neonspam_cmd_set) {
                         option_help = get_language_string(user, nameBuf);
                     } else
                         option_help = NULL;
-                    reply(getTextBot(), user, "\002%s\002 %s%s%s", neonspam_settings[i].setting, optimized_value, (option_help ? " - " : ""), (option_help ? option_help : ""));
+                    reply(textclient, user, "\002%s\002 %s%s%s", neonspam_settings[i].setting, optimized_value, (option_help ? " - " : ""), (option_help ? option_help : ""));
                     if(neonspam_settings[i].flags & SET_OPT) {
                         int maxoption = (neonspam_settings[i].flags & SET_OPT_MAX) >> SET_OPT_SHIFT;
                         for(j = 0; j < maxoption; j++) {
                             sprintf(nameBuf, "SS_SET_OPTION_%s_%d", neonspam_settings[i].setting, j);
                             option_help = get_language_string(user, nameBuf);
-                            reply(getTextBot(), user, " \002%d\002 - %s", j, option_help);
+                            reply(textclient, user, " \002%d\002 - %s", j, option_help);
                         }
                     }
                     if((neonspam_settings[i].flags & SET_HELP) && argc && !strcmp(argv[0], "help")) {
@@ -215,7 +215,7 @@ CMD_BIND(neonspam_cmd_set) {
                         sprintf(nameBuf, "SS_SET_HELP_%s", neonspam_settings[i].setting);
                         tmp = get_language_string(user, nameBuf);
                         if(tmp) {
-                            reply(getTextBot(), user, "  %s", tmp);
+                            reply(textclient, user, "  %s", tmp);
                         }
                     }
                 }
@@ -226,7 +226,7 @@ CMD_BIND(neonspam_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 valueBuf[MAXLEN], nameBuf[MAXLEN];
@@ -247,14 +247,14 @@ CMD_BIND(neonspam_cmd_set) {
         res = mysql_use();
         neonspam_settings_row = mysql_fetch_row(res);
         i = -1;
-        reply(getTextBot(), user, "NS_SET_HEADER", chan->name);
+        reply(textclient, user, "NS_SET_HEADER", chan->name);
         while(neonspam_settings[++i].setting) {
             if((chan->spam_settings->flags & (neonspam_settings[i].if_flag & SPAMSETTINGS_FLAGS)) != (neonspam_settings[i].if_flag & SPAMSETTINGS_FLAGS))
                 continue;
             if((neonspam_settings[i].if_flag & SPAMSETTINGS_ISTIMEBAN) && !boolflag)
                 continue;
             neonspam_cmd_set_function *func = neonspam_settings[i].function;
-            value = func(client, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, NULL, valueBuf);
+            value = func(client, textclient, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, NULL, valueBuf);
             if(neonspam_settings[i].if_flag & SPAMSETTINGS_SETTIMEBAN)
                 boolflag = !strcmp(value, "2");
             //TODO: append option or help info
@@ -292,13 +292,13 @@ CMD_BIND(neonspam_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 char* neonspam_cmd_set_trigger(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf) {
+static char* neonspam_cmd_set_trigger(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf) {
     char *trigger;
     //get current trigger
     MYSQL_RES *res;
@@ -313,7 +313,7 @@ static char* neonspam_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;
             }
         }
@@ -327,7 +327,7 @@ static char* neonspam_cmd_set_trigger(struct ClientSocket *client, struct UserNo
     return trigger;
 }
 
-static char* neonspam_cmd_setflags(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int flag, char *charparam, char *argument, char *retBuf) {
+static char* neonspam_cmd_setflags(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int flag, char *charparam, char *argument, char *retBuf) {
     char *value = ((chan->spam_settings->flags & flag) ? "1" : "0");
     if(argument) {
         //binary argument...
@@ -336,7 +336,7 @@ static char* neonspam_cmd_setflags(struct ClientSocket *client, struct UserNode
         } else if(!strcmp(argument, "1") || !stricmp(argument, "on") || !stricmp(argument, get_language_string(user, "NS_SET_ON"))) {
             chan->spam_settings->flags |= flag;
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", argument);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", argument);
             return NULL;
         }
         char str_flags[50];
@@ -347,13 +347,13 @@ static char* neonspam_cmd_setflags(struct ClientSocket *client, struct UserNode
     return value;
 }
 
-static char* neonspam_cmd_setexcept(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int exceptlvl_index, char *field, char *argument, char *retBuf) {
+static char* neonspam_cmd_setexcept(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int exceptlvl_index, char *field, char *argument, char *retBuf) {
     unsigned int value = chan->spam_settings->exceptlevel[exceptlvl_index];
     if(argument) {
         //numeric argument... (access)
         int caccess = atoi(argument);
         if(caccess < 0 || caccess > 501) {
-            reply(getTextBot(), user, "NS_INVALID_ACCESS", caccess);
+            reply(textclient, user, "NS_INVALID_ACCESS", caccess);
             return NULL;
         }
         int uaccess = getChannelAccess(user, chan);
@@ -362,7 +362,7 @@ static char* neonspam_cmd_setexcept(struct ClientSocket *client, struct UserNode
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_SET_CANNOT_SET");
+                reply(textclient, user, "NS_SET_CANNOT_SET");
                 return NULL;
             }
         }
@@ -370,7 +370,7 @@ static char* neonspam_cmd_setexcept(struct ClientSocket *client, struct UserNode
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_SET_BADLEVEL");
+                reply(textclient, user, "NS_SET_BADLEVEL");
                 return NULL;
             }
         }
@@ -382,7 +382,7 @@ static char* neonspam_cmd_setexcept(struct ClientSocket *client, struct UserNode
     return retBuf;
 }
 
-static char* neonspam_cmd_set_reaction(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int mysqlindex, char *mysqlfield, char *argument, char *retBuf) {
+static char* neonspam_cmd_set_reaction(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int mysqlindex, char *mysqlfield, char *argument, char *retBuf) {
     if(argument) {
         /* valid options:
         * 0/kick - kick
@@ -396,7 +396,7 @@ static char* neonspam_cmd_set_reaction(struct ClientSocket *client, struct UserN
         } else if(!strcmp(argument, "2") || !stricmp(argument, "ban")) {
             argument = "2";
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_OPTION_STR", argument);
+            reply(textclient, user, "NS_SET_INVALID_OPTION_STR", argument);
             return NULL;
         }
         printf_mysql_query("UPDATE `channels` SET `%s` = '%s' WHERE `channel_id` = '%d' ", mysqlfield, argument, chan->channel_id);
@@ -415,12 +415,12 @@ static char* neonspam_cmd_set_reaction(struct ClientSocket *client, struct UserN
     }
 }
 
-static char* neonspam_cmd_set_reaction_time(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int mysqlindex, char *mysqlfield, char *argument, char *retBuf) {
+static char* neonspam_cmd_set_reaction_time(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int mysqlindex, char *mysqlfield, char *argument, char *retBuf) {
     int duration;
     if(argument) {
         duration = strToTime(user, argument);
         if(duration < 30) {
-            reply(getTextBot(), user, "NS_TIMEBAN_DURATION_TOO_SHORT", 30);
+            reply(textclient, user, "NS_TIMEBAN_DURATION_TOO_SHORT", 30);
             return NULL;
         }
         printf_mysql_query("UPDATE `channels` SET `%s` = '%s' WHERE `channel_id` = '%d' ", mysqlfield, argument, chan->channel_id);
@@ -440,14 +440,14 @@ static char* neonspam_cmd_set_reaction_time(struct ClientSocket *client, struct
     return retBuf;
 }
 
-static char* neonspam_cmd_setpercent(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int percent_index, char *mysqlfield, char *argument, char *retBuf) {
+static char* neonspam_cmd_setpercent(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int percent_index, char *mysqlfield, char *argument, char *retBuf) {
     unsigned int value = chan->spam_settings->percent[percent_index];
     if(argument) {
         //numeric argument... (access)
         value = atoi(argument);
         if(value < 0 || value > 100) {
             //invalid percent value
-            reply(getTextBot(), user, "SS_SET_PERCENT", value);
+            reply(textclient, user, "SS_SET_PERCENT", value);
             return NULL;
         }
         chan->spam_settings->percent[percent_index] = value;
@@ -457,13 +457,13 @@ static char* neonspam_cmd_setpercent(struct ClientSocket *client, struct UserNod
     return retBuf;
 }
 
-static char* neonspam_cmd_setsensibility(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int sensibility_index, char *mysqlfield, char *argument, char *retBuf) {
+static char* neonspam_cmd_setsensibility(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int sensibility_index, char *mysqlfield, char *argument, char *retBuf) {
     if(argument) {
         //change value
         char *delimiter = strstr(argument, ":");
         if(!delimiter) {
             //invalid format
-            reply(getTextBot(), user, "SS_SET_SENSIBILITY", argument);
+            reply(textclient, user, "SS_SET_SENSIBILITY", argument);
             return NULL;
         }
         *delimiter = '\0';
@@ -472,12 +472,12 @@ static char* neonspam_cmd_setsensibility(struct ClientSocket *client, struct Use
         int timep = atoi(delimiter);
         if(amount > MAX_FLOOD_AMOUNT || amount < MIN_FLOOD_AMOUNT) {
             //invalid amount
-            reply(getTextBot(), user, "SS_SET_SENSIBILITY_AMOUNT", amount, MIN_FLOOD_AMOUNT, MAX_FLOOD_AMOUNT);
+            reply(textclient, user, "SS_SET_SENSIBILITY_AMOUNT", amount, MIN_FLOOD_AMOUNT, MAX_FLOOD_AMOUNT);
             return NULL;
         }
         if(timep > MAX_FLOOD_TIME || timep < 0) {
             //invalid time period
-            reply(getTextBot(), user, "SS_SET_SENSIBILITY_TIME", timep, 0, MAX_FLOOD_TIME);
+            reply(textclient, user, "SS_SET_SENSIBILITY_TIME", timep, 0, MAX_FLOOD_TIME);
             return NULL;
         }
         char amountfield[50], timefield[50];
@@ -493,13 +493,13 @@ static char* neonspam_cmd_setsensibility(struct ClientSocket *client, struct Use
     return retBuf;
 }
 
-static char* neonspam_cmd_set_spamlimit(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf) {
+static char* neonspam_cmd_set_spamlimit(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int intparam, char *charparam, char *argument, char *retBuf) {
     if(argument) {
         //change value
         int amount = atoi(argument);
         if(amount > 10 || amount < 2) {
             //invalid amount
-            reply(getTextBot(), user, "SS_SET_SPAMLIMIT", amount, 2, 10);
+            reply(textclient, user, "SS_SET_SPAMLIMIT", amount, 2, 10);
             return NULL;
         }
         printf_mysql_query("UPDATE `channels` SET `channel_maxrepeat` = '%d' WHERE `channel_id` = '%d' ", amount, chan->channel_id);
@@ -510,7 +510,7 @@ static char* neonspam_cmd_set_spamlimit(struct ClientSocket *client, struct User
     return retBuf;
 }
 
-static char* neonspam_cmd_setscanops(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int flag, char *charparam, char *argument, char *retBuf) {
+static char* neonspam_cmd_setscanops(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int flag, char *charparam, char *argument, char *retBuf) {
     int i = 0;
     int value = -1;
     int identical = 1;
@@ -534,7 +534,7 @@ static char* neonspam_cmd_setscanops(struct ClientSocket *client, struct UserNod
         } else if(!strcmp(argument, "1") || !stricmp(argument, "on") || !stricmp(argument, get_language_string(user, "NS_SET_ON"))) {
             value = 1;
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", argument);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", argument);
             return NULL;
         }
         i = 0;
@@ -542,7 +542,7 @@ static char* neonspam_cmd_setscanops(struct ClientSocket *client, struct UserNod
         while(neonspam_settings[i].setting) {
             if(neonspam_settings[i].flags & SET_SCANOPS) {
                 neonspam_cmd_set_function *func = neonspam_settings[i].function;
-                func(client, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, (value ? "1" : "0"), valueBuf);
+                func(client, textclient, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, (value ? "1" : "0"), valueBuf);
             }
             i++;
         }
@@ -555,7 +555,7 @@ static char* neonspam_cmd_setscanops(struct ClientSocket *client, struct UserNod
     return "?";
 }
 
-static char* neonspam_cmd_setscanvoice(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int flag, char *charparam, char *argument, char *retBuf) {
+static char* neonspam_cmd_setscanvoice(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int flag, char *charparam, char *argument, char *retBuf) {
     int i = 0;
     int value = -1;
     int identical = 1;
@@ -579,7 +579,7 @@ static char* neonspam_cmd_setscanvoice(struct ClientSocket *client, struct UserN
         } else if(!strcmp(argument, "1") || !stricmp(argument, "on") || !stricmp(argument, get_language_string(user, "NS_SET_ON"))) {
             value = 1;
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", argument);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", argument);
             return NULL;
         }
         i = 0;
@@ -587,7 +587,7 @@ static char* neonspam_cmd_setscanvoice(struct ClientSocket *client, struct UserN
         while(neonspam_settings[i].setting) {
             if(neonspam_settings[i].flags & SET_SCANVOICE) {
                 neonspam_cmd_set_function *func = neonspam_settings[i].function;
-                func(client, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, (value ? "1" : "0"), valueBuf);
+                func(client, textclient, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, (value ? "1" : "0"), valueBuf);
             }
             i++;
         }
@@ -600,7 +600,7 @@ static char* neonspam_cmd_setscanvoice(struct ClientSocket *client, struct UserN
     return "?";
 }
 
-static char* neonspam_cmd_setscanexcept(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, int flag, char *charparam, char *argument, char *retBuf) {
+static char* neonspam_cmd_setscanexcept(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, int flag, char *charparam, char *argument, char *retBuf) {
     int i = 0;
     int value = -1;
     int identical = 1;
@@ -621,7 +621,7 @@ static char* neonspam_cmd_setscanexcept(struct ClientSocket *client, struct User
         //numeric argument... (access)
         int caccess = atoi(argument);
         if(caccess < 0 || caccess > 501) {
-            reply(getTextBot(), user, "NS_INVALID_ACCESS", caccess);
+            reply(textclient, user, "NS_INVALID_ACCESS", caccess);
             return NULL;
         }
         int uaccess = getChannelAccess(user, chan);
@@ -630,7 +630,7 @@ static char* neonspam_cmd_setscanexcept(struct ClientSocket *client, struct User
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_SET_CANNOT_SET");
+                reply(textclient, user, "NS_SET_CANNOT_SET");
                 return NULL;
             }
         }
@@ -638,7 +638,7 @@ static char* neonspam_cmd_setscanexcept(struct ClientSocket *client, struct User
             if(isGodMode(user)) {
                 event->flags |= CMDFLAG_OPLOG;
             } else {
-                reply(getTextBot(), user, "NS_SET_BADLEVEL");
+                reply(textclient, user, "NS_SET_BADLEVEL");
                 return NULL;
             }
         }
@@ -648,7 +648,7 @@ static char* neonspam_cmd_setscanexcept(struct ClientSocket *client, struct User
         while(neonspam_settings[i].setting) {
             if(neonspam_settings[i].flags & SET_SCANEXCEPT) {
                 neonspam_cmd_set_function *func = neonspam_settings[i].function;
-                func(client, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, retBuf, valueBuf);
+                func(client, textclient, user, chan, event, neonspam_settings[i].intparam, neonspam_settings[i].charparam, retBuf, valueBuf);
             }
             i++;
         }
index 76157d218359841a3017b973460387528eb2f13a..010a070a0f31acf8bc3c7cc63a0bb334aedf0abb 100644 (file)
@@ -64,7 +64,7 @@ struct current_funcmd_header {
 static struct current_funcmd_header current_funcmd;
 
 #define FUNCMD_HEADER \
-current_funcmd.client = getTextBot(); \
+current_funcmd.client = textclient; \
 current_funcmd.user = user; \
 current_funcmd.chan = chan; \
 {\
@@ -74,7 +74,7 @@ current_funcmd.chan = chan; \
     res = mysql_use(); \
     row = mysql_fetch_row(res); \
     if(!row || !strcmp(row[0], "0")) { \
-        reply(getTextBot(), user, "NS_FUN_DISABLED", chan->name); \
+        reply(textclient, user, "NS_FUN_DISABLED", chan->name); \
         return; \
     } else if(!strcmp(row[0], "1")) \
         current_funcmd.send_notice = 1; \
index 8bf8545d739686a561760d9ef0774551488fbc1d..dbe2956d4f4e6891e53548d00e8bb599f03c8655 100644 (file)
@@ -26,18 +26,18 @@ CMD_BIND(global_cmd_addbot) {
     MYSQL_RES *res;
     int botid;
     if((botid = resolve_botalias(argv[1])) == -1) {
-        reply(getTextBot(), user, "NS_SETBOT_INVALID_CLASS", argv[1]);
+        reply(textclient, user, "NS_SETBOT_INVALID_CLASS", argv[1]);
         return;
     }
     printf_mysql_query("SELECT `id` FROM `bots` WHERE `nick` = '%s'", escape_string(argv[0]));
     res = mysql_use();
     if(mysql_fetch_row(res)) {
-        reply(getTextBot(), user, "NS_ADDBOT_EXISTING", argv[0]);
+        reply(textclient, user, "NS_ADDBOT_EXISTING", argv[0]);
         return;
     }
     printf_mysql_query("INSERT INTO `bots` (`nick`, `botclass`) VALUES ('%s', '%d')", escape_string(argv[0]), botid);
     botid = (int) mysql_insert_id(get_mysql_conn());
-    reply(getTextBot(), user, "NS_ADDBOT_DONE", argv[0], botid);
+    reply(textclient, user, "NS_ADDBOT_DONE", argv[0], botid);
     logEvent(event);
 }
 
index 848016b215f84afa830efb2bfcf6a6a68de0762f..6f76257df82b78fa00ed1ff3d50a5639facc6ec3 100644 (file)
@@ -32,7 +32,7 @@ CMD_BIND(global_cmd_bind) {
         printf_mysql_query("SELECT `function` FROM `bot_binds` WHERE `botclass` = '%d' AND `command` = '%s'", client->botid, escape_string(argv[0]));
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) != NULL) {
-        reply(getTextBot(), user, "NS_BIND_ALREADY", argv[0], row[0]);
+        reply(textclient, user, "NS_BIND_ALREADY", argv[0], row[0]);
         return;
     }
     char *params;
@@ -42,13 +42,13 @@ CMD_BIND(global_cmd_bind) {
         params = "";
     struct cmd_function *function = find_cmd_function(client->botid, argv[1]);
     if(!function) {
-        reply(getTextBot(), user, "NS_BIND_UNKNOWN", argv[1]);
+        reply(textclient, user, "NS_BIND_UNKNOWN", argv[1]);
         return;
     }
     bind_botwise_cmd_to_function(client->botid, client->clientid, argv[0], function);
     printf_mysql_query("INSERT INTO `bot_binds` (`botclass`, `botid`, `command`, `function`, `parameters`) VALUES ('%d', '%d', '%s', '%s', '%s')", client->botid, (client->botid == 0 ? client->clientid : 0), escape_string(argv[0]), escape_string(argv[1]), params);
     if(*params)
         bind_botwise_set_parameters(client->botid, client->clientid, argv[0], params);
-    reply(getTextBot(), user, "NS_BIND_DONE", argv[0], function->name);
+    reply(textclient, user, "NS_BIND_DONE", argv[0], function->name);
     logEvent(event);
 }
index 970fa948d2ef47d53fc22eaffe82c5654b5bddfa..eb9aae85064e44f6a3f2f3217a017bbba36756f6 100644 (file)
@@ -67,7 +67,7 @@ CMD_BIND(global_cmd_bots) {
     char **table_lines = table_end(table);
     int i;
     for(i = 0; i < table->entrys; i++) {
-        reply(getTextBot(), user, table_lines[i]);
+        reply(textclient, user, table_lines[i]);
     }
     table_free(table);
 }
\ No newline at end of file
index f47902d12a33eebdd00464e1009c08233b36aee8..b65ce8c2daf4b2f1d6d1d94941e7773838e7a511 100644 (file)
@@ -29,7 +29,7 @@ CMD_BIND(global_cmd_command) {
     MYSQL_ROW row;
     struct cmd_binding *cbind = find_botwise_cmd_binding(client->botid, client->clientid, argv[0]);
     if (!cbind) {
-        reply(getTextBot(), user, "NS_UNBIND_NOT_FOUND", argv[0]);
+        reply(textclient, user, "NS_UNBIND_NOT_FOUND", argv[0]);
         return;
     }
     ident = argv[0];
@@ -41,9 +41,9 @@ CMD_BIND(global_cmd_command) {
         }
     } else
         parameters[0] = '\0';
-    reply(getTextBot(), user, "NS_COMMAND_BINDING", cbind->cmd, cbind->func->name, parameters);
+    reply(textclient, user, "NS_COMMAND_BINDING", cbind->cmd, cbind->func->name, parameters);
     if(chan)
-        reply(getTextBot(), user, "NS_COMMAND_ACCESS", global_cmd_command_chanaccess(cbind, chan), global_cmd_command_operaccess(cbind));
+        reply(textclient, user, "NS_COMMAND_ACCESS", global_cmd_command_chanaccess(cbind, chan), global_cmd_command_operaccess(cbind));
     printf_mysql_query("SELECT `user_lang` FROM `users` WHERE `user_user` = '%s'", escape_string(user->auth));
     res = mysql_use();
     char *lang;
@@ -80,7 +80,7 @@ CMD_BIND(global_cmd_command) {
             case '\n':
                 if(sendBufPos) {
                     sendBuf[sendBufPos] = '\0';
-                    reply(getTextBot(), user, "%s", sendBuf);
+                    reply(textclient, user, "%s", sendBuf);
                     sendBufPos = 0;
                 }
                 break;
@@ -115,7 +115,7 @@ CMD_BIND(global_cmd_command) {
     }
     if(sendBufPos) {
         sendBuf[sendBufPos] = '\0';
-        reply(getTextBot(), user, "%s", sendBuf);
+        reply(textclient, user, "%s", sendBuf);
         sendBufPos = 0;
     }
 }
index 6186c7f3a5b78c2a9146aa106bdb3f8d0890f4dc..1c4b3c6954ff647cfff3307dc2eb0d2ba711239b 100644 (file)
@@ -76,7 +76,7 @@ CMD_BIND(global_cmd_commands) {
     //send the table
     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);
 }
index 75d8e1cb25389efd881984d66322299930311477..b7fd3fc782427a8f9c989e4ca7b39c08efb846ae 100644 (file)
@@ -27,7 +27,7 @@ CMD_BIND(global_cmd_delbot) {
     printf_mysql_query("SELECT `id` FROM `bots` WHERE `nick` = '%s' OR `id` = '%s'", escape_string(argv[0]), escape_string(argv[0]));
     res = mysql_use();
     if((row = mysql_fetch_row(res)) == NULL) {
-        reply(getTextBot(), user, "NS_DELBOT_NOT_FOUND", argv[0]);
+        reply(textclient, user, "NS_DELBOT_NOT_FOUND", argv[0]);
         return;
     }
     int botid = atoi(row[0]);
@@ -40,6 +40,6 @@ CMD_BIND(global_cmd_delbot) {
             break;
         }
     }
-    reply(getTextBot(), user, "NS_DELBOT_DONE");
+    reply(textclient, user, "NS_DELBOT_DONE");
     logEvent(event);
 }
index 513ef07b1219b7e911df2e1ed399e6416fd6a4dc..1cc8b65f30e75c4886fc861d1da801b55c7ff188 100644 (file)
@@ -56,7 +56,7 @@ CMD_BIND(global_cmd_extscript) {
         row = mysql_fetch_row(res);
         if(!row || !strcmp(row[0], "0")) {
             //disabled
-            reply(getTextBot(), user, "NS_FUN_DISABLED", chan->name);
+            reply(textclient, user, "NS_FUN_DISABLED", chan->name);
             return;
         } else if(!strcmp(row[0], "2"))
             answere_channel = 1;
@@ -130,7 +130,7 @@ CMD_BIND(global_cmd_extscript) {
         return;
     }
     cache->client = client;
-    cache->textclient = getTextBot();
+    cache->textclient = textclient;
     cache->event = event;
     cache->user = user;
     cache->chan = chan;
index 441d0e7f3edbd1bedf523e724b96129a0873754c..14f9540830311981431b4f08796977a5047a470f 100644 (file)
@@ -28,26 +28,26 @@ CMD_BIND(global_cmd_god) {
                 printf_mysql_query("UPDATE `users` SET `user_god` = '0' WHERE `user_user` = '%s'", escape_string(user->auth));
                 user->flags &= ~USERFLAG_GOD_MODE;
             }
-            reply(getTextBot(), user, "NS_GOD_OFF");
+            reply(textclient, user, "NS_GOD_OFF");
         } else if(!strcmp(argv[0], "1") || !stricmp(argv[0], "on") || !stricmp(argv[0], get_language_string(user, "NS_SET_ON"))) {
             if(!isGodMode(user)) {
                 printf_mysql_query("UPDATE `users` SET `user_god` = '1' WHERE `user_user` = '%s'", escape_string(user->auth));
                 user->flags |= USERFLAG_GOD_MODE;
             }
-            reply(getTextBot(), user, "NS_GOD_ON");
+            reply(textclient, user, "NS_GOD_ON");
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", argv[0]);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", argv[0]);
             return;
         }
     } else {
         if(isGodMode(user)) {
             printf_mysql_query("UPDATE `users` SET `user_god` = '0' WHERE `user_user` = '%s'", escape_string(user->auth));
             user->flags &= ~USERFLAG_GOD_MODE;
-            reply(getTextBot(), user, "NS_GOD_OFF");
+            reply(textclient, user, "NS_GOD_OFF");
         } else {
             printf_mysql_query("UPDATE `users` SET `user_god` = '1' WHERE `user_user` = '%s'", escape_string(user->auth));
             user->flags |= USERFLAG_GOD_MODE;
-            reply(getTextBot(), user, "NS_GOD_ON");
+            reply(textclient, user, "NS_GOD_ON");
         }
     }
 }
\ No newline at end of file
index 1ecf98c6d1bf745fa343ead9f11a166d49a2ff80..b08819c17c095d7f400ed376053107b70e689a50 100644 (file)
@@ -24,7 +24,7 @@
 
 CMD_BIND(global_cmd_meminfo) {
     #ifndef ENABLE_MEMORY_DEBUG
-    reply(getTextBot(), user, "NS_MEMINFO_DISABLED");
+    reply(textclient, user, "NS_MEMINFO_DISABLED");
     #else
     if(argc > 0) {
         struct Table *table;
@@ -70,7 +70,7 @@ CMD_BIND(global_cmd_meminfo) {
         char **table_lines = table_end(table);
         int i;
         for(i = 0; i < table->entrys; i++) {
-            reply(getTextBot(), user, table_lines[i]);
+            reply(textclient, user, table_lines[i]);
         }
         table_free(table);
     } else {
@@ -110,7 +110,7 @@ CMD_BIND(global_cmd_meminfo) {
         char **table_lines = table_end(table);
         int i;
         for(i = 0; i < table->entrys; i++) {
-            reply(getTextBot(), user, table_lines[i]);
+            reply(textclient, user, table_lines[i]);
         }
         table_free(table);
     }
index 16b8dc1b0e56743f56d38936c2ddeed7f9c540cb..c90113891c566ea7728f36c1ec76148db0071107 100644 (file)
 * argv[2]     value
 */
 
-static int global_cmd_modcmd_params(struct UserNode *user, struct cmd_binding *cbind, char *value);
-static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cbind, char *value);
-static int global_cmd_modcmd_caccess(struct UserNode *user, struct cmd_binding *cbind, char *value);
-static int global_cmd_modcmd_oaccess(struct UserNode *user, struct cmd_binding *cbind, char *value);
+static int global_cmd_modcmd_params(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value);
+static int global_cmd_modcmd_flags(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value);
+static int global_cmd_modcmd_caccess(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value);
+static int global_cmd_modcmd_oaccess(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value);
 
 CMD_BIND(global_cmd_modcmd) {
     MYSQL_RES *res;
     MYSQL_ROW row;
     struct cmd_binding *cbind = find_botwise_cmd_binding(client->botid, client->clientid, argv[0]);
     if (!cbind) {
-        reply(getTextBot(), user, "NS_UNBIND_NOT_FOUND", argv[0]);
+        reply(textclient, user, "NS_UNBIND_NOT_FOUND", argv[0]);
         return;
     }
     int uaccess = 0;
@@ -44,7 +44,7 @@ CMD_BIND(global_cmd_modcmd) {
     }
     int gaccess = ((cbind->flags & CMDFLAG_OVERRIDE_GLOBAL_ACCESS) ? cbind->global_access : cbind->func->global_access);
     if(gaccess > uaccess) {
-        reply(getTextBot(), user, "NS_MODCMD_OUTRANKED", cbind->cmd, gaccess);
+        reply(textclient, user, "NS_MODCMD_OUTRANKED", cbind->cmd, gaccess);
         return;
     }
     if(argc > 1) {
@@ -54,26 +54,26 @@ CMD_BIND(global_cmd_modcmd) {
         } else
             value = NULL;
         int log_event = 0;
-        if(!stricmp(argv[1], "caccess")) log_event = global_cmd_modcmd_caccess(user, cbind, value);
-        else if(!stricmp(argv[1], "oaccess")) log_event = global_cmd_modcmd_oaccess(user, cbind, value);
-        else if(!stricmp(argv[1], "parameters")) log_event = global_cmd_modcmd_params(user, cbind, value);
-        else if(!stricmp(argv[1], "flags")) log_event = global_cmd_modcmd_flags(user, cbind, value);
+        if(!stricmp(argv[1], "caccess")) log_event = global_cmd_modcmd_caccess(textclient, user, cbind, value);
+        else if(!stricmp(argv[1], "oaccess")) log_event = global_cmd_modcmd_oaccess(textclient, user, cbind, value);
+        else if(!stricmp(argv[1], "parameters")) log_event = global_cmd_modcmd_params(textclient, user, cbind, value);
+        else if(!stricmp(argv[1], "flags")) log_event = global_cmd_modcmd_flags(textclient, user, cbind, value);
         else {
-            reply(getTextBot(), user, "NS_MODCMD_SETTING", argv[1]);
+            reply(textclient, user, "NS_MODCMD_SETTING", argv[1]);
         }
         if(log_event) {
             logEvent(event);
         }
     } else {
-        reply(getTextBot(), user, "NS_MODCMD_HEADER", cbind->cmd);
-        global_cmd_modcmd_params(user, cbind, NULL);
-        global_cmd_modcmd_caccess(user, cbind, NULL);
-        global_cmd_modcmd_oaccess(user, cbind, NULL);
-        global_cmd_modcmd_flags(user, cbind, NULL);
+        reply(textclient, user, "NS_MODCMD_HEADER", cbind->cmd);
+        global_cmd_modcmd_params(textclient, user, cbind, NULL);
+        global_cmd_modcmd_caccess(textclient, user, cbind, NULL);
+        global_cmd_modcmd_oaccess(textclient, user, cbind, NULL);
+        global_cmd_modcmd_flags(textclient, user, cbind, NULL);
     }
 }
 
-static int global_cmd_modcmd_params(struct UserNode *user, struct cmd_binding *cbind, char *value) {
+static int global_cmd_modcmd_params(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value) {
     char parameters[MAXLEN];
     int ret = 0;
     if(cbind->paramcount) {
@@ -94,7 +94,7 @@ static int global_cmd_modcmd_params(struct UserNode *user, struct cmd_binding *c
         strcpy(parameters, (value ? value : ""));
         ret = 1;
     }
-    reply(getTextBot(), user, "\002PARAMETERS \002 %s", parameters);
+    reply(textclient, user, "\002PARAMETERS \002 %s", parameters);
     return ret;
 }
 
@@ -116,7 +116,7 @@ static const struct {
     {NULL, 0}
 };
 
-static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cbind, char *value) {
+static int global_cmd_modcmd_flags(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value) {
     char flags[MAXLEN];
     int flagpos = 0;
     int ret = 0;
@@ -151,7 +151,7 @@ static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cb
             }
         }
         if(cbind->func->flags & current_flag) {
-            reply(getTextBot(), user, "NS_MODCMD_STATIC_FLAG");
+            reply(textclient, user, "NS_MODCMD_STATIC_FLAG");
             return 0;
         }
         if(add)
@@ -172,11 +172,11 @@ static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cb
         i++;
     }
     flags[flagpos] = '\0';
-    reply(getTextBot(), user, "\002FLAGS      \002 %s", flags);
+    reply(textclient, user, "\002FLAGS      \002 %s", flags);
     return ret;
 }
 
-static int global_cmd_modcmd_caccess(struct UserNode *user, struct cmd_binding *cbind, char *value) {
+static int global_cmd_modcmd_caccess(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value) {
     char caccess[MAXLEN];
     int ret = 0;
     if(value) {
@@ -194,11 +194,11 @@ static int global_cmd_modcmd_caccess(struct UserNode *user, struct cmd_binding *
         sprintf(caccess, "%s", cbind->channel_access);
     else
         sprintf(caccess, "\00314%s\003", (cbind->func->channel_access ? cbind->func->channel_access : "0"));
-    reply(getTextBot(), user, "\002CACCESS    \002 %s", caccess);
+    reply(textclient, user, "\002CACCESS    \002 %s", caccess);
     return ret;
 }
 
-static int global_cmd_modcmd_oaccess(struct UserNode *user, struct cmd_binding *cbind, char *value) {
+static int global_cmd_modcmd_oaccess(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value) {
     char oaccess[MAXLEN];
     int ret = 0;
     if(value) {
@@ -216,7 +216,7 @@ static int global_cmd_modcmd_oaccess(struct UserNode *user, struct cmd_binding *
         sprintf(oaccess, "%d", cbind->global_access);
     else
         sprintf(oaccess, "\00314%d\003", (cbind->func->global_access ? cbind->func->global_access : 0));
-    reply(getTextBot(), user, "\002OACCESS    \002 %s", oaccess);
+    reply(textclient, user, "\002OACCESS    \002 %s", oaccess);
     return ret;
 }
 
index 512567d995b81cc711eb83526510f786292960e2..f58e683bc1f8948e15ae353003517f2713d510ad 100644 (file)
@@ -30,7 +30,7 @@ CMD_BIND(global_cmd_motd) {
     while (fgets(line, MAXLEN, f) != NULL) {
         if((a = strchr(line, '\n'))) 
             *a = '\0';
-        reply(getTextBot(), user, "%s", line);
+        reply(textclient, user, "%s", line);
     }
     fclose(f);
 }
\ No newline at end of file
index 3a1d50f425b885e49d54db178bf9cffa7dc48af8..aeac792a99d35f68f543f0f929ac4fb17ae76eac 100644 (file)
@@ -27,17 +27,17 @@ CMD_BIND(global_cmd_move) {
     char *channel = argv[0];
     char *new_channel = argv[1];
     if(!is_valid_chan(new_channel)) {
-        reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", new_channel);
+        reply(textclient, user, "NS_INVALID_CHANNEL_NAME", new_channel);
         return;
     }
     if(!stricmp(channel, new_channel)) {
-        reply(getTextBot(), user, "NS_MOVE_SELF");
+        reply(textclient, user, "NS_MOVE_SELF");
         return;
     }
     printf_mysql_query("SELECT `channel_id` FROM `bot_channels` LEFT JOIN `channels` ON `channel_id` = `chanid` WHERE `channel_name` = '%s'", escape_string(new_channel));
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) != NULL) {
-        reply(getTextBot(), user, "NS_REGISTER_ALREADY", new_channel, client->user->nick);
+        reply(textclient, user, "NS_REGISTER_ALREADY", new_channel, client->user->nick);
         return;
     }
     int chanid;
@@ -46,17 +46,17 @@ CMD_BIND(global_cmd_move) {
     if ((row = mysql_fetch_row(res)) != NULL) {
         chanid = atoi(row[0]);
     } else {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
         return;
     }
     printf_mysql_query("SELECT `botid`, `bot_channels`.`id`, `suspended` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chanid, client->botid);
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL) {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
         return;
     }
     if(!strcmp(row[2], "1")) {
-        reply(getTextBot(), user, "NS_MOVE_SUSPENDED");
+        reply(textclient, user, "NS_MOVE_SUSPENDED");
         return;
     }
     int botid = atoi(row[0]);
@@ -92,6 +92,6 @@ CMD_BIND(global_cmd_move) {
         channode->flags &= ~CHANFLAG_CHAN_REGISTERED;
         channode->channel_id = 0;
     }
-    reply(getTextBot(), user, "NS_MOVE_DONE", channel, new_channel);
+    reply(textclient, user, "NS_MOVE_DONE", channel, new_channel);
     logEvent(event);
 }
index b07fdd90828d9e73a2b2dc3cf8f8b9304ad975b6..a976e004c09556171b5c55893fb184a7802ebdf3 100644 (file)
@@ -22,7 +22,7 @@
 */
 
 CMD_BIND(global_cmd_netinfo) {
-    reply(getTextBot(), user, "NS_NETINFO_HEADER");
+    reply(textclient, user, "NS_NETINFO_HEADER");
     char tmp[MAXLEN];
     struct Table *table;
     table = table_init(2, 19, 0);
@@ -170,7 +170,7 @@ CMD_BIND(global_cmd_netinfo) {
     char **table_lines = table_end(table);
     int i;
     for(i = 0; i < table->entrys; i++) {
-        reply(getTextBot(), user, table_lines[i]);
+        reply(textclient, user, table_lines[i]);
     }
     table_free(table);
 }
index 254fa471f3c3561670b28c2874d7d7607720df15..99197a9b1313b2034799281d3f1f0181f88ab6e1 100644 (file)
@@ -29,7 +29,7 @@ CMD_BIND(global_cmd_reconnect) {
         printf_mysql_query("SELECT `id` FROM `bots` WHERE `nick` = '%s' OR `id` = '%s'", escape_string(argv[0]), escape_string(argv[0]));
         res = mysql_use();
         if((row = mysql_fetch_row(res)) == NULL) {
-            reply(getTextBot(), user, "NS_DELBOT_NOT_FOUND", argv[0]);
+            reply(textclient, user, "NS_DELBOT_NOT_FOUND", argv[0]);
             return;
         }
         botid = atoi(row[0]);
@@ -44,6 +44,6 @@ CMD_BIND(global_cmd_reconnect) {
         disconnect_socket(client);
         connect_socket(client);
     }
-    reply(getTextBot(), user, "NS_RECONNECT_DONE");
+    reply(textclient, user, "NS_RECONNECT_DONE");
     logEvent(event);
 }
index 81e018014b26bb4cdaef743a4cfd1bb52df7cdc4..03f94faa856e078f4081036e6524f21f851757c1 100644 (file)
@@ -44,14 +44,14 @@ CMD_BIND(global_cmd_register) {
     char *botname = (argc > 2 ? argv[2] : NULL);
     int multibot = 0;
     if(!is_valid_chan(channel)) {
-        reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", argv[0]);
+        reply(textclient, user, "NS_INVALID_CHANNEL_NAME", argv[0]);
         return;
     }
     printf_mysql_query("SELECT `botid`, `botclass` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` LEFT JOIN `channels` ON `bot_channels`.`chanid` = `channels`.`channel_id` WHERE `channel_name` = '%s'", escape_string(channel));
     res = mysql_use();
     while ((row = mysql_fetch_row(res)) != NULL) {
         if(atoi(row[1]) == client->botid && (client->botid || client->clientid == atoi(row[0]))) {
-            reply(getTextBot(), user, "NS_REGISTER_ALREADY", argv[0], client->user->nick);
+            reply(textclient, user, "NS_REGISTER_ALREADY", argv[0], client->user->nick);
             return;
         } else
             multibot = 1;
@@ -65,11 +65,11 @@ CMD_BIND(global_cmd_register) {
                 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]);
+                reply(textclient, 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]);
+            reply(textclient, user, "NS_DNR_SET", channel, row[0], row[2]);
             return;
         }
     }
@@ -77,10 +77,10 @@ CMD_BIND(global_cmd_register) {
     if(multibot && argc < 2) {
         //skip all these owner check lines
         multibot = 2;
-        global_cmd_register_async1(client, getTextBot(), user, chan, event, channel, NULL, multibot, botname);
+        global_cmd_register_async1(client, textclient, user, chan, event, channel, NULL, multibot, botname);
         return;
     } else if(argc < 2) {
-        global_cmd_register_async1(client, getTextBot(), user, chan, event, channel, user->auth, multibot, botname);
+        global_cmd_register_async1(client, textclient, user, chan, event, channel, user->auth, multibot, botname);
         return;
     }
     //check own access
@@ -90,7 +90,7 @@ CMD_BIND(global_cmd_register) {
         printf_mysql_query("SELECT `user_user` FROM `users` WHERE `user_user` = '%s'", escape_string(argv[1]));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {
-            global_cmd_register_async1(client, getTextBot(), user, chan, event, channel, row[0], multibot, botname);
+            global_cmd_register_async1(client, textclient, user, chan, event, channel, row[0], multibot, botname);
         } else {
             //we need to create a new user...
             //but first lookup the auth to check if it really exists
@@ -100,7 +100,7 @@ CMD_BIND(global_cmd_register) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
@@ -115,13 +115,13 @@ CMD_BIND(global_cmd_register) {
         if(!cuser) {
             cuser = createTempUser(argv[1]);
             if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[1]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[1]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            global_cmd_register_async1(client, getTextBot(), user, chan, event, channel, cuser->auth, multibot, botname);
+            global_cmd_register_async1(client, textclient, user, chan, event, channel, cuser->auth, multibot, botname);
         } else {
             struct global_cmd_register_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -129,7 +129,7 @@ CMD_BIND(global_cmd_register) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->chan = chan;
             cache->event = event;
@@ -196,11 +196,11 @@ static void global_cmd_register_async1(struct ClientSocket *client, struct Clien
                     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]);
+                    reply(textclient, 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]);
+                reply(textclient, user, "NS_DNR_SET", auth, row[0], row[2]);
                 return;
             }
         }
index aab281ab682abd86cdc759f9013e83cdd6571490..c41378cc32d31cb741ae038369dfdd6eafa37dcb 100644 (file)
@@ -28,8 +28,8 @@ CMD_BIND(global_cmd_reloadlang) {
     res = mysql_use();
     if((row = mysql_fetch_row(res)) != NULL) {
         load_language(row[1], row[0]);
-        reply(getTextBot(), user, "NS_RELOADLANG_DONE", row[0], row[1]);
+        reply(textclient, user, "NS_RELOADLANG_DONE", row[0], row[1]);
     } else {
-        reply(getTextBot(), user, "NS_RELOADLANG_UNKNOWN", argv[0]);
+        reply(textclient, user, "NS_RELOADLANG_UNKNOWN", argv[0]);
     }
 }
\ No newline at end of file
index f69b3c04616f363f49346f75b6130da80038622f..c931640391b38d56afb7f7d9e5188fc7c17bc0c0 100644 (file)
@@ -39,13 +39,13 @@ CMD_BIND(global_cmd_setaccess) {
     MYSQL_ROW row;
     caccess = atoi(argv[1]);
     if(caccess < 0 || caccess > 1000) {
-        reply(getTextBot(), user, "NS_INVALID_ACCESS", caccess);
+        reply(textclient, user, "NS_INVALID_ACCESS", caccess);
         return;
     }
     printf_mysql_query("SELECT `user_access` FROM `users` WHERE `user_user` = '%s'", escape_string(user->auth));
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL || atoi(row[0]) < caccess) {
-        reply(getTextBot(), user, "NS_ACCESS_OUTRANKED");
+        reply(textclient, user, "NS_ACCESS_OUTRANKED");
         return;
     }
     if(argv[0][0] == '*') {
@@ -54,7 +54,7 @@ CMD_BIND(global_cmd_setaccess) {
         printf_mysql_query("SELECT `user_user` FROM `users` WHERE `user_user` = '%s'", escape_string(argv[0]));
         res = mysql_use();
         if ((row = mysql_fetch_row(res)) != NULL) {
-            global_cmd_setaccess_async1(client, getTextBot(), user, event, argv[0], row[0], caccess);
+            global_cmd_setaccess_async1(client, textclient, user, event, argv[0], row[0], caccess);
         } else {
             //we need to create a new user...
             //but first lookup the auth to check if it really exists
@@ -64,7 +64,7 @@ CMD_BIND(global_cmd_setaccess) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->event = event;
             cache->access = caccess;
@@ -76,13 +76,13 @@ CMD_BIND(global_cmd_setaccess) {
         if(!cuser) {
             cuser = createTempUser(argv[0]);
                        if(!cuser) {
-                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                reply(textclient, user, "NS_USER_UNKNOWN", argv[0]);
                 return;
             }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
-            global_cmd_setaccess_async1(client, getTextBot(), user, event, argv[0], cuser->auth, caccess);
+            global_cmd_setaccess_async1(client, textclient, user, event, argv[0], cuser->auth, caccess);
         } else {
             struct global_cmd_setaccess_cache *cache = malloc(sizeof(*cache));
             if (!cache) {
@@ -90,7 +90,7 @@ CMD_BIND(global_cmd_setaccess) {
                 return;
             }
             cache->client = client;
-            cache->textclient = getTextBot();
+            cache->textclient = textclient;
             cache->user = user;
             cache->event = event;
             cache->access = caccess;
index 8b58b726cf4c4ddb4e1bf5fa35aa936109742e14..ad93242c801421936db430510724f228ff3a8c70 100644 (file)
 * argv[2]  value
 */
 
-static int global_cmd_setbot_active(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_nick(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_ident(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_realname(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_server(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_port(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_bind(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_ssl(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_serverpass(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_class(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_queue(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_prefered(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_maxchan(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_priority(struct UserNode *user, MYSQL_ROW bot, char *value);
-static int global_cmd_setbot_trigger(struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_active(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_nick(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_ident(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_realname(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_server(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_port(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_bind(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_ssl(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_serverpass(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_class(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_queue(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_prefered(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_maxchan(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_priority(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
+static int global_cmd_setbot_trigger(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value);
 
 CMD_BIND(global_cmd_setbot) {
     MYSQL_RES *res;
@@ -46,7 +46,7 @@ CMD_BIND(global_cmd_setbot) {
     printf_mysql_query("SELECT `active`, `nick`, `server`, `port`, `pass`, `botclass`, `textbot`, `queue`, `defaulttrigger`, `max_channels`, `register_priority`, `bind`, `ident`, `realname`, `ssl`, `id` FROM `bots` WHERE `id` = '%d'", botid);
     res = mysql_use();
     if(!(row = mysql_fetch_row(res))) {
-        reply(getTextBot(), user, "NS_SETBOT_UNKNOWN", botid);
+        reply(textclient, user, "NS_SETBOT_UNKNOWN", botid);
         return;
     }
     if(argc > 1) {
@@ -56,23 +56,23 @@ CMD_BIND(global_cmd_setbot) {
         } else
             value = NULL;
         int log_event = 0;
-        if(!stricmp(argv[1], "active")) log_event = global_cmd_setbot_active(user, row, value);
-        else if(!stricmp(argv[1], "nick")) log_event = global_cmd_setbot_nick(user, row, value);
-        else if(!stricmp(argv[1], "ident")) log_event = global_cmd_setbot_ident(user, row, value);
-        else if(!stricmp(argv[1], "realname")) log_event = global_cmd_setbot_realname(user, row, value);
-        else if(!stricmp(argv[1], "server")) log_event = global_cmd_setbot_server(user, row, value);
-        else if(!stricmp(argv[1], "port")) log_event = global_cmd_setbot_port(user, row, value);
-        else if(!stricmp(argv[1], "bind")) log_event = global_cmd_setbot_bind(user, row, value);
-        else if(!stricmp(argv[1], "ssl")) log_event = global_cmd_setbot_ssl(user, row, value);
-        else if(!stricmp(argv[1], "serverpass")) log_event = global_cmd_setbot_serverpass(user, row, value);
-        else if(!stricmp(argv[1], "botclass")) log_event = global_cmd_setbot_class(user, row, value);
-        else if(!stricmp(argv[1], "queue")) log_event = global_cmd_setbot_queue(user, row, value);
-        else if(!stricmp(argv[1], "prefered")) log_event = global_cmd_setbot_prefered(user, row, value);
-        else if(!stricmp(argv[1], "maxchan")) log_event = global_cmd_setbot_maxchan(user, row, value);
-        else if(!stricmp(argv[1], "priority")) log_event = global_cmd_setbot_priority(user, row, value);
-        else if(!stricmp(argv[1], "trigger")) log_event = global_cmd_setbot_trigger(user, row, value);
+        if(!stricmp(argv[1], "active")) log_event = global_cmd_setbot_active(textclient, user, row, value);
+        else if(!stricmp(argv[1], "nick")) log_event = global_cmd_setbot_nick(textclient, user, row, value);
+        else if(!stricmp(argv[1], "ident")) log_event = global_cmd_setbot_ident(textclient, user, row, value);
+        else if(!stricmp(argv[1], "realname")) log_event = global_cmd_setbot_realname(textclient, user, row, value);
+        else if(!stricmp(argv[1], "server")) log_event = global_cmd_setbot_server(textclient, user, row, value);
+        else if(!stricmp(argv[1], "port")) log_event = global_cmd_setbot_port(textclient, user, row, value);
+        else if(!stricmp(argv[1], "bind")) log_event = global_cmd_setbot_bind(textclient, user, row, value);
+        else if(!stricmp(argv[1], "ssl")) log_event = global_cmd_setbot_ssl(textclient, user, row, value);
+        else if(!stricmp(argv[1], "serverpass")) log_event = global_cmd_setbot_serverpass(textclient, user, row, value);
+        else if(!stricmp(argv[1], "botclass")) log_event = global_cmd_setbot_class(textclient, user, row, value);
+        else if(!stricmp(argv[1], "queue")) log_event = global_cmd_setbot_queue(textclient, user, row, value);
+        else if(!stricmp(argv[1], "prefered")) log_event = global_cmd_setbot_prefered(textclient, user, row, value);
+        else if(!stricmp(argv[1], "maxchan")) log_event = global_cmd_setbot_maxchan(textclient, user, row, value);
+        else if(!stricmp(argv[1], "priority")) log_event = global_cmd_setbot_priority(textclient, user, row, value);
+        else if(!stricmp(argv[1], "trigger")) log_event = global_cmd_setbot_trigger(textclient, user, row, value);
         else {
-            reply(getTextBot(), user, "NS_SETBOT_SETTING", argv[1]);
+            reply(textclient, user, "NS_SETBOT_SETTING", argv[1]);
         }
         if(log_event) {
             if(!stricmp(argv[1], "serverpass") && value) { //censor server password 
@@ -84,26 +84,26 @@ CMD_BIND(global_cmd_setbot) {
             logEvent(event);
         }
     } else {
-        reply(getTextBot(), user, "NS_SETBOT_HEADER", botid);
-        global_cmd_setbot_active(user, row, NULL);
-        global_cmd_setbot_nick(user, row, NULL);
-        global_cmd_setbot_ident(user, row, NULL);
-        global_cmd_setbot_realname(user, row, NULL);
-        global_cmd_setbot_server(user, row, NULL);
-        global_cmd_setbot_port(user, row, NULL);
-        global_cmd_setbot_bind(user, row, NULL);
-        global_cmd_setbot_ssl(user, row, NULL);
-        global_cmd_setbot_serverpass(user, row, NULL);
-        global_cmd_setbot_class(user, row, NULL);
-        global_cmd_setbot_queue(user, row, NULL);
-        global_cmd_setbot_prefered(user, row, NULL);
-        global_cmd_setbot_maxchan(user, row, NULL);
-        global_cmd_setbot_priority(user, row, NULL);
-        global_cmd_setbot_trigger(user, row, NULL);
+        reply(textclient, user, "NS_SETBOT_HEADER", botid);
+        global_cmd_setbot_active(textclient, user, row, NULL);
+        global_cmd_setbot_nick(textclient, user, row, NULL);
+        global_cmd_setbot_ident(textclient, user, row, NULL);
+        global_cmd_setbot_realname(textclient, user, row, NULL);
+        global_cmd_setbot_server(textclient, user, row, NULL);
+        global_cmd_setbot_port(textclient, user, row, NULL);
+        global_cmd_setbot_bind(textclient, user, row, NULL);
+        global_cmd_setbot_ssl(textclient, user, row, NULL);
+        global_cmd_setbot_serverpass(textclient, user, row, NULL);
+        global_cmd_setbot_class(textclient, user, row, NULL);
+        global_cmd_setbot_queue(textclient, user, row, NULL);
+        global_cmd_setbot_prefered(textclient, user, row, NULL);
+        global_cmd_setbot_maxchan(textclient, user, row, NULL);
+        global_cmd_setbot_priority(textclient, user, row, NULL);
+        global_cmd_setbot_trigger(textclient, user, row, NULL);
     }
 }
 
-static int global_cmd_setbot_active(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_active(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     int val = ((bot[0] && !strcmp(bot[0], "1")) ? 1 : 0);
     int ret = 0;
     if(value) {
@@ -112,7 +112,7 @@ static int global_cmd_setbot_active(struct UserNode *user, MYSQL_ROW bot, char *
         } else if(!strcmp(value, "1") || !stricmp(value, "on") || !stricmp(value, get_language_string(user, "NS_SET_ON"))) {
             val = 1;
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", value);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", value);
             return 0;
         }
         if(val != ((bot[0] && !strcmp(bot[0], "1")) ? 1 : 0)) {
@@ -161,16 +161,16 @@ static int global_cmd_setbot_active(struct UserNode *user, MYSQL_ROW bot, char *
             ret = 1;
         }
     }
-    reply(getTextBot(), user, "\002ACTIVE     \002 %s", get_language_string(user, (val ? "NS_SET_ON" : "NS_SET_OFF")));
+    reply(textclient, user, "\002ACTIVE     \002 %s", get_language_string(user, (val ? "NS_SET_ON" : "NS_SET_OFF")));
     return ret;
 }
 
-static int global_cmd_setbot_nick(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_nick(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     char *val = bot[1];
     int ret = 0;
     if(value) {
         if(!is_valid_nick(value)) {
-            reply(getTextBot(), user, "NS_SETBOT_NICK_INVALID", value);
+            reply(textclient, user, "NS_SETBOT_NICK_INVALID", value);
             return 0;
         }
         //rename the bot
@@ -189,11 +189,11 @@ static int global_cmd_setbot_nick(struct UserNode *user, MYSQL_ROW bot, char *va
         val = value;
         ret = 1;
     }
-    reply(getTextBot(), user, "\002NICK       \002 %s", val);
+    reply(textclient, user, "\002NICK       \002 %s", val);
     return ret;
 }
 
-static int global_cmd_setbot_ident(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_ident(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     char *val = bot[12];
     int ret = 0;
     if(value) {
@@ -213,11 +213,11 @@ static int global_cmd_setbot_ident(struct UserNode *user, MYSQL_ROW bot, char *v
         val = value;
         ret = 1;
     }
-    reply(getTextBot(), user, "\002IDENT      \002 %s", val);
+    reply(textclient, user, "\002IDENT      \002 %s", val);
     return ret;
 }
 
-static int global_cmd_setbot_realname(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_realname(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     char *val = bot[13];
     int ret = 0;
     if(value) {
@@ -237,11 +237,11 @@ static int global_cmd_setbot_realname(struct UserNode *user, MYSQL_ROW bot, char
         val = value;
         ret = 1;
     }
-    reply(getTextBot(), user, "\002REALNAME   \002 %s", val);
+    reply(textclient, user, "\002REALNAME   \002 %s", val);
     return ret;
 }
 
-static int global_cmd_setbot_server(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_server(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     char *val = bot[2];
     int ret = 0;
     if(value) {
@@ -252,7 +252,7 @@ static int global_cmd_setbot_server(struct UserNode *user, MYSQL_ROW bot, char *
                     free(client->host);
                 client->host = strdup(value);
                 if(client->flags & SOCKET_FLAG_READY)
-                    reply(getTextBot(), user, "NS_SETBOT_NEED_RESTART");
+                    reply(textclient, user, "NS_SETBOT_NEED_RESTART");
                 break;
             }
         }
@@ -260,17 +260,17 @@ static int global_cmd_setbot_server(struct UserNode *user, MYSQL_ROW bot, char *
         val = value;
         ret = 1;
     }
-    reply(getTextBot(), user, "\002SERVER     \002 %s", val);
+    reply(textclient, user, "\002SERVER     \002 %s", val);
     return ret;
 }
 
-static int global_cmd_setbot_port(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_port(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     int val = atoi(bot[3]);
     int ret = 0;
     if(value) {
         val = atoi(value);
         if(val <= 0 || val > 65534) {
-            reply(getTextBot(), user, "NS_SETBOT_PORT_INVALID", value);
+            reply(textclient, user, "NS_SETBOT_PORT_INVALID", value);
             return 0;
         }
         struct ClientSocket *client;
@@ -278,18 +278,18 @@ static int global_cmd_setbot_port(struct UserNode *user, MYSQL_ROW bot, char *va
             if(client->clientid == atoi(bot[15])) {
                 client->port = val;
                 if(client->flags & SOCKET_FLAG_READY)
-                    reply(getTextBot(), user, "NS_SETBOT_NEED_RESTART");
+                    reply(textclient, user, "NS_SETBOT_NEED_RESTART");
                 break;
             }
         }
         printf_mysql_query("UPDATE `bots` SET `port` = '%d' WHERE `id` = '%s'", val, bot[15]);
         ret = 1;
     }
-    reply(getTextBot(), user, "\002PORT       \002 %d", val);
+    reply(textclient, user, "\002PORT       \002 %d", val);
     return ret;
 }
 
-static int global_cmd_setbot_bind(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_bind(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     char *val = bot[11];
     int ret = 0;
     if(value) {
@@ -302,7 +302,7 @@ static int global_cmd_setbot_bind(struct UserNode *user, MYSQL_ROW bot, char *va
                     free(client->bind);
                 client->bind = (value ? strdup(value) : NULL);
                 if(client->flags & SOCKET_FLAG_READY)
-                    reply(getTextBot(), user, "NS_SETBOT_NEED_RESTART");
+                    reply(textclient, user, "NS_SETBOT_NEED_RESTART");
                 break;
             }
         }
@@ -313,11 +313,11 @@ static int global_cmd_setbot_bind(struct UserNode *user, MYSQL_ROW bot, char *va
         val = value;
         ret = 1;
     }
-    reply(getTextBot(), user, "\002BIND       \002 %s", val);
+    reply(textclient, user, "\002BIND       \002 %s", val);
     return ret;
 }
 
-static int global_cmd_setbot_ssl(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_ssl(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     int val = (strcmp(bot[14], "0") ? 1 : 0);
     int ret = 0;
     if(value) {
@@ -326,7 +326,7 @@ static int global_cmd_setbot_ssl(struct UserNode *user, MYSQL_ROW bot, char *val
         } else if(!strcmp(value, "1") || !stricmp(value, "on") || !stricmp(value, get_language_string(user, "NS_SET_ON"))) {
             val = 1;
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", value);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", value);
             return 0;
         }
         struct ClientSocket *client;
@@ -337,18 +337,18 @@ static int global_cmd_setbot_ssl(struct UserNode *user, MYSQL_ROW bot, char *val
                 else
                     client->flags &= ~SOCKET_FLAG_SSL;
                 if(client->flags & SOCKET_FLAG_READY)
-                    reply(getTextBot(), user, "NS_SETBOT_NEED_RESTART");
+                    reply(textclient, user, "NS_SETBOT_NEED_RESTART");
                 break;
             }
         }
         printf_mysql_query("UPDATE `bots` SET `ssl` = '%d' WHERE `id` = '%s'", val, bot[15]);
         ret = 1;
     }
-    reply(getTextBot(), user, "\002SSL        \002 %s", get_language_string(user, (val ? "NS_SET_ON" : "NS_SET_OFF")));
+    reply(textclient, user, "\002SSL        \002 %s", get_language_string(user, (val ? "NS_SET_ON" : "NS_SET_OFF")));
     return ret;
 }
 
-static int global_cmd_setbot_serverpass(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_serverpass(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     char *val = bot[4];
     int ret = 0;
     if(value) {
@@ -361,7 +361,7 @@ static int global_cmd_setbot_serverpass(struct UserNode *user, MYSQL_ROW bot, ch
                     free(client->pass);
                 client->pass = (value ? strdup(value) : NULL);
                 if(client->flags & SOCKET_FLAG_READY)
-                    reply(getTextBot(), user, "NS_SETBOT_NEED_RESTART");
+                    reply(textclient, user, "NS_SETBOT_NEED_RESTART");
                 break;
             }
         }
@@ -369,16 +369,16 @@ static int global_cmd_setbot_serverpass(struct UserNode *user, MYSQL_ROW bot, ch
         val = value;
         ret = 1;
     }
-    reply(getTextBot(), user, "\002SERVERPASS \002 %s", val);
+    reply(textclient, user, "\002SERVERPASS \002 %s", val);
     return ret;
 }
 
-static int global_cmd_setbot_class(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_class(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     int val = atoi(bot[5]);
     int ret = 0;
     if(value) {
         if((val = resolve_botalias(value)) == -1) {
-            reply(getTextBot(), user, "NS_SETBOT_INVALID_CLASS", value);
+            reply(textclient, user, "NS_SETBOT_INVALID_CLASS", value);
             return 0;
         }
         if(val != atoi(bot[5])) {
@@ -414,11 +414,11 @@ static int global_cmd_setbot_class(struct UserNode *user, MYSQL_ROW bot, char *v
             ret = 1;
         }
     }
-    reply(getTextBot(), user, "\002BOTCLASS   \002 %s", resolve_botid(val));
+    reply(textclient, user, "\002BOTCLASS   \002 %s", resolve_botid(val));
     return ret;
 }
 
-static int global_cmd_setbot_queue(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_queue(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     int val = (strcmp(bot[7], "0") ? 1 : 0);
     int ret = 0;
     if(value) {
@@ -427,7 +427,7 @@ static int global_cmd_setbot_queue(struct UserNode *user, MYSQL_ROW bot, char *v
         } else if(!strcmp(value, "1") || !stricmp(value, "on") || !stricmp(value, get_language_string(user, "NS_SET_ON"))) {
             val = 1;
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", value);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", value);
             return 0;
         }
         struct ClientSocket *client;
@@ -443,11 +443,11 @@ static int global_cmd_setbot_queue(struct UserNode *user, MYSQL_ROW bot, char *v
         printf_mysql_query("UPDATE `bots` SET `queue` = '%d' WHERE `id` = '%s'", val, bot[15]);
         ret = 1;
     }
-    reply(getTextBot(), user, "\002QUEUE      \002 %s", get_language_string(user, (val ? "NS_SET_ON" : "NS_SET_OFF")));
+    reply(textclient, user, "\002QUEUE      \002 %s", get_language_string(user, (val ? "NS_SET_ON" : "NS_SET_OFF")));
     return ret;
 }
 
-static int global_cmd_setbot_prefered(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_prefered(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     int val = (strcmp(bot[6], "0") ? 1 : 0);
     int ret = 0;
     if(value) {
@@ -456,7 +456,7 @@ static int global_cmd_setbot_prefered(struct UserNode *user, MYSQL_ROW bot, char
         } else if(!strcmp(value, "1") || !stricmp(value, "on") || !stricmp(value, get_language_string(user, "NS_SET_ON"))) {
             val = 1;
         } else {
-            reply(getTextBot(), user, "NS_SET_INVALID_BOOLEAN", value);
+            reply(textclient, user, "NS_SET_INVALID_BOOLEAN", value);
             return 0;
         }
         struct ClientSocket *client;
@@ -472,56 +472,56 @@ static int global_cmd_setbot_prefered(struct UserNode *user, MYSQL_ROW bot, char
         printf_mysql_query("UPDATE `bots` SET `textbot` = '%d' WHERE `id` = '%s'", val, bot[15]);
         ret = 1;
     }
-    reply(getTextBot(), user, "\002PREFERED   \002 %s", get_language_string(user, (val ? "NS_SET_ON" : "NS_SET_OFF")));
+    reply(textclient, user, "\002PREFERED   \002 %s", get_language_string(user, (val ? "NS_SET_ON" : "NS_SET_OFF")));
     return ret;
 }
 
-static int global_cmd_setbot_maxchan(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_maxchan(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     int val = atoi(bot[9]);
     int ret = 0;
     if(value) {
         val = atoi(value);
         if(val < 0 || val > 99999) {
-            reply(getTextBot(), user, "NS_SETBOT_MAXCHAN_INVALID", value);
+            reply(textclient, user, "NS_SETBOT_MAXCHAN_INVALID", value);
             return 0;
         }
         printf_mysql_query("UPDATE `bots` SET `max_channels` = '%d' WHERE `id` = '%s'", val, bot[15]);
         ret = 1;
     }
-    reply(getTextBot(), user, "\002MAXCHAN    \002 %d", val);
+    reply(textclient, user, "\002MAXCHAN    \002 %d", val);
     return ret;
 }
 
-static int global_cmd_setbot_priority(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_priority(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     int val = atoi(bot[10]);
     int ret = 0;
     if(value) {
         val = atoi(value);
         if(val < 0 || val > 99) {
-            reply(getTextBot(), user, "NS_SETBOT_PRIORITY_INVALID", value);
+            reply(textclient, user, "NS_SETBOT_PRIORITY_INVALID", value);
             return 0;
         }
         printf_mysql_query("UPDATE `bots` SET `register_priority` = '%d' WHERE `id` = '%s'", val, bot[15]);
         ret = 1;
     }
-    reply(getTextBot(), user, "\002PRIORITY   \002 %d", val);
+    reply(textclient, user, "\002PRIORITY   \002 %d", val);
     return ret;
 }
 
-static int global_cmd_setbot_trigger(struct UserNode *user, MYSQL_ROW bot, char *value) {
+static int global_cmd_setbot_trigger(struct ClientSocket *textclient, struct UserNode *user, MYSQL_ROW bot, char *value) {
     char *val = bot[8];
     int ret = 0;
     if(value) {
         if(!*value || strlen(value) > 10) {
-            reply(getTextBot(), user, "NS_SETBOT_TRIGGER_INVALID", value);
+            reply(textclient, user, "NS_SETBOT_TRIGGER_INVALID", value);
             return 0;
         }
         printf_mysql_query("UPDATE `bots` SET `defaulttrigger` = '%s' WHERE `id` = '%s'", escape_string(value), bot[15]);
         flush_trigger_cache(atoi(bot[5]), atoi(bot[15]));
-        reply(getTextBot(), user, "NS_SETBOT_TRIGGER_NOTE");
+        reply(textclient, user, "NS_SETBOT_TRIGGER_NOTE");
         val = value;
         ret = 1;
     }
-    reply(getTextBot(), user, "\002TRIGGER    \002 %s", val);
+    reply(textclient, user, "\002TRIGGER    \002 %s", val);
     return ret;
 }
index 3733bc0af161bb7e569137d9f617d91fa3c84d26..115e28391589fc5c3adb72357f29125ff44e1c92 100644 (file)
@@ -30,7 +30,7 @@ CMD_BIND(global_cmd_staff) {
         printf_mysql_query("SELECT `user_user`, `user_god` FROM `users` WHERE `user_rank` = '%s'", row[0]);
         res2 = mysql_use();
         if(mysql_num_rows(res2)) {
-            reply(getTextBot(), user, "\002%s\002", row[1]);
+            reply(textclient, user, "\002%s\002", row[1]);
             while ((row2 = mysql_fetch_row(res2)) != NULL) {
                 if(strcmp(row2[1], "0")) {
                     //god enabled - show nicks
@@ -41,11 +41,11 @@ CMD_BIND(global_cmd_staff) {
                         loggedinPos += sprintf(loggedinBuf+loggedinPos, (loggedinPos ? ", %s" : "%s"), cuser->nick);
                     }
                     if(loggedinPos)
-                        reply(getTextBot(), user, "  %s (%s: %s)", row2[0], get_language_string(user, "NS_STAFF_LOGGEDIN"), loggedinBuf);
+                        reply(textclient, user, "  %s (%s: %s)", row2[0], get_language_string(user, "NS_STAFF_LOGGEDIN"), loggedinBuf);
                     else
-                        reply(getTextBot(), user, "  %s", row2[0]);
+                        reply(textclient, user, "  %s", row2[0]);
                 } else
-                    reply(getTextBot(), user, "  %s", row2[0]);
+                    reply(textclient, user, "  %s", row2[0]);
             }
         }
     }
index f37efd780b6071f55406d4c1f54774af797b34a8..bdec79f64a6498bc91f5be6199e3b0735d3d6fa8 100644 (file)
@@ -31,7 +31,7 @@ CMD_BIND(global_cmd_unbind) {
         printf_mysql_query("SELECT `id`, `function` FROM `bot_binds` WHERE `botclass` = '%d' AND `command` = '%s'", client->botid, escape_string(argv[0]));
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL && (!cbind || !(cbind->flags & CMDFLAG_TEMPONARY_BIND))) {
-        reply(getTextBot(), user, "NS_UNBIND_NOT_FOUND", argv[0]);
+        reply(textclient, user, "NS_UNBIND_NOT_FOUND", argv[0]);
         return;
     }
     struct cmd_function *function = find_cmd_function(client->botid, cbind->func->name);
@@ -42,13 +42,13 @@ CMD_BIND(global_cmd_unbind) {
             printf_mysql_query("SELECT `id` FROM `bot_binds` WHERE `botclass` = '%d' AND `function` = '%s'", client->botid, escape_string(function->name));
         res = mysql_use();
         if (mysql_num_rows(res) <= 1) {
-            reply(getTextBot(), user, "NS_UNBIND_REQUIRED", function->name);
+            reply(textclient, user, "NS_UNBIND_REQUIRED", function->name);
             return;
         }
     }
     unbind_botwise_cmd(client->botid, client->clientid, argv[0]);
     if(!cbind || !(cbind->flags & CMDFLAG_TEMPONARY_BIND))
         printf_mysql_query("DELETE FROM `bot_binds` WHERE `id` = '%s'", row[0]);
-    reply(getTextBot(), user, "NS_UNBIND_DONE", argv[0]);
+    reply(textclient, user, "NS_UNBIND_DONE", argv[0]);
     logEvent(event);
 }
index 37149bc24b15e1a64ddf3a1f71f6eef546080e62..be17ea25cb114aa33328c82049b7871a00525448 100644 (file)
@@ -30,7 +30,7 @@ CMD_BIND(global_cmd_unregister) {
     else
         channel = (chan ? chan->name : "");
     if(!is_valid_chan(channel)) {
-        reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", channel);
+        reply(textclient, user, "NS_INVALID_CHANNEL_NAME", channel);
         return;
     }
     int chanid;
@@ -39,11 +39,11 @@ CMD_BIND(global_cmd_unregister) {
     if ((row = mysql_fetch_row(res)) != NULL) {
         chanid = atoi(row[0]);
     } else {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", channel, client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", channel, client->user->nick);
         return;
     }
     if(client->botid == NEONSERV_BOTID && !strcmp(row[1], "1")) {
-        reply(getTextBot(), user, "NS_UNREGISTER_NODELETE", channel);
+        reply(textclient, user, "NS_UNREGISTER_NODELETE", channel);
         return;
     }
     int sync_neonspam_unreg = get_int_field("General.sync_neonspam_unreg");
@@ -53,7 +53,7 @@ CMD_BIND(global_cmd_unregister) {
         printf_mysql_query("SELECT `botid`, `bot_channels`.`id`, `suspended` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chanid, client->botid);
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL) {
-        reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", channel, client->user->nick);
+        reply(textclient, user, "NS_UNREGISTER_NOT_REGISTERED", channel, client->user->nick);
         return;
     }
     int botid = atoi(row[0]);
@@ -63,7 +63,7 @@ CMD_BIND(global_cmd_unregister) {
             break;
     }
     printf_mysql_query("DELETE FROM `bot_channels` WHERE `id` = '%s'", row[1]);
-    reply(getTextBot(), user, "NS_UNREGISTER_DONE", channel);
+    reply(textclient, user, "NS_UNREGISTER_DONE", channel);
     if(bot && strcmp(row[2], "1")) {
         putsock(bot, "PART %s :Channel unregistered.", channel);
     }
index 4524de0443f8691a525217e79f1174455384392e..67d8c91f6db09da38c9118bc3786bce234d088f3 100644 (file)
 */
 
 CMD_BIND(global_cmd_version) {
-    reply(getTextBot(), user, "\002NeonServ %s.%d\002 (%s), written by pk910", NEONSERV_VERSION, get_patchlevel(), (strcmp(get_revision(), "") ? get_revision() : "-"));
-    reply(getTextBot(), user, "Build (#%s) %s (%s lines, " COMPILER ")", get_compilation(), get_creation(), get_codelines());
-    reply(getTextBot(), user, "NeonServ can be found on: http://dev.pk910.de/NeonServ");
+    reply(textclient, user, "\002NeonServ %s.%d\002 (%s), written by pk910", NEONSERV_VERSION, get_patchlevel(), (strcmp(get_revision(), "") ? get_revision() : "-"));
+    reply(textclient, user, "Build (#%s) %s (%s lines, " COMPILER ")", get_compilation(), get_creation(), get_codelines());
+    reply(textclient, user, "NeonServ can be found on: http://dev.pk910.de/NeonServ");
     //helpers :D
-    reply(getTextBot(), user, "special thanks to:");
-    reply(getTextBot(), user, "  Zer0n, TeaTow, Phil  (testing and ideas current version)");
-    reply(getTextBot(), user, "  Buschman, Zer0n, Neon  (translating current version)");
-    reply(getTextBot(), user, "  Patschi95, DerGrinch, Darkfly, Zer0n, Buschman  (testing and ideas older versions)");
-    reply(getTextBot(), user, "  Buschman, Georg, richard  (translating older versions)");
-    reply(getTextBot(), user, "and all the other users that reported all these nasty bugs :D");
-    reply(getTextBot(), user, "\002If you found a bug or if you have a good idea report it on http://dev.pk910.de/BugTrack\002");
+    reply(textclient, user, "special thanks to:");
+    reply(textclient, user, "  Zer0n, TeaTow, Phil  (testing and ideas current version)");
+    reply(textclient, user, "  Buschman, Zer0n, Neon  (translating current version)");
+    reply(textclient, user, "  Patschi95, DerGrinch, Darkfly, Zer0n, Buschman  (testing and ideas older versions)");
+    reply(textclient, user, "  Buschman, Georg, richard  (translating older versions)");
+    reply(textclient, user, "and all the other users that reported all these nasty bugs :D");
+    reply(textclient, user, "\002If you found a bug or if you have a good idea report it on http://dev.pk910.de/BugTrack\002");
     
 }
\ No newline at end of file
index 2efec3992c81a8a5cb72ce66267ecc4234bffc68..bf8958c192ad0be7cbc5b1d98abacb7b38c6204f 100644 (file)
@@ -152,7 +152,7 @@ extern int module_id;
 /* 120 */ #define find_botwise_cmd_binding ((struct cmd_binding * (*)(int, int, char *))global[120])
 /* 121 */ #define bind_botwise_unbound_required_functions ((void (*)(int, int))global[121])
 /* 122 */ #define find_cmd_function ((struct cmd_function * (*)(int , char *))global[122])
-/* 123 */ #define getTextBot ((struct ClientSocket * (*)(void))global[123])
+/* 123 */ /* deprecated */
 /* 124 */ #define register_command_alias ((void (*)(int, char *))global[124])
 /* 125 */ #define getAllBinds ((struct cmd_binding * (*)(struct cmd_binding *))global[125])
 /* 126 */ #define createModeNode ((struct ModeNode * (*)(struct ChanNode *))global[126])