aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_messageflood.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2023-02-04 07:36:08 +0000
committerGravatar Sadie Powell2023-02-04 07:36:08 +0000
commita853a9245c7a4e05f3e3efb3728b4ddce5a4bc64 (patch)
tree76ed5a6a5332ae6719d8b197216ad73c2f150ed1 /src/modules/m_messageflood.cpp
parentRefactor the messageflood module and add more action types. (diff)
downloadinspircd++-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.cpp15
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;
}