]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_swhois.cpp
Convert WriteNumeric() calls to pass the parameters of the numeric as method parameters
[user/henk/code/inspircd.git] / src / modules / m_swhois.cpp
index c2659f6aa53909b7e28b175d84bf804de392f7f9..46d96a9521d60d67446f425a21ef98eff79cda35 100644 (file)
@@ -31,7 +31,9 @@ class CommandSwhois : public Command
 {
  public:
        StringExtItem swhois;
-       CommandSwhois(Module* Creator) : Command(Creator,"SWHOIS", 2,2), swhois("swhois", Creator)
+       CommandSwhois(Module* Creator)
+               : Command(Creator, "SWHOIS", 2, 2)
+               , swhois("swhois", ExtensionItem::EXT_USER, Creator)
        {
                flags_needed = 'o'; syntax = "<nick> :<swhois>";
                TRANSLATE2(TR_NICK, TR_TEXT);
@@ -41,9 +43,9 @@ class CommandSwhois : public Command
        {
                User* dest = ServerInstance->FindNick(parameters[0]);
 
-               if ((!dest) || (IS_SERVER(dest))) // allow setting swhois using SWHOIS before reg
+               if (!dest) // allow setting swhois using SWHOIS before reg
                {
-                       user->WriteNumeric(ERR_NOSUCHNICK, "%s %s :No such nick/channel", user->nick.c_str(), parameters[0].c_str());
+                       user->WriteNumeric(Numerics::NoSuchNick(parameters[0]));
                        return CMD_FAILURE;
                }
 
@@ -51,11 +53,11 @@ class CommandSwhois : public Command
                if (text)
                {
                        // We already had it set...
-                       if (!ServerInstance->ULine(user->server))
+                       if (!user->server->IsULine())
                                // Ulines set SWHOISes silently
                                ServerInstance->SNO->WriteGlobalSno('a', "%s used SWHOIS to set %s's extra whois from '%s' to '%s'", user->nick.c_str(), dest->nick.c_str(), text->c_str(), parameters[1].c_str());
                }
-               else if (!ServerInstance->ULine(user->server))
+               else if (!user->server->IsULine())
                {
                        // Ulines set SWHOISes silently
                        ServerInstance->SNO->WriteGlobalSno('a', "%s used SWHOIS to set %s's extra whois to '%s'", user->nick.c_str(), dest->nick.c_str(), parameters[1].c_str());
@@ -79,32 +81,28 @@ class CommandSwhois : public Command
 
 };
 
-class ModuleSWhois : public Module
+class ModuleSWhois : public Module, public Whois::LineEventListener
 {
        CommandSwhois cmd;
 
  public:
-       ModuleSWhois() : cmd(this)
+       ModuleSWhois()
+               : Whois::LineEventListener(this)
+               , cmd(this)
        {
        }
 
-       void init() CXX11_OVERRIDE
-       {
-               ServerInstance->Modules->AddService(cmd);
-               ServerInstance->Modules->AddService(cmd.swhois);
-       }
-
        // :kenny.chatspike.net 320 Brain Azhrarn :is getting paid to play games.
-       ModResult OnWhoisLine(User* user, User* dest, int &numeric, std::string &text) CXX11_OVERRIDE
+       ModResult OnWhoisLine(Whois::Context& whois, unsigned int& numeric, std::string& text) CXX11_OVERRIDE
        {
                /* We use this and not OnWhois because this triggers for remote, too */
                if (numeric == 312)
                {
                        /* Insert our numeric before 312 */
-                       std::string* swhois = cmd.swhois.get(dest);
+                       std::string* swhois = cmd.swhois.get(whois.GetTarget());
                        if (swhois)
                        {
-                               ServerInstance->SendWhoisLine(user, dest, 320, "%s %s :%s",user->nick.c_str(), dest->nick.c_str(), swhois->c_str());
+                               whois.SendLine(320, ":%s", swhois->c_str());
                        }
                }