]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Config file example is wrong
[user/henk/code/inspircd.git] / include / modules.h
index 7b4cb45853e01820290e9ec7d5f0b9bd29e32d03..1cdbbdedab23e4370a094b13270d707d49b1b30d 100644 (file)
@@ -289,7 +289,7 @@ enum Implementation {       I_OnUserConnect, I_OnUserQuit, I_OnUserDisconnect, I_OnUse
                        I_OnCheckKey, I_OnCheckLimit, I_OnCheckBan, I_OnStats, I_OnChangeLocalUserHost, I_OnChangeLocalUserGecos, I_OnLocalTopicChange,
                        I_OnPostLocalTopicChange, I_OnEvent, I_OnRequest, I_OnOperCompre, I_OnGlobalOper, I_OnGlobalConnect, I_OnAddBan, I_OnDelBan,
                        I_OnRawSocketAccept, I_OnRawSocketClose, I_OnRawSocketWrite, I_OnRawSocketRead, I_OnChangeLocalUserGECOS, I_OnUserRegister,
-                       I_OnOperCompare, I_OnChannelDelete, I_OnPostOper, I_OnSyncOtherMetaData };
+                       I_OnOperCompare, I_OnChannelDelete, I_OnPostOper, I_OnSyncOtherMetaData, I_OnSetAway, I_OnCancelAway };
 
 /** Base class for all InspIRCd modules
  *  This class is the base class for InspIRCd modules. All modules must inherit from this class,
@@ -462,7 +462,7 @@ class Module : public classbase
         * @param user The user being kicked
         * @param chan The channel the user is being kicked from
         * @param reason The kick reason
-        * @return 1 to prevent the kick, 0 to allow it
+        * @return 1 to prevent the kick, 0 to continue normally, -1 to explicitly allow the kick regardless of normal operation
          */
        virtual int OnUserPreKick(userrec* source, userrec* user, chanrec* chan, std::string reason);
 
@@ -544,9 +544,10 @@ class Module : public classbase
         * @param dest The target of the message (chanrec* or userrec*)
         * @param target_type The type of target (TYPE_USER or TYPE_CHANNEL)
         * @param text Changeable text being sent by the user
+        * @param status The status being used, e.g. PRIVMSG @#chan has status== '@', 0 to send to everyone.
         * @return 1 to deny the NOTICE, 0 to allow it
         */
-       virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text);
+       virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text,char status);
 
        /** Called whenever a user is about to NOTICE A user or a channel, before any processing is done.
         * Returning any nonzero value from this function stops the process immediately, causing no
@@ -562,9 +563,10 @@ class Module : public classbase
         * @param dest The target of the message (chanrec* or userrec*)
         * @param target_type The type of target (TYPE_USER or TYPE_CHANNEL)
         * @param text Changeable text being sent by the user
+        * @param status The status being used, e.g. PRIVMSG @#chan has status== '@', 0 to send to everyone.
         * @return 1 to deny the NOTICE, 0 to allow it
         */
-       virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text);
+       virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text,char status);
        
        /** Called before any nickchange, local or remote. This can be used to implement Q-lines etc.
         * Please note that although you can see remote nickchanges through this function, you should
@@ -585,8 +587,9 @@ class Module : public classbase
         * @param dest The target of the message
         * @param target_type The type of target (TYPE_USER or TYPE_CHANNEL)
         * @param text the text being sent by the user
+        * @param status The status being used, e.g. PRIVMSG @#chan has status== '@', 0 to send to everyone.
         */
-       virtual void OnUserMessage(userrec* user, void* dest, int target_type, std::string text);
+       virtual void OnUserMessage(userrec* user, void* dest, int target_type, std::string text, char status);
 
         /** Called after any NOTICE sent from a user.
         * The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec*
@@ -595,8 +598,9 @@ class Module : public classbase
         * @param dest The target of the message
         * @param target_type The type of target (TYPE_USER or TYPE_CHANNEL)
         * @param text the text being sent by the user
+        * @param status The status being used, e.g. NOTICE @#chan has status== '@', 0 to send to everyone.
         */
-       virtual void OnUserNotice(userrec* user, void* dest, int target_type, std::string text);
+       virtual void OnUserNotice(userrec* user, void* dest, int target_type, std::string text, char status);
 
        /** Called after every MODE command sent from a user
         * The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec*
@@ -1194,6 +1198,10 @@ class Module : public classbase
         * @return nonzero if the event was handled, in which case readresult must be valid on exit
         */
        virtual int OnRawSocketRead(int fd, char* buffer, unsigned int count, int &readresult);
+
+       virtual void OnSetAway(userrec* user);
+
+       virtual void OnCancelAway(userrec* user);
 };