From a93be9ff1c417d73015fd53a9ee778ea2a642328 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 6 May 2010 14:42:21 -0400 Subject: Added two events called in ns_info and cs_info that allows modules to easially add info output. Made os_info use this --- src/modules/os_info.c | 53 +++++++++++++++++---------------------------------- 1 file changed, 17 insertions(+), 36 deletions(-) (limited to 'src/modules') diff --git a/src/modules/os_info.c b/src/modules/os_info.c index 87d8ea298..b486e32f6 100644 --- a/src/modules/os_info.c +++ b/src/modules/os_info.c @@ -409,8 +409,8 @@ class OSInfo : public Module this->InsertLanguage(LANG_RU, LANG_NUM_STRINGS, langtable_ru); this->InsertLanguage(LANG_IT, LANG_NUM_STRINGS, langtable_it); - Implementation i[] = { I_OnNickServHelp, I_OnChanServHelp, I_OnPostCommand, I_OnDatabaseReadMetadata, I_OnDatabaseWriteMetadata }; - ModuleManager::Attach(i, this, 5); + Implementation i[] = { I_OnNickServHelp, I_OnChanServHelp, I_OnNickInfo, I_OnChanInfo, I_OnDatabaseReadMetadata, I_OnDatabaseWriteMetadata }; + ModuleManager::Attach(i, this, 6); } ~OSInfo() @@ -439,42 +439,23 @@ class OSInfo : public Module } } - void OnPostCommand(User *u, const std::string &service, const ci::string &command, const std::vector ¶ms) + void OnNickInfo(User *u, NickAlias *na, bool) { - if (command == "INFO") + if (is_oper(u)) { - if (service == Config.s_NickServ) - { - const char *nick = params[0].c_str(); - NickAlias *na = NULL; - - if (is_oper(u)) /* Only show our goodies to opers */ - { - if ((na = findnick(nick))) /* ok we've found the user */ - { - /* If we have any info on this user */ - char *c; - if (na->nc->GetExtArray("os_info", c)) - u->SendMessage(Config.s_NickServ, " OperInfo: %s", c); - } - } - } - else if (service == Config.s_ChanServ) - { - const char *chan = params[0].c_str(); - ChannelInfo *ci = NULL; - - if (is_oper(u)) /* Only show our goodies to opers */ - { - if ((ci = cs_findchan(chan))) - { - /* If we have any info on this channel */ - char *c; - if (ci->GetExtArray("os_info", c)) - u->SendMessage(Config.s_ChanServ, " OperInfo: %s", c); - } - } - } + char *c; + if (na->nc->GetExtArray("os_info", c)) + u->SendMessage(Config.s_NickServ, " OperInfo: %s", c); + } + } + + void OnChanInfo(User *u, ChannelInfo *ci, bool) + { + if (is_oper(u)) + { + char *c; + if (ci->GetExtArray("os_info", c)) + u->SendMessage(Config.s_ChanServ, " OperInfo: %s", c); } } -- cgit