X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_ircv3_echomessage.cpp;h=056b02194cb46f30e45a894d27f35b9a1e55ae75;hb=384ef31bc01e4a1a2e59d082c9066002410ba54a;hp=8773d718744603b7238e5c36fe460958456cf50a;hpb=c0aba5b728b0a921d95ec120aa638dab1520b42f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_ircv3_echomessage.cpp b/src/modules/m_ircv3_echomessage.cpp index 8773d7187..056b02194 100644 --- a/src/modules/m_ircv3_echomessage.cpp +++ b/src/modules/m_ircv3_echomessage.cpp @@ -33,34 +33,41 @@ class ModuleIRCv3EchoMessage : public Module { } - void OnUserMessage(User* user, void* dest, int target_type, const std::string& text, char status, const CUList& exempt_list, MessageType msgtype) CXX11_OVERRIDE + void OnUserPostMessage(User* user, const MessageTarget& target, const MessageDetails& details) CXX11_OVERRIDE { if (!cap.get(user)) return; - std::string msg = MessageTypeStringSp[msgtype]; - if (target_type == TYPE_USER) + std::string msg = MessageTypeStringSp[details.type]; + if (target.type == MessageTarget::TYPE_USER) { - User* destuser = static_cast(dest); + User* destuser = target.Get(); msg.append(destuser->nick); } - else if (target_type == TYPE_CHANNEL) + else if (target.type == MessageTarget::TYPE_CHANNEL) { - if (status) - msg.push_back(status); + if (target.status) + msg.push_back(target.status); - Channel* chan = static_cast(dest); + Channel* chan = target.Get(); msg.append(chan->name); } else { - const char* servername = static_cast(dest); - msg.append(servername); + const std::string* servername = target.Get(); + msg.append(*servername); } - msg.append(" :").append(text); + msg.append(" :").append(details.echooriginal ? details.originaltext : details.text); user->WriteFrom(user, msg); } + void OnUserMessageBlocked(User* user, const MessageTarget& target, const MessageDetails& details) CXX11_OVERRIDE + { + // Prevent spammers from knowing that their spam was blocked. + if (details.echooriginal) + OnUserPostMessage(user, target, details); + } + Version GetVersion() CXX11_OVERRIDE { return Version("Provides the echo-message IRCv3.2 extension", VF_VENDOR);