#include "inspircd.h"
-/* $ModDesc: Provides channel mode +f (message flood protection) */
-
/** Holds flood settings and state for mode +f
*/
class floodsettings
std::string::size_type colon = parameter.find(':');
if ((colon == std::string::npos) || (parameter.find('-') != std::string::npos))
{
- source->WriteNumeric(608, "%s %s :Invalid flood parameter",source->nick.c_str(),channel->name.c_str());
+ source->WriteNumeric(608, "%s :Invalid flood parameter", channel->name.c_str());
return MODEACTION_DENY;
}
if ((nlines<2) || (nsecs<1))
{
- source->WriteNumeric(608, "%s %s :Invalid flood parameter",source->nick.c_str(),channel->name.c_str());
+ source->WriteNumeric(608, "%s :Invalid flood parameter", channel->name.c_str());
return MODEACTION_DENY;
}
ext.set(channel, new floodsettings(ban, nsecs, nlines));
parameter = std::string(ban ? "*" : "") + ConvToStr(nlines) + ":" + ConvToStr(nsecs);
- channel->SetModeParam('f', parameter);
return MODEACTION_ALLOW;
}
else
{
- if (!channel->IsModeSet('f'))
+ if (!channel->IsModeSet(this))
return MODEACTION_DENY;
ext.unset(channel);
- channel->SetModeParam('f', "");
return MODEACTION_ALLOW;
}
}
{
}
- void init() CXX11_OVERRIDE
- {
- ServerInstance->Modules->AddService(mf);
- ServerInstance->Modules->AddService(mf.ext);
- ServerInstance->Modules->Attach(I_OnUserPreMessage, this);
- }
-
ModResult ProcessMessages(User* user,Channel* dest, const std::string &text)
{
- if ((!IS_LOCAL(user)) || !dest->IsModeSet('f'))
+ if ((!IS_LOCAL(user)) || !dest->IsModeSet(mf))
return MOD_RES_PASSTHRU;
if (ServerInstance->OnCheckExemption(user,dest,"flood") == MOD_RES_ALLOW)