summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/ns_saset.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/core/ns_saset.c b/src/core/ns_saset.c
index cad28afc1..8b166a29b 100644
--- a/src/core/ns_saset.c
+++ b/src/core/ns_saset.c
@@ -31,6 +31,7 @@ int do_saset_private(User * u, NickCore * nc, char *param);
int do_saset_msg(User * u, NickCore * nc, char *param);
int do_saset_hide(User * u, NickCore * nc, char *param);
int do_saset_noexpire(User * u, NickAlias * nc, char *param);
+int do_saset_autoop(User * u, NickCore * nc, char *param);
void myNickServHelp(User * u);
/**
@@ -87,6 +88,10 @@ int AnopeInit(int argc, char **argv)
-1, NICK_HELP_SASET_NOEXPIRE,
NICK_HELP_SASET_NOEXPIRE);
moduleAddCommand(NICKSERV, c, MOD_UNIQUE);
+ c = createCommand("SASET AUTOOP", NULL, is_services_admin, -1, -1,
+ -1, NICK_HELP_SASET_AUTOOP,
+ NICK_HELP_SASET_AUTOOP);
+ moduleAddCommand(NICKSERV, c, MOD_UNIQUE);
moduleSetNickHelp(myNickServHelp);
@@ -175,6 +180,8 @@ int do_saset(User * u)
do_saset_hide(u, na->nc, param);
} else if (stricmp(cmd, "NOEXPIRE") == 0) {
do_saset_noexpire(u, na, param);
+ } else if (stricmp(cmd, "AUTOOP") == 0) {
+ do_saset_autoop(u, na->nc, param);
} else {
notice_lang(s_NickServ, u, NICK_SASET_UNKNOWN_OPTION, cmd);
}
@@ -485,4 +492,20 @@ int do_saset_noexpire(User * u, NickAlias * na, char *param)
return MOD_CONT;
}
+int do_saset_autoop(User * u, NickCore * nc, char *param)
+{
+ if (stricmp(param, "ON") == 0) {
+ nc->flags &= ~NI_AUTOOP;
+ notice_lang(s_NickServ, u, NICK_SASET_AUTOOP_ON, nc->display);
+ } else if (stricmp(param, "OFF") == 0) {
+ nc->flags |= NI_AUTOOP;
+ notice_lang(s_NickServ, u, NICK_SASET_AUTOOP_OFF, nc->display);
+ } else {
+ syntax_error(s_NickServ, u, "SET AUTOOP", NICK_SASET_AUTOOP_SYNTAX);
+ }
+
+ return MOD_CONT;
+}
+
+
/* EOF */