]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_swhois.cpp
PreCommand/PostCommand are local-only hooks
[user/henk/code/inspircd.git] / src / modules / m_swhois.cpp
index 0c84764a26f13175cd80e3887f007a99a9722f02..80c530d3b93ab29d679ead2aa752982367711848 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
  * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
@@ -24,7 +24,7 @@ class CommandSwhois : public Command
        CommandSwhois(Module* Creator) : Command(Creator,"SWHOIS", 2,2), swhois("swhois", Creator)
        {
                flags_needed = 'o'; syntax = "<nick> :<swhois>";
-               Extensible::Register(&swhois);
+               ServerInstance->Extensions.Register(&swhois);
                TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
        }
 
@@ -75,7 +75,7 @@ class ModuleSWhois : public Module
        CommandSwhois cmd;
 
  public:
-       ModuleSWhois(InspIRCd* Me) : Module(Me), cmd(this)
+       ModuleSWhois() : cmd(this)
        {
                ServerInstance->AddCommand(&cmd);
                Implementation eventlist[] = { I_OnWhoisLine, I_OnPostCommand };
@@ -100,38 +100,13 @@ class ModuleSWhois : public Module
                return MOD_RES_PASSTHRU;
        }
 
-       void OnPostCommand(const std::string &command, const std::vector<std::string> &params, User *user, CmdResult result, const std::string &original_line)
+       void OnPostCommand(const std::string &command, const std::vector<std::string> &params, LocalUser *user, CmdResult result, const std::string &original_line)
        {
                if ((command != "OPER") || (result != CMD_SUCCESS))
                        return;
-               ConfigReader Conf(ServerInstance);
+               ConfigReader Conf;
 
-               std::string swhois;
-
-               for (int i = 0; i < Conf.Enumerate("oper"); i++)
-               {
-                       std::string name = Conf.ReadValue("oper", "name", i);
-
-                       if (name == params[0])
-                       {
-                               swhois = Conf.ReadValue("oper", "swhois", i);
-                               break;
-                       }
-               }
-
-               if (!swhois.length())
-               {
-                       for (int i = 0; i < Conf.Enumerate("type"); i++)
-                       {
-                               std::string type = Conf.ReadValue("type", "name", i);
-
-                               if (type == user->oper)
-                               {
-                                       swhois = Conf.ReadValue("type", "swhois", i);
-                                       break;
-                               }
-                       }
-               }
+               std::string swhois = user->oper->getConfig("swhois");
 
                if (!swhois.length())
                        return;
@@ -146,7 +121,7 @@ class ModuleSWhois : public Module
 
        Version GetVersion()
        {
-               return Version("Provides the SWHOIS command which allows setting of arbitary WHOIS lines", VF_COMMON | VF_VENDOR, API_VERSION);
+               return Version("Provides the SWHOIS command which allows setting of arbitary WHOIS lines", VF_OPTCOMMON | VF_VENDOR);
        }
 };