mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-09 18:49:03 -04:00
Allow the maximum length of a chanfilter message to be configured.
This commit is contained in:
parent
c2376ac6f4
commit
4132a44396
@ -386,7 +386,9 @@
|
||||
#
|
||||
# If hidemask is set to yes, the user will not be shown the mask when
|
||||
# his/her message is blocked.
|
||||
#<chanfilter hidemask="yes">
|
||||
#
|
||||
# If maxlen is set then it defines the maximum length of a filter entry.
|
||||
#<chanfilter hidemask="yes" maxlen="50">
|
||||
|
||||
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
|
||||
# Channel history module: Displays the last 'X' lines of chat to a user
|
||||
|
@ -40,10 +40,13 @@ enum
|
||||
class ChanFilter : public ListModeBase
|
||||
{
|
||||
public:
|
||||
unsigned long maxlen;
|
||||
|
||||
ChanFilter(Module* Creator) : ListModeBase(Creator, "filter", 'g', "End of channel spamfilter list", 941, 940, false, "chanfilter") { }
|
||||
|
||||
bool ValidateParam(User* user, Channel* chan, std::string& word) CXX11_OVERRIDE {
|
||||
if (word.length() > 35)
|
||||
bool ValidateParam(User* user, Channel* chan, std::string& word) CXX11_OVERRIDE
|
||||
{
|
||||
if (word.length() > maxlen)
|
||||
{
|
||||
user->WriteNumeric(Numerics::InvalidModeParameter(chan, this, word, "Word is too long for the spamfilter list"));
|
||||
return false;
|
||||
@ -84,7 +87,9 @@ class ModuleChanFilter : public Module
|
||||
|
||||
void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
|
||||
{
|
||||
hidemask = ServerInstance->Config->ConfValue("chanfilter")->getBool("hidemask");
|
||||
ConfigTag* tag = ServerInstance->Config->ConfValue("chanfilter");
|
||||
hidemask = tag->getBool("hidemask");
|
||||
cf.maxlen = tag->getInt("maxlen", 35, 10, 100);
|
||||
cf.DoRehash();
|
||||
}
|
||||
|
||||
@ -121,7 +126,12 @@ class ModuleChanFilter : public Module
|
||||
|
||||
Version GetVersion() CXX11_OVERRIDE
|
||||
{
|
||||
return Version("Provides channel-specific censor lists (like mode +G but varies from channel to channel)", VF_VENDOR);
|
||||
// We don't send any link data if the length is 35 for compatibility with the 2.0 branch.
|
||||
std::string maxfilterlen;
|
||||
if (cf.maxlen != 35)
|
||||
maxfilterlen.assign(ConvToStr(cf.maxlen));
|
||||
|
||||
return Version("Provides channel-specific censor lists (like mode +G but varies from channel to channel)", VF_VENDOR, maxfilterlen);
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user