X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_ircv3_chghost.cpp;h=289f057530581f51132b288fc2776fdf933d31d5;hb=9ed9396278c2499f5322575c87aa4daea33992e3;hp=af3503108a556b58aed417e9981c68dcfe7e22fd;hpb=5267fb9d362aeb326c9e64f7171c957f76776f90;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_ircv3_chghost.cpp b/src/modules/m_ircv3_chghost.cpp index af3503108..289f05753 100644 --- a/src/modules/m_ircv3_chghost.cpp +++ b/src/modules/m_ircv3_chghost.cpp @@ -24,23 +24,30 @@ class ModuleIRCv3ChgHost : public Module { Cap::Capability cap; + ClientProtocol::EventProvider protoevprov; void DoChgHost(User* user, const std::string& ident, const std::string& host) { - std::string line(1, ':'); - line.append(user->GetFullHost()).append(" CHGHOST ").append(ident).append(1, ' ').append(host); - IRCv3::WriteNeighborsWithCap(user, line, cap); + if (!(user->registered & REG_NICKUSER)) + return; + + ClientProtocol::Message msg("CHGHOST", user); + msg.PushParamRef(ident); + msg.PushParamRef(host); + ClientProtocol::Event protoev(protoevprov, msg); + IRCv3::WriteNeighborsWithCap(user, protoev, cap, true); } public: ModuleIRCv3ChgHost() : cap(this, "chghost") + , protoevprov(this, "CHGHOST") { } void OnChangeIdent(User* user, const std::string& newident) CXX11_OVERRIDE { - DoChgHost(user, newident, user->dhost); + DoChgHost(user, newident, user->GetDisplayedHost()); } void OnChangeHost(User* user, const std::string& newhost) CXX11_OVERRIDE @@ -50,7 +57,7 @@ class ModuleIRCv3ChgHost : public Module Version GetVersion() CXX11_OVERRIDE { - return Version("Provides the chghost IRCv3.2 extension", VF_VENDOR); + return Version("Provides the chghost IRCv3 extension", VF_VENDOR); } };