X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_blockamsg.cpp;h=be861447f36effcab132852d2f8e32836fe45387;hb=382662a8a4ae5c501b096643cb8f09d2d9d084d0;hp=1d26b7639344340f83f9727b9cc2f9b024cd4ab7;hpb=46a39046196f55b52336e19662bb7bac85b731ac;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_blockamsg.cpp b/src/modules/m_blockamsg.cpp index 1d26b7639..be861447f 100644 --- a/src/modules/m_blockamsg.cpp +++ b/src/modules/m_blockamsg.cpp @@ -56,14 +56,17 @@ class ModuleBlockAmsg : public Module public: ModuleBlockAmsg() : blockamsg("blockamsg", this) + { + } + + void init() { this->OnRehash(NULL); - ServerInstance->Extensions.Register(&blockamsg); + ServerInstance->Modules->AddService(blockamsg); Implementation eventlist[] = { I_OnRehash, I_OnPreCommand }; - ServerInstance->Modules->Attach(eventlist, this, 2); + ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation)); } - virtual ~ModuleBlockAmsg() { } @@ -75,14 +78,9 @@ class ModuleBlockAmsg : public Module virtual void OnRehash(User* user) { - ConfigReader Conf; - - ForgetDelay = Conf.ReadInteger("blockamsg", "delay", 0, false); - - if(Conf.GetError() == CONF_VALUE_NOT_FOUND) - ForgetDelay = -1; - - std::string act = Conf.ReadValue("blockamsg", "action", 0); + ConfigTag* tag = ServerInstance->Config->ConfValue("blockamsg"); + ForgetDelay = tag->getInt("delay", -1); + std::string act = tag->getString("action"); if(act == "notice") action = IBLOCK_NOTICE; @@ -98,15 +96,11 @@ class ModuleBlockAmsg : public Module virtual ModResult OnPreCommand(std::string &command, std::vector ¶meters, LocalUser *user, bool validated, const std::string &original_line) { - // Don't do anything with unregistered users, or remote ones. - if(!user || (user->registered != REG_ALL) || !IS_LOCAL(user)) + // Don't do anything with unregistered users + if (user->registered != REG_ALL) return MOD_RES_PASSTHRU; - // We want case insensitive command comparison. - // Add std::string contructor for irc::string :x - irc::string cmd = command.c_str(); - - if(validated && (cmd == "PRIVMSG" || cmd == "NOTICE") && (parameters.size() >= 2)) + if ((validated) && (parameters.size() >= 2) && ((command == "PRIVMSG") || (command == "NOTICE"))) { // parameters[0] should have the target(s) in it. // I think it will be faster to first check if there are any commas, and if there are then try and parse it out.