]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Move <oper:class> and <oper:vhost> to core_oper.
authorPeter Powell <petpow@saberuk.com>
Tue, 5 Feb 2019 02:22:26 +0000 (02:22 +0000)
committerPeter Powell <petpow@saberuk.com>
Tue, 5 Feb 2019 02:22:26 +0000 (02:22 +0000)
src/coremods/core_oper/core_oper.cpp
src/users.cpp

index be4b87714dcbc0f8e96eab3aab7040936332a763..dba34cc6b25ea632af6672ca2b1b41ae61f653e0 100644 (file)
@@ -55,6 +55,21 @@ class CoreModOper : public Module
                cmdkill.hideuline = security->getBool("hideulinekills");
        }
 
+       void OnPostOper(User* user, const std::string&, const std::string&) CXX11_OVERRIDE
+       {
+               LocalUser* luser = IS_LOCAL(user);
+               if (luser)
+                       return;
+
+               const std::string vhost = luser->oper->getConfig("vhost");
+               if (!vhost.empty())
+                       luser->ChangeDisplayedHost(vhost);
+
+               const std::string klass = luser->oper->getConfig("class");
+               if (!klass.empty())
+                       luser->SetClass(klass);
+       }
+
        Version GetVersion() CXX11_OVERRIDE
        {
                return Version("Provides the DIE, KILL, OPER, REHASH, and RESTART commands", VF_VENDOR | VF_CORE);
index b00992141ac5b0ed8a6ee5792f550d4e267fb12a..582abe17ed8739724d4b6c11410d11a80dd3f0a6 100644 (file)
@@ -377,17 +377,6 @@ void User::Oper(OperInfo* info)
        if (info->oper_block)
                opername = info->oper_block->getString("name");
 
-       if (IS_LOCAL(this))
-       {
-               LocalUser* l = IS_LOCAL(this);
-               std::string vhost = oper->getConfig("vhost");
-               if (!vhost.empty())
-                       l->ChangeDisplayedHost(vhost);
-               std::string opClass = oper->getConfig("class");
-               if (!opClass.empty())
-                       l->SetClass(opClass);
-       }
-
        ServerInstance->SNO->WriteToSnoMask('o',"%s (%s@%s) is now an IRC operator of type %s (using oper '%s')",
                nick.c_str(), ident.c_str(), GetRealHost().c_str(), oper->name.c_str(), opername.c_str());
        this->WriteNumeric(RPL_YOUAREOPER, InspIRCd::Format("You are now %s %s", strchr("aeiouAEIOU", oper->name[0]) ? "an" : "a", oper->name.c_str()));