]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_showwhois.cpp
Use CommandBase::Params instead of std::vector<std::string>.
[user/henk/code/inspircd.git] / src / modules / m_showwhois.cpp
index 783f7d3feafc1b16e3336ea8699cb575e160f770..d01e1a83be06ad09d70616454361d95ea5c3d452 100644 (file)
@@ -22,6 +22,7 @@
 
 
 #include "inspircd.h"
+#include "modules/whois.h"
 
 /** Handle user mode +W
  */
@@ -50,11 +51,11 @@ class WhoisNoticeCmd : public Command
        void HandleFast(User* dest, User* src)
        {
                dest->WriteNotice("*** " + src->nick + " (" + src->ident + "@" +
-                       (dest->HasPrivPermission("users/auspex") ? src->host : src->dhost) +
+                       src->GetHost(dest->HasPrivPermission("users/auspex")) + 
                        ") did a /whois on you");
        }
 
-       CmdResult Handle(const std::vector<std::string> &parameters, User *user)
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* dest = ServerInstance->FindNick(parameters[0]);
                if (!dest)
@@ -69,7 +70,7 @@ class WhoisNoticeCmd : public Command
        }
 };
 
-class ModuleShowwhois : public Module
+class ModuleShowwhois : public Module, public Whois::EventListener
 {
        bool ShowWhoisFromOpers;
        SeeWhois sw;
@@ -78,7 +79,9 @@ class ModuleShowwhois : public Module
  public:
 
        ModuleShowwhois()
-               : sw(this), cmd(this)
+               : Whois::EventListener(this)
+               , sw(this)
+               , cmd(this)
        {
        }
 
@@ -95,9 +98,11 @@ class ModuleShowwhois : public Module
                return Version("Allows opers to set +W to see when a user uses WHOIS on them",VF_OPTCOMMON|VF_VENDOR);
        }
 
-       void OnWhois(User* source, User* dest) CXX11_OVERRIDE
+       void OnWhois(Whois::Context& whois) CXX11_OVERRIDE
        {
-               if (!dest->IsModeSet(sw) || source == dest)
+               User* const source = whois.GetSource();
+               User* const dest = whois.GetTarget();
+               if (!dest->IsModeSet(sw) || whois.IsSelfWhois())
                        return;
 
                if (!ShowWhoisFromOpers && source->IsOper())
@@ -109,15 +114,12 @@ class ModuleShowwhois : public Module
                }
                else
                {
-                       std::vector<std::string> params;
-                       params.push_back(dest->server->GetName());
-                       params.push_back("WHOISNOTICE");
+                       CommandBase::Params params;
                        params.push_back(dest->uuid);
                        params.push_back(source->uuid);
-                       ServerInstance->PI->SendEncapsulatedData(params);
+                       ServerInstance->PI->SendEncapsulatedData(dest->server->GetName(), cmd.name, params);
                }
        }
 };
 
 MODULE_INIT(ModuleShowwhois)
-