diff options
Diffstat (limited to 'modules/core/ns_set_language.cpp')
-rw-r--r-- | modules/core/ns_set_language.cpp | 41 |
1 files changed, 10 insertions, 31 deletions
diff --git a/modules/core/ns_set_language.cpp b/modules/core/ns_set_language.cpp index 6535376e5..844826204 100644 --- a/modules/core/ns_set_language.cpp +++ b/modules/core/ns_set_language.cpp @@ -16,13 +16,17 @@ class CommandNSSetLanguage : public Command { public: - CommandNSSetLanguage() : Command("LANGUAGE", 1) + CommandNSSetLanguage(const Anope::string &spermission = "") : Command("LANGUAGE", 2, 2, spermission) { } CommandReturn Execute(User *u, const std::vector<Anope::string> ¶ms) { - Anope::string param = params[0]; + NickCore *nc = findcore(params[0]); + if (!nc) + throw CoreException("NULL nc in CommandNSSetLanguage"); + + Anope::string param = params[1]; if (param.find_first_not_of("0123456789") != Anope::string::npos) /* i.e. not a number */ { @@ -37,8 +41,8 @@ class CommandNSSetLanguage : public Command return MOD_CONT; } - u->Account()->language = langlist[langnum]; - notice_lang(Config.s_NickServ, u, NICK_SET_LANGUAGE_CHANGED); + nc->language = langlist[langnum]; + notice_lang(Config.s_NickServ, u, NICK_SASET_LANGUAGE_CHANGED); return MOD_CONT; } @@ -60,36 +64,11 @@ class CommandNSSetLanguage : public Command } }; -class CommandNSSASetLanguage : public Command +class CommandNSSASetLanguage : public CommandNSSetLanguage { public: - CommandNSSASetLanguage() : Command("LANGUAGE", 2, 2, "nickserv/saset/language") - { - } - - CommandReturn Execute(User *u, const std::vector<Anope::string> ¶ms) + CommandNSSASetLanguage() : CommandNSSetLanguage("nickserv/saset/language") { - NickCore *nc = findcore(params[0]); - if (!nc) - throw CoreException("NULL nc in CommandNSSASetLanguage"); - - Anope::string param = params[1]; - - if (param.find_first_not_of("0123456789") != Anope::string::npos) /* i.e. not a number */ - { - this->OnSyntaxError(u, "LANGUAGE"); - return MOD_CONT; - } - int langnum = convertTo<int>(param) - 1; - if (langnum < 0 || langnum >= NUM_LANGS || langlist[langnum] < 0) - { - notice_lang(Config.s_NickServ, u, NICK_SASET_LANGUAGE_UNKNOWN, langnum + 1, Config.s_NickServ.c_str()); - return MOD_CONT; - } - nc->language = langlist[langnum]; - notice_lang(Config.s_NickServ, u, NICK_SASET_LANGUAGE_CHANGED); - - return MOD_CONT; } bool OnHelp(User *u, const Anope::string &) |