diff options
Diffstat (limited to 'modules/core/cs_invite.cpp')
-rw-r--r-- | modules/core/cs_invite.cpp | 54 |
1 files changed, 25 insertions, 29 deletions
diff --git a/modules/core/cs_invite.cpp b/modules/core/cs_invite.cpp index ec0af478c..f3305a01d 100644 --- a/modules/core/cs_invite.cpp +++ b/modules/core/cs_invite.cpp @@ -12,36 +12,40 @@ /*************************************************************************/ #include "module.h" -#include "chanserv.h" class CommandCSInvite : public Command { public: - CommandCSInvite() : Command("INVITE", 1, 3) + CommandCSInvite(Module *creator) : Command(creator, "chanserv/invite", 1, 3) { - this->SetDesc(Anope::printf(_("Tells %s to invite you into a channel"), Config->s_ChanServ.c_str())); + this->SetDesc(_("Invites you into a channel")); + this->SetSyntax(_("\037channel\037")); } - CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) + void Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) { const Anope::string &chan = params[0]; User *u = source.u; - ChannelInfo *ci = source.ci; - Channel *c = ci->c; + Channel *c = findchan(chan); - if (!(c = findchan(chan))) + if (!c) { - source.Reply(_(CHAN_X_NOT_IN_USE), chan.c_str()); - return MOD_CONT; + source.Reply(CHAN_X_NOT_IN_USE, chan.c_str()); + return; } - ci = c->ci; + ChannelInfo *ci = c->ci; + if (!ci) + { + source.Reply(CHAN_X_NOT_REGISTERED, chan.c_str()); + return; + } if (!check_access(u, ci, CA_INVITE)) { - source.Reply(_(ACCESS_DENIED)); - return MOD_CONT; + source.Reply(ACCESS_DENIED); + return; } User *u2; @@ -51,8 +55,8 @@ class CommandCSInvite : public Command { if (!(u2 = finduser(params[1]))) { - source.Reply(_(NICK_X_NOT_IN_USE), params[1].c_str()); - return MOD_CONT; + source.Reply(NICK_X_NOT_IN_USE, params[1].c_str()); + return; } } @@ -67,24 +71,19 @@ class CommandCSInvite : public Command source.Reply(_("\002%s\002 has been invited to \002%s\002."), u2->nick.c_str(), c->name.c_str()); u2->SendMessage(ci->WhoSends(), _("You have been invited to \002%s\002."), c->name.c_str()); } - return MOD_CONT; + return; } bool OnHelp(CommandSource &source, const Anope::string &subcommand) { - source.Reply(_("Syntax: \002INVITE \037channel\037\002\n" - " \n" - "Tells %s to invite you into the given channel.\n" + this->SendSyntax(source); + source.Reply(" "); + source.Reply(_("Tells %s to invite you into the given channel.\n" " \n" "By default, limited to AOPs or those with level 5 and above\n" - "on the channel."), Config->s_ChanServ.c_str()); + "on the channel."), source.owner->nick.c_str()); return true; } - - void OnSyntaxError(CommandSource &source, const Anope::string &subcommand) - { - SyntaxError(source, "INVITE", _("INVITE \037channel\037")); - } }; class CSInvite : public Module @@ -92,14 +91,11 @@ class CSInvite : public Module CommandCSInvite commandcsinvite; public: - CSInvite(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, CORE) + CSInvite(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, CORE), commandcsinvite(this) { this->SetAuthor("Anope"); - if (!chanserv) - throw ModuleException("ChanServ is not loaded!"); - - this->AddCommand(chanserv->Bot(), &commandcsinvite); + ModuleManager::RegisterService(&commandcsinvite); } }; |