From fb8ca4459dbb0d381cd89464bb7aff79b537e8c4 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Wed, 15 Jun 2022 17:11:14 +0100 Subject: Allow templating of the messageflood module kick message. --- src/modules/m_messageflood.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/modules/m_messageflood.cpp') 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; } -- cgit v1.3.1-10-gc9f91