#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");
}