inspircd

A modular C++ IRC daemon (ircd). https://www.inspircd.org/
Log | Files | Refs | README

commit 6a95b42e11bae7a3385c3d03819e29bb64f00191
parent 104ae6871862857787ddbd1e9748adfc9550312b
Author: Peter Powell <petpow@saberuk.com>
Date:   Tue,  5 Feb 2019 02:22:26 +0000

Move <oper:class> and <oper:vhost> to core_oper.

Diffstat:
Msrc/coremods/core_oper/core_oper.cpp | 15+++++++++++++++
Msrc/users.cpp | 11-----------
2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/coremods/core_oper/core_oper.cpp b/src/coremods/core_oper/core_oper.cpp @@ -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); diff --git a/src/users.cpp b/src/users.cpp @@ -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()));