diff options
| author | 2012-04-09 06:39:38 -0700 | |
|---|---|---|
| committer | 2012-04-09 06:39:38 -0700 | |
| commit | 801a1586b166bbbebaeb8fcf5d21b42cad1b8f5a (patch) | |
| tree | d13d6301288b879e71c8cdab4763c7e56a427ee7 /src/modules | |
| parent | Merge pull request #20 from Shawn-Smith/insp21+umode_redirect (diff) | |
| parent | Added the module for join/part snomasks (diff) | |
Merge pull request #29 from Shawn-Smith/insp21+joinpart_sno v2.1b3
[2.1] Add new module for join/part snomasks (m_joinpartsno)
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/m_joinpartsno.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/modules/m_joinpartsno.cpp b/src/modules/m_joinpartsno.cpp new file mode 100644 index 000000000..db1be5692 --- /dev/null +++ b/src/modules/m_joinpartsno.cpp @@ -0,0 +1,65 @@ +/* +------------------------------------+ + * | Inspire Internet Relay Chat Daemon | + * +------------------------------------+ + * + * InspIRCd: (C) 2002-2011 InspIRCd Development Team + * See: http://wiki.inspircd.org/Credits + * + * This program is free but copyrighted software; see + * the file COPYING for details. + * + * --------------------------------------------------- + */ + +#include "inspircd.h" + +/* $ModAuthor: Shawn Smith */ +/* $ModDesc: Sends server notices when a user joins/parts a channel. */ + +class ModuleJoinPartSNO : public Module +{ + public: + void init() + { + ServerInstance->SNO->EnableSnomask('e', "JOIN"); + ServerInstance->SNO->EnableSnomask('p', "PART"); + Implementation eventlist[] = { I_OnUserJoin, I_OnUserPart }; + ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation)); + } + + Version GetVersion() + { + return Version("Creates SNOMask for user joins/parts", VF_VENDOR); + } + + + void OnUserJoin(Membership* memb, bool sync, bool created, CUList& except) + { + if (IS_LOCAL(memb->user)) + { + ServerInstance->SNO->WriteToSnoMask('e', "User %s!%s@%s joined %s", + memb->user->nick.c_str(), memb->user->ident.c_str(), memb->user->host.c_str(), memb->chan->name.c_str()); + } + else + { + ServerInstance->SNO->WriteGlobalSno('E', "User %s!%s@%s joined %s", + memb->user->nick.c_str(), memb->user->ident.c_str(), memb->user->host.c_str(), memb->chan->name.c_str()); + } + } + + void OnUserPart(Membership* memb, std::string &partmessage, CUList &except) + { + if (IS_LOCAL(memb->user)) + { + ServerInstance->SNO->WriteToSnoMask('p', "User %s!%s@%s parted %s", + memb->user->nick.c_str(), memb->user->ident.c_str(), memb->user->host.c_str(), memb->chan->name.c_str()); + } + else + { + ServerInstance->SNO->WriteGlobalSno('P', "User %s!%s@%s parted %s", + memb->user->nick.c_str(), memb->user->ident.c_str(), memb->user->host.c_str(), memb->chan->name.c_str()); + } + } +}; + +MODULE_INIT(ModuleJoinPartSNO) |
