diff options
author | drstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b <drstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-02-20 17:18:45 +0000 |
---|---|---|
committer | drstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b <drstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-02-20 17:18:45 +0000 |
commit | f3d1f178dce501f5f45801706252e8bd613aa482 (patch) | |
tree | 328daf0edf520c6a495a12db4d33b807f44633f9 /src | |
parent | a8c90154f3de3f6eaed594dc2095477bc9d3f176 (diff) |
BUILD : 1.7.21 (1389) BUGS : 872 NOTES : Added NS SASET LANGUAGE
git-svn-id: svn://svn.anope.org/anope/trunk@1389 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1104 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/core/ns_saset.c | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/src/core/ns_saset.c b/src/core/ns_saset.c index ce962a645..ce790d6b2 100644 --- a/src/core/ns_saset.c +++ b/src/core/ns_saset.c @@ -30,6 +30,7 @@ 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); +int do_saset_language(User * u, NickCore * nc, char *param); void myNickServHelp(User * u); /** @@ -90,6 +91,9 @@ int AnopeInit(int argc, char **argv) -1, NICK_HELP_SASET_AUTOOP, NICK_HELP_SASET_AUTOOP); moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET LANGUAGE", NULL, is_services_oper, + -1, -1, -1, -1, NICK_HELP_SASET_LANGUAGE); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); moduleSetNickHelp(myNickServHelp); @@ -180,6 +184,8 @@ int do_saset(User * u) do_saset_noexpire(u, na, param); } else if (stricmp(cmd, "AUTOOP") == 0) { do_saset_autoop(u, na->nc, param); + } else if (stricmp(cmd, "LANGUAGE") == 0) { + do_saset_language(u, na->nc, param); } else { notice_lang(s_NickServ, u, NICK_SASET_UNKNOWN_OPTION, cmd); } @@ -231,10 +237,10 @@ int do_saset_password(User * u, NickCore * nc, char *param) return MOD_CONT; } - if (len > PASSMAX) {
- len = PASSMAX;
- param[len] = 0;
- notice_lang(s_NickServ, u, PASSWORD_TRUNCATED, PASSMAX);
+ if (len > PASSMAX) { + len = PASSMAX; + param[len] = 0; + notice_lang(s_NickServ, u, PASSWORD_TRUNCATED, PASSMAX); } if (nc->pass) @@ -512,5 +518,25 @@ int do_saset_autoop(User * u, NickCore * nc, char *param) return MOD_CONT; } +int do_saset_language(User * u, NickCore * nc, char *param) +{ + int langnum; + + if (param[strspn(param, "0123456789")] != 0) { /* i.e. not a number */ + syntax_error(s_NickServ, u, "SASET LANGUAGE", + NICK_SASET_LANGUAGE_SYNTAX); + return MOD_CONT; + } + langnum = atoi(param) - 1; + if (langnum < 0 || langnum >= NUM_LANGS || langlist[langnum] < 0) { + notice_lang(s_NickServ, u, NICK_SASET_LANGUAGE_UNKNOWN, langnum + 1, + s_NickServ); + return MOD_CONT; + } + nc->language = langlist[langnum]; + notice_lang(s_NickServ, u, NICK_SASET_LANGUAGE_CHANGED); + + return MOD_CONT; +} /* EOF */ |