From d7d01bdc5c667a1fafd95241282b58e03b4caa5b Mon Sep 17 00:00:00 2001 From: rburchell Date: Mon, 9 Feb 2009 21:01:05 +0000 Subject: Squashed commit: merge next (1.9.1) back to trunk. SVN users, NOTE: THIS WILL NOT BUILD, NOR SHOULD YOU RUN IT YET. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1953 5417fbe8-f217-4b02-8779-1006273d7864 --- src/core/hs_off.c | 77 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 36 deletions(-) (limited to 'src/core/hs_off.c') diff --git a/src/core/hs_off.c b/src/core/hs_off.c index 2214353e1..84639a941 100644 --- a/src/core/hs_off.c +++ b/src/core/hs_off.c @@ -15,63 +15,68 @@ #include "module.h" -int do_off(User * u); -void myHostServHelp(User * u); +void myHostServHelp(User *u); + +class CommandHSOff : public Command +{ + public: + CommandHSOff() : Command("OFF", 0, 0) + { + } + + CommandResult Execute(User *u, std::vector ¶ms) + { + NickAlias *na; + char *vhost; + char *vident = NULL; + if ((na = findnick(u->nick))) + { + if (na->status & NS_IDENTIFIED) + { + vhost = getvHost(u->nick); + vident = getvIdent(u->nick); + if (!vhost && !vident) + notice_lang(s_HostServ, u, HOST_NOT_ASSIGNED); + else + ircdproto->SendVhostDel(u); + } + else + notice_lang(s_HostServ, u, HOST_ID); + } + else + notice_lang(s_HostServ, u, HOST_NOT_REGED); + return MOD_CONT; + } + + bool OnHelp(User *u, const std::string &subcommand) + { + notice_lang(s_HostServ, u, HOST_HELP_OFF); + return true; + } +}; class HSOff : public Module { public: HSOff(const std::string &modname, const std::string &creator) : Module(modname, creator) { - Command *c; - this->SetAuthor("Anope"); this->SetVersion("$Id$"); this->SetType(CORE); - c = createCommand("OFF", do_off, NULL, HOST_HELP_OFF, -1, -1, -1, -1); - this->AddCommand(HOSTSERV, c, MOD_UNIQUE); + this->AddCommand(HOSTSERV, new CommandHSOff(), MOD_UNIQUE); this->SetHostHelp(myHostServHelp); } }; - - /** * Add the help response to anopes /hs help output. * @param u The user who is requesting help **/ -void myHostServHelp(User * u) +void myHostServHelp(User *u) { notice_lang(s_HostServ, u, HOST_HELP_CMD_OFF); } -/** - * The /hs off command. - * @param u The user who issued the command - * @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing. - **/ -int do_off(User * u) -{ - NickAlias *na; - char *vhost; - char *vident = NULL; - if ((na = findnick(u->nick))) { - if (na->status & NS_IDENTIFIED) { - vhost = getvHost(u->nick); - vident = getvIdent(u->nick); - if (vhost == NULL && vident == NULL) - notice_lang(s_HostServ, u, HOST_NOT_ASSIGNED); - else - ircdproto->SendVhostDel(u); - } else { - notice_lang(s_HostServ, u, HOST_ID); - } - } else { - notice_lang(s_HostServ, u, HOST_NOT_REGED); - } - return MOD_CONT; -} - MODULE_INIT("hs_off", HSOff) -- cgit