+#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);
{"ADVANCEDTOPIC", "channel_exttopic", NS_VALID_BOOLEAN | NS_HAS_OPT, NULL},
{"GREETING", "channel_greeting", NS_VALID_STRING, NULL},
{"USERGREETING", "channel_usergreeting", NS_VALID_STRING, NULL},
- {"USERINFO", "channel_userinfo", NS_VALID_ACCESS, NULL},
- {"WIPEINFO", "channel_wipeinfo", NS_VALID_ACCESS, NULL},
+ {"USERINFO", "channel_userinfo", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"WIPEINFO", "channel_wipeinfo", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
{"MODES", "channel_modes", NS_VALID_FUNCTION, neonserv_cmd_set_modes},
{"INVITEME", "channel_getinvite", NS_VALID_ACCESS, NULL},
- {"GIVEOPS", "channel_getop", NS_VALID_ACCESS, NULL},
- {"GIVEVOICE", "channel_getvoice", NS_VALID_ACCESS, NULL},
- {"ENFOPS", "channel_canop", NS_VALID_ACCESS, NULL},
- {"ENFVOICE", "channel_canvoice", NS_VALID_ACCESS, NULL},
- {"KICK", "channel_cankick", NS_VALID_ACCESS, NULL},
- {"BAN", "channel_canban", NS_VALID_ACCESS, NULL},
- {"STATICBAN", "channel_staticban", NS_VALID_ACCESS, NULL},
+ {"GIVEOPS", "channel_getop", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"GIVEVOICE", "channel_getvoice", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"ENFOPS", "channel_canop", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"ENFVOICE", "channel_canvoice", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"KICK", "channel_cankick", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"BAN", "channel_canban", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"STATICBAN", "channel_staticban", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
{"PUBCMD", "channel_pubcmd", NS_VALID_ACCESS, NULL},
{"ENFMODES", "channel_enfmodes", NS_VALID_ACCESS, NULL},
{"ENFTOPIC", "channel_enftopic", NS_VALID_ACCESS, NULL},
- {"TOPICSNARF", "channel_topicsnarf", NS_VALID_ACCESS, NULL},
- {"CHANGETOPIC", "channel_changetopic", NS_VALID_ACCESS, NULL},
- {"SETTERS", "channel_setters", NS_VALID_ACCESS | NS_VALID_NO501, NULL},
- {"ADDUSER", "channel_canadd", NS_VALID_ACCESS, NULL},
- {"DELUSER", "channel_candel", NS_VALID_ACCESS, NULL},
- {"CLVL", "channel_canclvl", NS_VALID_ACCESS, NULL},
- {"RESYNC", "channel_canresync", NS_VALID_ACCESS, NULL},
- {"SUSPEND", "channel_cansuspend", NS_VALID_ACCESS, NULL},
+ {"TOPICSNARF", "channel_topicsnarf", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"CHANGETOPIC", "channel_changetopic", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"SETTERS", "channel_setters", NS_VALID_ACCESS | NS_VALID_NO501 | NS_HAS_HELP, NULL},
+ {"ADDUSER", "channel_canadd", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"DELUSER", "channel_candel", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"CLVL", "channel_canclvl", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"RESYNC", "channel_canresync", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
+ {"SUSPEND", "channel_cansuspend", NS_VALID_ACCESS | NS_HAS_HELP, NULL},
{"NOTICEUSERS", "channel_notice", NS_VALID_ACCESS, NULL},
{"NOTICEREACTION", "channel_noticereaction", NS_VALID_OPTIONS | NS_HAS_OPT, "4"},
{"CTCPUSERS", "channel_ctcp", NS_VALID_ACCESS, NULL},
};
#define MAX_QUERY_LEN 1024
-static CMD_BIND(neonserv_cmd_set) {
+CMD_BIND(neonserv_cmd_set) {
int i, j;
if(argc && !strcmp(argv[0], "defaults")) {
//reset channel settings
int options = atoi((char *) channel_settings[setting].parameter);
int coption = atoi(args);
if(coption < 0 || coption >= options) {
- reply(getTextBot(), user, "NS_SET_INVALID_OPTION", args);
+ reply(getTextBot(), user, "NS_SET_INVALID_OPTION", coption);
int i;
int nameBufPos = 0;
if(valid & NS_HAS_OPT) {
printf_mysql_query("UPDATE `channels` SET `channel_dynlimit` = '%s' WHERE `channel_id` = '%d'", escape_string(argument), chan->channel_id);
if(strcmp(argument, "0"))
putsock(client, "MODE %s +l %d", chan->name, (chan->usercount + atoi(argument)));
- else if(isModeSet(chan, 'l'))
+ else if(isModeSet(chan->modes, 'l'))
putsock(client, "MODE %s -l", chan->name);
+ value = argument;
logEvent(event);
}
if(setting) {
}
printf_mysql_query("UPDATE `channels` SET `channel_nodelete` = '%s' WHERE `channel_id` = '%d'", escape_string(argument), chan->channel_id);
event->flags |= CMDFLAG_OPLOG;
+ value = argument;
logEvent(event);
}
if(setting) {