X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_blockamsg.cpp;h=736c165293c8f32671e0827278f1ea87987cbd0f;hb=e9e75e50bc25e67af22dd88b39b12217a553d5cb;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..736c16529 100644 --- a/src/modules/m_blockamsg.cpp +++ b/src/modules/m_blockamsg.cpp @@ -37,7 +37,7 @@ enum BlockAction { IBLOCK_KILL, IBLOCK_KILLOPERS, IBLOCK_NOTICE, IBLOCK_NOTICEOP */ class BlockedMessage { -public: + public: std::string message; irc::string target; time_t sent; @@ -57,15 +57,14 @@ class ModuleBlockAmsg : public Module public: ModuleBlockAmsg() : blockamsg("blockamsg", this) { - this->OnRehash(NULL); - ServerInstance->Extensions.Register(&blockamsg); - Implementation eventlist[] = { I_OnRehash, I_OnPreCommand }; - ServerInstance->Modules->Attach(eventlist, this, 2); } - - virtual ~ModuleBlockAmsg() + void init() { + this->OnRehash(NULL); + ServerInstance->Modules->AddService(blockamsg); + Implementation eventlist[] = { I_OnRehash, I_OnPreCommand }; + ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation)); } virtual Version GetVersion() @@ -75,14 +74,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 +92,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. @@ -175,5 +165,4 @@ class ModuleBlockAmsg : public Module } }; - MODULE_INIT(ModuleBlockAmsg)