summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortypobox43 <typobox43@e03df62e-2008-0410-955e-edbf42e46eb7>2004-07-20 04:03:45 +0000
committertypobox43 <typobox43@e03df62e-2008-0410-955e-edbf42e46eb7>2004-07-20 04:03:45 +0000
commit6a2a049d38203cf79b0132b4fcef1e6609e3929f (patch)
tree946c03966176ac8f699d8669660e8a2375480170
parentca5af9f34d3bce42335e70572a763094064cfd4b (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
-rw-r--r--src/modules/m_showwhois.cpp77
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;
+
+}