From 9f8a168d29b7bd1a453c946561c54b3096a4bbc5 Mon Sep 17 00:00:00 2001 From: pk910 Date: Thu, 25 Aug 2011 09:55:10 +0200 Subject: [PATCH] started cmd_set --- bot_NeonServ.c | 2 +- cmd_neonserv_set.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 cmd_neonserv_set.c diff --git a/bot_NeonServ.c b/bot_NeonServ.c index 54ca385..7d966aa 100644 --- a/bot_NeonServ.c +++ b/bot_NeonServ.c @@ -147,7 +147,7 @@ INCLUDE ALL CMD's HERE //#include "cmd_neonserv_info.c" //#include "cmd_neonserv_netinfo.c" //#include "cmd_neonserv_peek.c" -//#include "cmd_neonserv_set.c" +#include "cmd_neonserv_set.c" //#include "cmd_neonserv_events.c" //#include "cmd_neonserv_resync.c" //#include "cmd_neonserv_help.c" diff --git a/cmd_neonserv_set.c b/cmd_neonserv_set.c new file mode 100644 index 0000000..5ed7bba --- /dev/null +++ b/cmd_neonserv_set.c @@ -0,0 +1,62 @@ + +typedef int neonserv_cmd_set_function(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument); +static int neonserv_cmd_set_trigger(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument); +static int neonserv_cmd_set_modes(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument); +static int neonserv_cmd_set_dynlimit(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument); +static int neonserv_cmd_set_nodelete(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *argument); + +#define NS_VALID_FUNCTION 0x01 +#define NS_VALID_STRING 0x02 +#define NS_VALID_ACCESS 0x04 +#define NS_VALID_NO501 0x08 +#define NS_VALID_OPTIONS 0x10 +#define NS_VALID_NUMERIC 0x20 +#define NS_VALID_BOOLEAN 0x40 + +static const struct { + const char *setting; + const char *chanfield; + unsigned int valid; + void *parameter; +} channel_settings[] { + {"trigger", "channel_trigger", NS_VALID_FUNCTION, neonserv_cmd_set_trigger}, + {"defaulttopic", "channel_defaulttopic", NS_VALID_STRING, NULL}, + {"topicmask", "channel_topicmask", NS_VALID_STRING, 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}, + {"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}, + {"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}, + {"noticeusers", "channel_notice", NS_VALID_ACCESS, NULL}, + {"noticereaction", "channel_noticereaction", NS_VALID_OPTIONS, 4}, + {"ctcpusers", "channel_ctcp", NS_VALID_ACCESS, NULL}, + {"ctcpreaction", "channel_ctcpreaction", NS_VALID_OPTIONS, 4}, + {"protect", "channel_protect", NS_VALID_OPTIONS, 4}, + {"toys", "channel_toys", NS_VALID_OPTIONS, 3}, + {"dynlimit", "channel_dynlimit", NS_VALID_NUMERIC | NS_VALID_FUNCTION, neonserv_cmd_set_dynlimit}, + {"nodelete", "channel_nodelete", NS_VALID_BOOLEAN | NS_VALID_FUNCTION, neonserv_cmd_set_nodelete}, + {NULL, NULL, 0, NULL} +}; + +static CMD_BIND(neonserv_cmd_set) { + +} -- 2.20.1