class ChanFilter : public ListModeBase
{
public:
- ChanFilter(InspIRCd* Instance, Module* Creator) : ListModeBase(Instance, Creator, 'g', "End of channel spamfilter list", 941, 940, false, "chanfilter") { }
+ ChanFilter(Module* Creator) : ListModeBase(Creator, 'g', "End of channel spamfilter list", 941, 940, false, "chanfilter") { }
virtual bool ValidateParam(User* user, Channel* chan, std::string &word)
{
public:
- ModuleChanFilter(InspIRCd* Me)
- : Module(Me), cf(Me, this)
+ ModuleChanFilter()
+ : cf(this)
{
if (!ServerInstance->Modes->AddMode(&cf))
throw ModuleException("Could not add new modes!");
ServerInstance->Modules->PublishInterface("ChannelBanList", this);
}
- virtual void OnChannelDelete(Channel* chan)
- {
- cf.DoChannelDelete(chan);
- }
-
virtual void OnRehash(User* user)
{
- ConfigReader Conf(ServerInstance);
+ ConfigReader Conf;
hidemask = Conf.ReadFlag("chanfilter", "hidemask", 0);
cf.DoRehash();
}
virtual ModResult ProcessMessages(User* user,Channel* chan,std::string &text)
{
- if (!IS_LOCAL(user) || (CHANOPS_EXEMPT(ServerInstance, 'g') && chan->GetStatus(user) == STATUS_OP))
+ if (!IS_LOCAL(user) || (CHANOPS_EXEMPT('g') && chan->GetPrefixValue(user) == OP_VALUE))
return MOD_RES_PASSTHRU;
- modelist* list;
- chan->GetExt(cf.GetInfoKey(), list);
+ modelist* list = cf.extItem.get(chan);
if (list)
{
virtual Version GetVersion()
{
- return Version("$Id$", VF_COMMON | VF_VENDOR, API_VERSION);
+ return Version("Provides channel-specific censor lists (like mode +G but varies from channel to channel)", VF_COMMON | VF_VENDOR, API_VERSION);
}
virtual ~ModuleChanFilter()