*/
+/* $ModDesc: Provides user and channel +G mode */
+
#define _CRT_SECURE_NO_DEPRECATE
#define _SCL_SECURE_NO_DEPRECATE
typedef std::map<irc::string,irc::string> censor_t;
-/* $ModDesc: Provides user and channel +G mode */
-
/** Handles usermode +G
*/
class CensorUser : public SimpleUserModeHandler
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));
}
* 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)
{
- irc::string pattern = (MyConf.ReadValue("badword","text",index)).c_str();
- irc::string replace = (MyConf.ReadValue("badword","replace",index)).c_str();
- censors[pattern] = replace;
+ ConfigTag* tag = i->second;
+ std::string str = tag->getString("text");
+ irc::string pattern(str.c_str());
+ str = tag->getString("replace");
+ censors[pattern] = irc::string(str.c_str());
}
}