]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Implemented configurable kick message for the repeat module (#1835).
authoriwalkalone <iwalkalone69@users.noreply.github.com>
Mon, 18 Jan 2021 07:22:44 +0000 (08:22 +0100)
committerGitHub <noreply@github.com>
Mon, 18 Jan 2021 07:22:44 +0000 (07:22 +0000)
docs/conf/modules.conf.example
src/modules/m_repeat.cpp

index 0a85ef5cad62dd1748c802cfaaecb9553160730c..2f38f52a4681b7b4bbd49a215db15747424f39dd 100644 (file)
 #               less CPU usage. Increasing this beyond 512 doesn't have
 #               any effect, as the maximum length of a message on IRC
 #               cannot exceed that.
-#<repeat maxbacklog="20" maxdistance="50" maxlines="20" maxtime="0" size="512">
+# kickmessage - Kick message when * is specified
+#<repeat maxbacklog="20"
+#        maxdistance="50"
+#        maxlines="20"
+#        maxtime="0s"
+#        size="512"
+#        kickmessage="Repeat flood">
 #<module name="repeat">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
index 89f5a12916fe143dd3b402c7ee9f804426a76d1b..e6568732b68aa74d6cd32d21b92033bec17175a8 100644 (file)
@@ -90,6 +90,7 @@ class RepeatMode : public ParamMode<RepeatMode, SimpleExtItem<ChannelSettings> >
                unsigned int MaxBacklog;
                unsigned int MaxDiff;
                unsigned int MaxMessageSize;
+               std::string KickMessage;
                ModuleSettings() : MaxLines(0), MaxSecs(0), MaxBacklog(0), MaxDiff() { }
        };
 
@@ -251,6 +252,8 @@ class RepeatMode : public ParamMode<RepeatMode, SimpleExtItem<ChannelSettings> >
                if (newsize > ServerInstance->Config->Limits.MaxLine)
                        newsize = ServerInstance->Config->Limits.MaxLine;
                Resize(newsize);
+
+               ms.KickMessage = conf->getString("kickmessage", "Repeat flood");
        }
 
        std::string GetModuleSettings() const
@@ -258,6 +261,11 @@ class RepeatMode : public ParamMode<RepeatMode, SimpleExtItem<ChannelSettings> >
                return ConvToStr(ms.MaxLines) + ":" + ConvToStr(ms.MaxSecs) + ":" + ConvToStr(ms.MaxDiff) + ":" + ConvToStr(ms.MaxBacklog);
        }
 
+       std::string GetKickMessage() const
+       {
+               return ms.KickMessage;
+       }
+
        void SerializeParam(Channel* chan, const ChannelSettings* chset, std::string& out)
        {
                chset->serialize(out);
@@ -402,7 +410,7 @@ class RepeatModule : public Module
                                ServerInstance->Modes->Process(ServerInstance->FakeClient, chan, NULL, changelist);
                        }
 
-                       memb->chan->KickUser(ServerInstance->FakeClient, user, "Repeat flood");
+                       memb->chan->KickUser(ServerInstance->FakeClient, user, rm.GetKickMessage());
                        return MOD_RES_DENY;
                }
                return MOD_RES_PASSTHRU;