diff options
Diffstat (limited to 'modules/core/os_mode.cpp')
-rw-r--r-- | modules/core/os_mode.cpp | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/modules/core/os_mode.cpp b/modules/core/os_mode.cpp index 961dd05b7..83b567e25 100644 --- a/modules/core/os_mode.cpp +++ b/modules/core/os_mode.cpp @@ -12,17 +12,17 @@ /*************************************************************************/ #include "module.h" -#include "operserv.h" class CommandOSMode : public Command { public: - CommandOSMode() : Command("MODE", 2, 2, "operserv/mode") + CommandOSMode(Module *creator) : Command(creator, "operserv/mode", 2, 2, "operserv/mode") { this->SetDesc(_("Change channel or user modes")); + this->SetSyntax(_("{\037channel\037|\037user\037} \037modes\037")); } - CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) + void Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) { User *u = source.u; const Anope::string &target = params[0]; @@ -32,12 +32,12 @@ class CommandOSMode : public Command { Channel *c = findchan(target); if (!c) - source.Reply(_(CHAN_X_NOT_IN_USE), target.c_str()); + source.Reply(CHAN_X_NOT_IN_USE, target.c_str()); else if (c->bouncy_modes) source.Reply(_("Services is unable to change modes. Are your servers' U:lines configured correctly?")); else { - c->SetModes(operserv->Bot(), false, modes.c_str()); + c->SetModes(source.owner, false, modes.c_str()); Log(LOG_ADMIN, u, this) << modes << " on " << target; } @@ -46,35 +46,30 @@ class CommandOSMode : public Command { User *u2 = finduser(target); if (!u2) - source.Reply(_(NICK_X_NOT_IN_USE), target.c_str()); + source.Reply(NICK_X_NOT_IN_USE, target.c_str()); else { - u2->SetModes(operserv->Bot(), "%s", modes.c_str()); + u2->SetModes(source.owner, "%s", modes.c_str()); source.Reply(_("Changed usermodes of \002%s\002 to %s."), u2->nick.c_str(), modes.c_str()); - u2->SendMessage(operserv->Bot(), _("\002%s\002 changed your usermodes to %s."), u->nick.c_str(), modes.c_str()); + u2->SendMessage(source.owner, _("\002%s\002 changed your usermodes to %s."), u->nick.c_str(), modes.c_str()); Log(LOG_ADMIN, u, this) << modes << " on " << target; } } - return MOD_CONT; + return; } bool OnHelp(CommandSource &source, const Anope::string &subcommand) { - source.Reply(_("Syntax: \002MODE {\037channel\037|\037user\037} \037modes\037\002\n" - " \n" - "Allows Services operators to change modes for any channel or\n" + this->SendSyntax(source); + source.Reply(" "); + source.Reply(_("Allows Services operators to change modes for any channel or\n" "user. Parameters are the same as for the standard /MODE\n" "command.")); return true; } - - void OnSyntaxError(CommandSource &source, const Anope::string &subcommand) - { - SyntaxError(source, "MODE", _("MODE {\037channel\037|\037user\037} \037modes\037")); - } }; class OSMode : public Module @@ -82,14 +77,12 @@ class OSMode : public Module CommandOSMode commandosmode; public: - OSMode(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, CORE) + OSMode(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, CORE), + commandosmode(this) { this->SetAuthor("Anope"); - if (!operserv) - throw ModuleException("OperServ is not loaded!"); - - this->AddCommand(operserv->Bot(), &commandosmode); + ModuleManager::RegisterService(&commandosmode); } }; |