diff options
author | typobox43 <typobox43@e03df62e-2008-0410-955e-edbf42e46eb7> | 2004-07-20 04:03:45 +0000 |
---|---|---|
committer | typobox43 <typobox43@e03df62e-2008-0410-955e-edbf42e46eb7> | 2004-07-20 04:03:45 +0000 |
commit | 6a2a049d38203cf79b0132b4fcef1e6609e3929f (patch) | |
tree | 946c03966176ac8f699d8669660e8a2375480170 /src/modules | |
parent | ca5af9f34d3bce42335e70572a763094064cfd4b (diff) |
m_showwhois.cpp - adds support for +W umode
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@845 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/m_showwhois.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/modules/m_showwhois.cpp b/src/modules/m_showwhois.cpp new file mode 100644 index 000000000..4a019e20e --- /dev/null +++ b/src/modules/m_showwhois.cpp @@ -0,0 +1,77 @@ +// showwhois module by typobox43 + +#include "users.h" +#include "channels.h" +#include "modules.h" + +/* $ModDesc: Allows opers to set +W to see when a user uses WHOIS on them */ + +Server *Srv; + +class ModuleShowwhois : public Module { + + public: + + ModuleShowwhois() { + + Srv = new Server; + + Srv->AddExtendedMode('W',MT_CLIENT,true,0,0); + + } + + ~ModuleShowwhois() { + + delete Srv; + + } + + virtual int OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list& params) { + + if((type == MT_CLIENT) && (modechar == 'W')) { + + return 1; + + } + + return 0; + + } + + virtual void OnWhois(userrec* source, userrec* dest) { + + if(strchr(dest->modes,'W')) { + + WriteServ(dest->fd,"NOTICE %s :*** %s (%s@%s) did a /whois on you.",dest->nick,source->nick,source->ident,source->host); + + } + + } + +}; + +class ModuleShowwhoisFactory : public ModuleFactory { + + public: + + ModuleShowwhoisFactory() { + + } + + ~ModuleShowwhoisFactory() { + + } + + virtual Module* CreateModule() { + + return new ModuleShowwhois; + + } + +}; + +extern "C" void* init_module() { + + return new ModuleShowwhoisFactory; + +} |