X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_ircv3_chghost.cpp;h=289f057530581f51132b288fc2776fdf933d31d5;hb=4e3d655dff6f8a5aed626475fbf19c2a7119c20b;hp=0a9e055b4d32a089de0c52f773331cc2fa251f42;hpb=565544fac966b14e046bb3042ab485f79bcf7c9e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_ircv3_chghost.cpp b/src/modules/m_ircv3_chghost.cpp index 0a9e055b4..289f05753 100644 --- a/src/modules/m_ircv3_chghost.cpp +++ b/src/modules/m_ircv3_chghost.cpp @@ -24,17 +24,24 @@ 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") { } @@ -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); } };