]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Only call events on modules which aren't dying.
[user/henk/code/inspircd.git] / include / modules.h
index ae438128d33cf40994256ba813e1695534fb5e5f..45d2dd492e82479c40172aba51652f177bcf41b0 100644 (file)
@@ -107,7 +107,7 @@ struct ModResult {
  * and numerical comparisons in preprocessor macros if they wish to support
  * multiple versions of InspIRCd in one file.
  */
-#define INSPIRCD_VERSION_API 3
+#define INSPIRCD_VERSION_API 6
 
 /**
  * This #define allows us to call a method in all
@@ -121,7 +121,8 @@ struct ModResult {
                _next = _i+1; \
                try \
                { \
-                       (*_i)->y x ; \
+                       if (!(*_i)->dying) \
+                               (*_i)->y x ; \
                } \
                catch (CoreException& modexcept) \
                { \
@@ -144,7 +145,8 @@ do { \
                _next = _i+1; \
                try \
                { \
-                       v = (*_i)->n args;
+                       if (!(*_i)->dying) \
+                               v = (*_i)->n args;
 
 #define WHILE_EACH_HOOK(n) \
                } \
@@ -226,7 +228,7 @@ enum Implementation
        I_OnPreChangeRealName, I_OnUserRegister, I_OnChannelPreDelete, I_OnChannelDelete,
        I_OnPostOper, I_OnPostCommand, I_OnPostJoin,
        I_OnBuildNeighborList, I_OnGarbageCollect, I_OnSetConnectClass,
-       I_OnUserMessage, I_OnPassCompare, I_OnNamesListItem, I_OnNumeric,
+       I_OnUserMessage, I_OnPassCompare, I_OnNumeric,
        I_OnPreRehash, I_OnModuleRehash, I_OnChangeIdent, I_OnSetUserIP,
        I_OnServiceAdd, I_OnServiceDel, I_OnUserWrite,
        I_END
@@ -905,18 +907,6 @@ class CoreExport Module : public classbase, public usecountbase
         */
        virtual ModResult OnSetConnectClass(LocalUser* user, ConnectClass* myclass);
 
-       /** 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.
-        * @param issuer The user who is going to receive the NAMES list being built
-        * @param item The channel member being considered for inclusion
-        * @param prefixes The prefix character(s) to display, initially set to the prefix char of the most powerful
-        * prefix mode the member has, can be changed
-        * @param nick The nick to display, initially set to the member's nick, can be changed
-        * @return Return MOD_RES_PASSTHRU to allow the member to be displayed, MOD_RES_DENY to cause them to be
-        * excluded from this NAMES list
-        */
-       virtual ModResult OnNamesListItem(User* issuer, Membership* item, std::string& prefixes, std::string& nick);
-
        virtual ModResult OnNumeric(User* user, const Numeric::Numeric& numeric);
 
        /** Called whenever a local user's IP is set for the first time, or when a local user's IP changes due to