]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Add stuff so that modules can hook users by altering a pointer in the User class...
[user/henk/code/inspircd.git] / include / modules.h
index 35c439a10d6febe67eadc800fdedb3415b3624ed..de0e0d7feb8fe2298313d18925901a66ce8b3232 100644 (file)
@@ -401,7 +401,7 @@ enum Implementation
        I_OnRawSocketAccept, I_OnRawSocketClose, I_OnRawSocketWrite, I_OnRawSocketRead, I_OnChangeLocalUserGECOS, I_OnUserRegister,
        I_OnChannelPreDelete, I_OnChannelDelete, I_OnPostOper, I_OnSyncOtherMetaData, I_OnSetAway, I_OnCancelAway, I_OnUserList,
        I_OnPostCommand, I_OnPostJoin, I_OnWhoisLine, I_OnBuildExemptList, I_OnRawSocketConnect, I_OnGarbageCollect, I_OnBufferFlushed,
-       I_OnText, I_OnReadConfig, I_OnDownloadFile, I_OnPassCompare, I_OnRunTestSuite,
+       I_OnText, I_OnReadConfig, I_OnDownloadFile, I_OnPassCompare, I_OnRunTestSuite, I_OnNamesListItem, I_OnNumeric, I_OnHookUserIO,
        I_END
 };
 
@@ -1245,6 +1245,8 @@ class CoreExport Module : public Extensible
         */
        virtual int OnDelBan(User* source, Channel* channel,const std::string &banmask);
 
+       virtual void OnHookUserIO(User* user);
+
        /** Called immediately after any  connection is accepted. This is intended for raw socket
         * processing (e.g. modules which wrap the tcp connection within another library) and provides
         * no information relating to a user record as the connection has not been assigned yet.
@@ -1357,6 +1359,14 @@ class CoreExport Module : public Extensible
         * via the --testsuite debugging parameter.
         */
        virtual void OnRunTestSuite();
+
+       /** Called for every item in a NAMES list, so that modules may reformat portions of it as they see fit.
+        * For example NAMESX, channel mode +u and +I, and UHNAMES. If the nick is set to an empty string by any
+        * module, then this will cause the nickname not to be displayed at all.
+        */
+       virtual void OnNamesListItem(User* issuer, User* user, Channel* channel, std::string &prefixes, std::string &nick);
+
+       virtual int OnNumeric(User* user, unsigned int numeric, const std::string &text);
 };