aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_messageflood.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2022-06-15 17:11:14 +0100
committerGravatar Sadie Powell2022-06-15 17:11:14 +0100
commitfb8ca4459dbb0d381cd89464bb7aff79b537e8c4 (patch)
treea1ecd33ac3d6e038df0dd021bc80246dc077fc60 /src/modules/m_messageflood.cpp
parentAllow templating of the repeat module kick message. (diff)
Allow templating of the messageflood module kick message.
Diffstat (limited to 'src/modules/m_messageflood.cpp')
-rw-r--r--src/modules/m_messageflood.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp
index 3eef2a9dc..2cb915bf1 100644
--- a/src/modules/m_messageflood.cpp
+++ b/src/modules/m_messageflood.cpp
@@ -121,6 +121,7 @@ private:
double notice;
double privmsg;
double tagmsg;
+ std::string kickmessage;
public:
ModuleMsgFlood()
@@ -138,6 +139,7 @@ public:
notice = tag->getFloat("notice", 1.0);
privmsg = tag->getFloat("privmsg", 1.0);
tagmsg = tag->getFloat("tagmsg", 0.2);
+ kickmessage = tag->getString("kickmessage", "Message flood (trigger is %lines% messages in %duration%)", 1);
}
ModResult HandleMessage(User* user, const MessageTarget& target, double weight)
@@ -167,10 +169,12 @@ public:
ServerInstance->Modes.Process(ServerInstance->FakeClient, dest, nullptr, changelist);
}
- const std::string kickMessage = "Channel flood triggered (trigger is " + ConvToStr(f->lines) +
- " lines in " + ConvToStr(f->secs) + " secs)";
-
- dest->KickUser(ServerInstance->FakeClient, user, kickMessage);
+ const std::string kickmsg = Template::Replace(kickmessage, {
+ { "duration", InspIRCd::DurationString(f->secs) },
+ { "lines", ConvToStr(f->lines) },
+ { "seconds", ConvToStr(f->secs) },
+ });
+ dest->KickUser(ServerInstance->FakeClient, user, kickmsg);
return MOD_RES_DENY;
}