ServerInstance->Modules->AddService(cu);
ServerInstance->Modules->AddService(cc);
Implementation eventlist[] = { I_OnRehash, I_OnUserPreMessage, I_OnUserPreNotice };
- ServerInstance->Modules->Attach(eventlist, this, 3);
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
{
if (index->second.empty())
{
- user->WriteNumeric(ERR_WORDFILTERED, "%s %s %s :Your message contained a censored word, and was blocked", user->nick.c_str(), ((Channel*)dest)->name.c_str(), index->first.c_str());
+ user->WriteNumeric(ERR_WORDFILTERED, "%s %s %s :Your message contained a censored word, and was blocked", user->nick.c_str(), ((target_type == TYPE_CHANNEL) ? ((Channel*)dest)->name.c_str() : ((User*)dest)->nick.c_str()), index->first.c_str());
return MOD_RES_DENY;
}
* reload our config file on rehash - we must destroy and re-allocate the classes
* to call the constructor again and re-read our data.
*/
- ConfigReader MyConf;
censors.clear();
- for (int index = 0; index < MyConf.Enumerate("badword"); index++)
+ ConfigTagList badwords = ServerInstance->Config->ConfTags("badword");
+ for (ConfigIter i = badwords.first; i != badwords.second; ++i)
{
- std::string str = MyConf.ReadValue("badword","text",index);
+ ConfigTag* tag = i->second;
+ std::string str = tag->getString("text");
irc::string pattern(str.c_str());
- str = MyConf.ReadValue("badword","replace",index);
+ str = tag->getString("replace");
censors[pattern] = irc::string(str.c_str());
}
}