X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_helpop.cpp;h=f501676c3070a55dc2c70d17446dc06334bb0c95;hb=6bc3d71946b339a5a10ca621b029fe8a5b180d68;hp=cc78c3257bd5d622e391c52b02a208576662fb67;hpb=b8fc8b8ea60300424e964f093122c46ac7905f7e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp index cc78c3257..f501676c3 100644 --- a/src/modules/m_helpop.cpp +++ b/src/modules/m_helpop.cpp @@ -65,18 +65,20 @@ class cmd_helpop : public command_t { irc::string parameter = parameters[0]; - user->WriteServ("NOTICE %s :*** HELPOP for %s", user->nick, parameters[0]); - if (parameter == "index") { /* iterate over all helpop items */ + user->WriteServ("NOTICE %s :HELPOP topic index", user->nick); for (std::map::iterator iter = helpop_map.begin(); iter != helpop_map.end(); iter++) { - user->WriteServ("NOTICE %s :HELPOP KEY: %s", user->nick, iter->first.c_str()); + user->WriteServ("NOTICE %s : %s", user->nick, iter->first.c_str()); } + user->WriteServ("NOTICE %s :*** End of HELPOP topic index", user->nick); } else { + user->WriteServ("NOTICE %s :*** HELPOP for %s", user->nick, parameters[0]); + std::map::iterator iter = helpop_map.find(parameter); if (iter == helpop_map.end()) @@ -92,25 +94,17 @@ class cmd_helpop : public command_t { user->WriteServ("NOTICE %s :%s", user->nick, token.c_str()); } + + user->WriteServ("NOTICE %s :*** End of HELPOP", user->nick); } - user->WriteServ("NOTICE %s :*** HELPOP End", user->nick); - return CMD_SUCCESS; + /* We dont want these going out over the network, return CMD_FAILURE + * to make sure the protocol module thinks theyre not worth sending. + */ + return CMD_FAILURE; } }; -/** Thrown by m_helpop - */ -class HelpopException : public ModuleException -{ - private: - std::string err; - public: - HelpopException(std::string message) : err(message) { } - ~HelpopException() throw() { }; - virtual const char* GetReason() { return err.c_str(); } -}; - class ModuleHelpop : public Module { private: @@ -138,12 +132,11 @@ class ModuleHelpop : public Module for (int i = 0; i < MyConf->Enumerate("helpop"); i++) { irc::string key = assign(MyConf->ReadValue("helpop", "key", i)); - std::string value = MyConf->ReadValue("helpop", "value", i); + std::string value = MyConf->ReadValue("helpop", "value", i, true); /* Linefeeds allowed! */ if (key == "index") { - HelpopException e("m_helpop: The key 'index' is reserved for internal purposes. Please remove it."); - throw(e); + throw ModuleException("m_helpop: The key 'index' is reserved for internal purposes. Please remove it."); } helpop_map[key] = value; @@ -152,14 +145,12 @@ class ModuleHelpop : public Module if (helpop_map.find("start") == helpop_map.end()) { // error! - HelpopException e("m_helpop: Helpop file is missing important entries. Please check the example conf."); - throw(e); + throw ModuleException("m_helpop: Helpop file is missing important entries. Please check the example conf."); } else if (helpop_map.find("nohelp") == helpop_map.end()) { // error! - HelpopException e("m_helpop: Helpop file is missing important entries. Please check the example conf."); - throw(e); + throw ModuleException("m_helpop: Helpop file is missing important entries. Please check the example conf."); } }