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

This commit is contained in:
Peter Powell 2019-02-05 02:22:26 +00:00
parent 104ae68718
commit 6a95b42e11
2 changed files with 15 additions and 11 deletions

View 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);

View 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()));