diff options
| author | 2023-02-04 07:36:08 +0000 | |
|---|---|---|
| committer | 2023-02-04 07:36:08 +0000 | |
| commit | a853a9245c7a4e05f3e3efb3728b4ddce5a4bc64 (patch) | |
| tree | 76ed5a6a5332ae6719d8b197216ad73c2f150ed1 /src/modules/m_messageflood.cpp | |
| parent | Refactor the messageflood module and add more action types. (diff) | |
| download | inspircd++-a853a9245c7a4e05f3e3efb3728b4ddce5a4bc64.tar.gz inspircd++-a853a9245c7a4e05f3e3efb3728b4ddce5a4bc64.tar.bz2 inspircd++-a853a9245c7a4e05f3e3efb3728b4ddce5a4bc64.zip | |
Warn users who have been found to be message flooding better.
Diffstat (limited to 'src/modules/m_messageflood.cpp')
| -rw-r--r-- | src/modules/m_messageflood.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index 67ff0259c..3716f1dad 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -240,6 +240,15 @@ private: ServerInstance->Modes.Process(ServerInstance->FakeClient, channel, nullptr, changelist); } + static void InformUser(Channel* chan, User* user, const std::string& message) + { + Membership* memb = chan->GetUser(user); + if (memb) + memb->WriteNotice(message); + else + user->WriteNotice(INSP_FORMAT("[{}] {}", chan->name, message)); + } + public: ModuleMsgFlood() : Module(VF_VENDOR, "Adds channel mode f (flood) which helps protect against spammers which mass-message channels.") @@ -296,12 +305,12 @@ public: switch (f->action) { case MsgFloodAction::BAN: - user->WriteNotice(msg); + InformUser(dest, user, msg); CreateBan(dest, user, false); break; case MsgFloodAction::BLOCK: - user->WriteNotice(msg); + InformUser(dest, user, msg); break; case MsgFloodAction::KICK: @@ -314,7 +323,7 @@ public: break; case MsgFloodAction::MUTE: - user->WriteNotice(msg); + InformUser(dest, user, msg); CreateBan(dest, user, true); break; } |
