summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/modules.h7
-rw-r--r--src/modules.cpp1
2 files changed, 8 insertions, 0 deletions
diff --git a/include/modules.h b/include/modules.h
index 698060681..978a9a4a6 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -248,6 +248,13 @@ class Module : public classbase
*/
virtual void OnWhois(userrec* source, userrec* dest);
+ /** Called whenever a user is about to invite another user into a channel, before any processing is done.
+ * Returning any nonzero value from this function stops the process immediately, causing no
+ * output to be sent to the user by the core. If you do this you must produce your own numerics,
+ * notices etc. This is useful for modules which may want to filter invites to channels.
+ */
+ virtual int OnUserPreInvite(userrec* source,userrec* dest,chanrec* channel);
+
/** Called whenever a user is about to PRIVMSG A user or a channel, before any processing is done.
* Returning any nonzero value from this function stops the process immediately, causing no
* output to be sent to the user by the core. If you do this you must produce your own numerics,
diff --git a/src/modules.cpp b/src/modules.cpp
index d4f98cc86..a2f8a4413 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -310,6 +310,7 @@ Version Module::GetVersion() { return Version(1,0,0,0); }
void Module::OnOper(userrec* user) { };
void Module::OnInfo(userrec* user) { };
void Module::OnWhois(userrec* source, userrec* dest) { };
+int Module::OnUserPreInvite(userrec* source,userrec* dest,chanrec* channel) { return 0 };
int Module::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string text) { return 0; };
int Module::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string text) { return 0; };
int Module::OnUserPreNick(userrec* user, std::string newnick) { return 0; };