fixed last commit
[NeonServV5.git] / cmd_neonserv_set.c
1
2 typedef int neonserv_cmd_set_function(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument);
3 static int neonserv_cmd_set_trigger(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument);
4 static int neonserv_cmd_set_modes(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument);
5 static int neonserv_cmd_set_dynlimit(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument);
6 static int neonserv_cmd_set_nodelete(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument);
7
8 #define NS_VALID_FUNCTION 0x01
9 #define NS_VALID_STRING   0x02
10 #define NS_VALID_ACCESS   0x04
11 #define NS_VALID_NO501    0x08
12 #define NS_VALID_OPTIONS  0x10
13 #define NS_VALID_NUMERIC  0x20
14 #define NS_VALID_BOOLEAN  0x40
15
16 static const struct {
17     const char *setting;
18     const char *chanfield;
19     unsigned int valid;
20     void *parameter;
21 } channel_settings[] = {
22     {"trigger",         "channel_trigger",      NS_VALID_FUNCTION,  neonserv_cmd_set_trigger},
23     {"defaulttopic",    "channel_defaulttopic", NS_VALID_STRING,    NULL},
24     {"topicmask",       "channel_topicmask",    NS_VALID_STRING,    NULL},
25     {"greeting",        "channel_greeting",     NS_VALID_STRING,    NULL},
26     {"usergreeting",    "channel_usergreeting", NS_VALID_STRING,    NULL},
27     {"userinfo",        "channel_userinfo",     NS_VALID_ACCESS,    NULL},
28     {"wipeinfo",        "channel_wipeinfo",     NS_VALID_ACCESS,    NULL},
29     {"modes",           "channel_modes",        NS_VALID_FUNCTION,  neonserv_cmd_set_modes},
30     {"inviteme",        "channel_getinvite",    NS_VALID_ACCESS,    NULL},
31     {"giveops",         "channel_getop",        NS_VALID_ACCESS,    NULL},
32     {"givevoice",       "channel_getvoice",     NS_VALID_ACCESS,    NULL},
33     {"enfops",          "channel_canop",        NS_VALID_ACCESS,    NULL},
34     {"enfvoice",        "channel_canvoice",     NS_VALID_ACCESS,    NULL},
35     {"kick",            "channel_cankick",      NS_VALID_ACCESS,    NULL},
36     {"ban",             "channel_canban",       NS_VALID_ACCESS,    NULL},
37     {"staticban",       "channel_staticban",    NS_VALID_ACCESS,    NULL},
38     {"pubcmd",          "channel_pubcmd",       NS_VALID_ACCESS,    NULL},
39     {"enfmodes",        "channel_enfmodes",     NS_VALID_ACCESS,    NULL},
40     {"enftopic",        "channel_enftopic",     NS_VALID_ACCESS,    NULL},
41     {"topicsnarf",      "channel_topicsnarf",   NS_VALID_ACCESS,    NULL},
42     {"changetopic",     "channel_changetopic",  NS_VALID_ACCESS,    NULL},
43     {"setters",         "channel_setters",      NS_VALID_ACCESS | NS_VALID_NO501, NULL},
44     {"adduser",         "channel_canadd",       NS_VALID_ACCESS,    NULL},
45     {"deluser",         "channel_candel",       NS_VALID_ACCESS,    NULL},
46     {"clvl",            "channel_canclvl",      NS_VALID_ACCESS,    NULL},
47     {"resync",          "channel_canresync",    NS_VALID_ACCESS,    NULL},
48     {"suspend",         "channel_cansuspend",   NS_VALID_ACCESS,    NULL},
49     {"noticeusers",     "channel_notice",       NS_VALID_ACCESS,    NULL},
50     {"noticereaction",  "channel_noticereaction", NS_VALID_OPTIONS, "4"},
51     {"ctcpusers",       "channel_ctcp",         NS_VALID_ACCESS,    NULL},
52     {"ctcpreaction",    "channel_ctcpreaction", NS_VALID_OPTIONS,   "4"},
53     {"protect",         "channel_protect",      NS_VALID_OPTIONS,   "4"},
54     {"toys",            "channel_toys",         NS_VALID_OPTIONS,   "3"},
55     {"dynlimit",        "channel_dynlimit",     NS_VALID_NUMERIC | NS_VALID_FUNCTION, neonserv_cmd_set_dynlimit},
56     {"nodelete",        "channel_nodelete",     NS_VALID_BOOLEAN | NS_VALID_FUNCTION, neonserv_cmd_set_nodelete},
57     {NULL, NULL, 0, NULL}
58 };
59
60 static CMD_BIND(neonserv_cmd_set) {
61     return;
62 }
63
64 static int neonserv_cmd_set_trigger(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument) {
65     return 1;
66 }
67
68 static int neonserv_cmd_set_modes(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument) {
69     return 1;
70 }
71
72 static int neonserv_cmd_set_dynlimit(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument) {
73     return 1;
74 }
75
76 static int neonserv_cmd_set_nodelete(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument) {
77     return 1;
78 }
79