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;
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);
//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;
}
*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 {
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;
}
}
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)
}
}
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)) {
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;
}
}
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)) {
if(isGodMode(user)) {
eventflags |= CMDFLAG_OPLOG;
} else {
- reply(tmp_text_client, user, "MODCMD_CROSSCHAN", chan->name);
+ reply(textclient, user, "MODCMD_CROSSCHAN", chan->name);
return;
}
}
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;
}
}
}
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;
}
}
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) {
eventflags |= CMDFLAG_OPLOG;
} else {
//PUBCMD
- reply(tmp_text_client, user, "MODCMD_PUBCMD", chan->name);
+ reply(textclient, user, "MODCMD_PUBCMD", chan->name);
return;
}
}
if(isGodMode(user)) {
eventflags |= CMDFLAG_OPLOG;
} else {
- reply(tmp_text_client, user, "MODCMD_ACCESS_DENIED");
+ reply(textclient, user, "MODCMD_ACCESS_DENIED");
return;
}
}
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) {
return cmdfunc;
}
-struct ClientSocket *getTextBot() {
- return tmp_text_client;
-}
-
void init_modcmd() {
cmd_binds = calloc(27, sizeof(*cmd_binds));
bind_chanmsg(got_chanmsg, 0);
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 {
/* 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);
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) {
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"));
}
/* 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,
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);
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;
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]) {
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");
}
}
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);
}
}
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;
}
}
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;
} 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;
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;
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;
}
}
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;
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);
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);
}
}
}
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;
}
}
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;
}
}
if(!caccess) {
- reply(getTextBot(), user, "MODCMD_ACCESS_DENIED");
+ reply(textclient, user, "MODCMD_ACCESS_DENIED");
return;
}
struct Table *table;
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);
}
}
}
if(!caccess) {
- reply(getTextBot(), user, "MODCMD_ACCESS_DENIED");
+ reply(textclient, user, "MODCMD_ACCESS_DENIED");
return;
}
if(argc > 0) {
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);
}
}
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->nick = strdup(argv[0]);
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->mask = strdup(argv[0]);
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);
}
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));
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->mask = strdup(argv[0]);
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;
}
}
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
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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]);
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
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->rank_id = rank_id;
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->rank_id = rank_id;
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, ','));
}
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);
}
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);
}
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) {
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));
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->botnick = strdup(botnick);
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);
}
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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;
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]);
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);
}
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;
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]);
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->argv = calloc(argc, sizeof(char*));
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->argv = calloc(argc, sizeof(char*));
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);
}
}
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);
}
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
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);
}
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]);
}
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->argv = calloc(argc, sizeof(char*));
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->argv = calloc(argc, sizeof(char*));
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);
}
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++;
}
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);
}
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);
}
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)) {
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);
}
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--;
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);
}
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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;
}
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->nicks = strdup(merge_argv(argv, 0, argc));
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
if(argc) {
res = mysql_use();
}
if ((row = mysql_fetch_row(res)) == NULL) {
- reply(getTextBot(), user, "NS_HELP_TOPIC");
+ reply(textclient, user, "NS_HELP_TOPIC");
return;
}
}
case '\n':
if(sendBufPos) {
sendBuf[sendBufPos] = '\0';
- reply(getTextBot(), user, "%s", sendBuf);
+ reply(textclient, user, "%s", sendBuf);
sendBufPos = 0;
}
break;
}
if(sendBufPos) {
sendBuf[sendBufPos] = '\0';
- reply(getTextBot(), user, "%s", sendBuf);
+ reply(textclient, user, "%s", sendBuf);
sendBufPos = 0;
}
}
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);
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];
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);
}
}
}
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...
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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...
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->nicks = strdup(argv[0]);
}
}
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->nicks = strdup(argv[0]);
}
}
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);
}
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();
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);
}
}
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 {
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_NO_ACCESS");
+ reply(textclient, user, "NS_NO_ACCESS");
return;
}
}
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->mode = strdup(merge_argv(argv, 0, argc));
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
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];
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->nick = strdup(argv[0]);
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_ACCESS_DENIED");
+ reply(textclient, user, "NS_ACCESS_DENIED");
return;
}
}
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));
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
if(argc) {
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;
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);
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
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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;
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->nicks = strdup(merge_argv(argv, 0, argc));
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));
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
if(argc > 1) {
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--;
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);
}
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);
}
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;
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);
}
}
if(!botid) {
- reply(getTextBot(), user, "NS_REGISTER_FULL");
+ reply(textclient, user, "NS_REGISTER_FULL");
return;
}
struct ClientSocket *bot;
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->oldauth = strdup(argv[0]);
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->usermask = (usermask ? strdup(usermask) : NULL);
cache->min_access = min_access;
}
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];
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);
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))) {
} 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);
}
#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
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;
}
}
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
}
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;
}
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];
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++;
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;
}
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
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);
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_SET_CANNOT_SET");
+ reply(textclient, user, "NS_SET_CANNOT_SET");
return;
}
}
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_SET_BADLEVEL");
+ reply(textclient, user, "NS_SET_BADLEVEL");
return;
}
}
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++) {
}
if(nameBufPos) {
nameBuf[nameBufPos-2] = '\0';
- reply(getTextBot(), user, nameBuf);
+ reply(textclient, user, nameBuf);
}
}
return;
} 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;
}
}
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;
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;
}
}
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
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
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;
} 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);
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;
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");
}
* 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;
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);
}
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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;
}
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;
}
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
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);
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);
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);
}
}
}
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];
} 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;
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
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);
}
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")) {
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_ACCESS_DENIED");
+ reply(textclient, user, "NS_ACCESS_DENIED");
return;
}
}
}
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;
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 {
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_NO_ACCESS");
+ reply(textclient, user, "NS_NO_ACCESS");
return;
}
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->min_access = min_access;
}
}
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
}
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);
}
}
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);
}
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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() {
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);
}
}
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);
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->usermask = (usermask ? strdup(usermask) : NULL);
cache->min_access = min_access;
#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
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) {
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;
}
}
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) {
}
}
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;
}
} 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();
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));
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));
}
}
}
- 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")))
}
}
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"))) {
}
}
}
- 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;
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);
}
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->nicks = strdup(merge_argv(argv, 0, argc));
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
if(argc > 0) {
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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);
}
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...
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);
}
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;
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);
}
#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`"
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;
}
}
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
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) {
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")) {
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);
}
}
}
}
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];
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
}
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;
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;
}
}
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...
} 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];
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);
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_SET_CANNOT_SET");
+ reply(textclient, user, "NS_SET_CANNOT_SET");
return NULL;
}
}
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_SET_BADLEVEL");
+ reply(textclient, user, "NS_SET_BADLEVEL");
return NULL;
}
}
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
} 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);
}
}
-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);
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;
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';
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];
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);
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;
} 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;
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++;
}
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;
} 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;
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++;
}
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;
//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);
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_SET_CANNOT_SET");
+ reply(textclient, user, "NS_SET_CANNOT_SET");
return NULL;
}
}
if(isGodMode(user)) {
event->flags |= CMDFLAG_OPLOG;
} else {
- reply(getTextBot(), user, "NS_SET_BADLEVEL");
+ reply(textclient, user, "NS_SET_BADLEVEL");
return NULL;
}
}
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++;
}
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; \
{\
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; \
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);
}
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;
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);
}
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
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];
}
} 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;
case '\n':
if(sendBufPos) {
sendBuf[sendBufPos] = '\0';
- reply(getTextBot(), user, "%s", sendBuf);
+ reply(textclient, user, "%s", sendBuf);
sendBufPos = 0;
}
break;
}
if(sendBufPos) {
sendBuf[sendBufPos] = '\0';
- reply(getTextBot(), user, "%s", sendBuf);
+ reply(textclient, user, "%s", sendBuf);
sendBufPos = 0;
}
}
//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);
}
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]);
break;
}
}
- reply(getTextBot(), user, "NS_DELBOT_DONE");
+ reply(textclient, user, "NS_DELBOT_DONE");
logEvent(event);
}
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;
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->event = event;
cache->user = user;
cache->chan = chan;
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
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;
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 {
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);
}
* 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;
}
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) {
} 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) {
strcpy(parameters, (value ? value : ""));
ret = 1;
}
- reply(getTextBot(), user, "\002PARAMETERS \002 %s", parameters);
+ reply(textclient, user, "\002PARAMETERS \002 %s", parameters);
return ret;
}
{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;
}
}
if(cbind->func->flags & current_flag) {
- reply(getTextBot(), user, "NS_MODCMD_STATIC_FLAG");
+ reply(textclient, user, "NS_MODCMD_STATIC_FLAG");
return 0;
}
if(add)
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) {
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) {
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;
}
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
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;
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]);
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);
}
*/
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);
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);
}
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]);
disconnect_socket(client);
connect_socket(client);
}
- reply(getTextBot(), user, "NS_RECONNECT_DONE");
+ reply(textclient, user, "NS_RECONNECT_DONE");
logEvent(event);
}
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;
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;
}
}
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
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
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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;
}
}
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
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] == '*') {
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
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->access = caccess;
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->event = event;
cache->access = caccess;
* 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;
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) {
} 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
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) {
} 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)) {
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
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) {
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) {
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) {
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;
}
}
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;
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) {
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;
}
}
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) {
} 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;
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) {
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;
}
}
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])) {
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) {
} 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;
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) {
} 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;
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;
}
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
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]);
}
}
}
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);
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);
}
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;
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");
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]);
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);
}
*/
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
/* 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])