]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_swhois.cpp
Merge insp20
[user/henk/code/inspircd.git] / src / modules / m_swhois.cpp
index 81abde6f77c2e82aeb004750fe3fdf91be01e377..9a433e154131c24b017c3a19251ad712cda2a734 100644 (file)
@@ -43,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 :No such nick/channel", parameters[0].c_str());
+                       user->WriteNumeric(Numerics::NoSuchNick(parameters[0]));
                        return CMD_FAILURE;
                }
 
@@ -81,26 +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)
        {
        }
 
        // :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, Numeric::Numeric& numeric) CXX11_OVERRIDE
        {
                /* We use this and not OnWhois because this triggers for remote, too */
-               if (numeric == 312)
+               if (numeric.GetNumeric() == 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", dest->nick.c_str(), swhois->c_str());
+                               whois.SendLine(320, *swhois);
                        }
                }