]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Merge insp20
[user/henk/code/inspircd.git] / include / modules.h
index f86f88087892cae12dae514ed10728e3c08d270d..7acab3cf691dba566158e922218f0bf25ffc5e2e 100644 (file)
@@ -201,8 +201,6 @@ class CoreExport Version
 
        /** Complex version information, including linking compatability data */
        Version(const std::string &desc, int flags, const std::string& linkdata);
-
-       virtual ~Version() {}
 };
 
 class CoreExport DataProvider : public ServiceProvider
@@ -487,8 +485,10 @@ class CoreExport Module : public classbase, public usecountbase
         * @param dest The user being invited
         * @param channel The channel the user is being invited to
         * @param timeout The time the invite will expire (0 == never)
+        * @param notifyrank Rank required to get an invite announcement (if enabled)
+        * @param notifyexcepts List of users to not send the default NOTICE invite announcement to
         */
-       virtual void OnUserInvite(User* source,User* dest,Channel* channel, time_t timeout);
+       virtual void OnUserInvite(User* source, User* dest, Channel* channel, time_t timeout, unsigned int notifyrank, CUList& notifyexcepts);
 
        /** 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
@@ -871,14 +871,10 @@ class CoreExport Module : public classbase, public usecountbase
 
        /** Called on all /STATS commands
         * This method is triggered for all /STATS use, including stats symbols handled by the core.
-        * @param symbol the symbol provided to /STATS
-        * @param user the user issuing the /STATS command
-        * @param results A string_list to append results into. You should put all your results
-        * into this string_list, rather than displaying them directly, so that your handler will
-        * work when remote STATS queries are received.
+        * @param stats Context of the /STATS request, contains requesting user, list of answer rows etc.
         * @return 1 to block the /STATS from being processed by the core, 0 to allow it
         */
-       virtual ModResult OnStats(char symbol, User* user, string_list &results);
+       virtual ModResult OnStats(Stats::Context& stats);
 
        /** Called whenever a change of a local users displayed host is attempted.
         * Return 1 to deny the host change, or 0 to allow it.
@@ -985,16 +981,17 @@ class CoreExport Module : public classbase, public usecountbase
         */
        virtual ModResult OnNamesListItem(User* issuer, Membership* item, std::string& prefixes, std::string& nick);
 
-       virtual ModResult OnNumeric(User* user, unsigned int numeric, const std::string &text);
+       virtual ModResult OnNumeric(User* user, const Numeric::Numeric& numeric);
 
        /** Called whenever a result from /WHO is about to be returned
         * @param source The user running the /WHO query
         * @param params The parameters to the /WHO query
         * @param user The user that this line of the query is about
         * @param memb The member shown in this line, NULL if no channel is in this line
-        * @param line The raw line to send; modifiable, if empty no line will be returned.
+        * @param numeric Numeric to send; modifiable.
+        * @param Return MOD_RES_PASSTHRU to allow the line to be displayed, MOD_RES_DENY to hide it
         */
-       virtual void OnSendWhoLine(User* source, const std::vector<std::string>& params, User* user, Membership* memb, std::string& line);
+       virtual ModResult OnSendWhoLine(User* source, const std::vector<std::string>& params, User* user, Membership* memb, 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
         * a module like m_cgiirc changing it.
@@ -1213,6 +1210,17 @@ class CoreExport ModuleManager : public fakederef<ModuleManager>
         * @return A ModuleMap containing all loaded modules
         */
        const ModuleMap& GetModules() const { return Modules; }
+
+       /** Make a service referenceable by dynamic_references
+        * @param name Name that will be used by dynamic_references to find the object
+        * @param service Service to make referenceable by dynamic_references
+        */
+       void AddReferent(const std::string& name, ServiceProvider* service);
+
+       /** Make a service no longer referenceable by dynamic_references
+        * @param service Service to make no longer referenceable by dynamic_references
+        */
+       void DelReferent(ServiceProvider* service);
 };
 
 /** Do not mess with these functions unless you know the C preprocessor
@@ -1225,7 +1233,7 @@ class CoreExport ModuleManager : public fakederef<ModuleManager>
 #define MODULE_INIT_SYM_FN_2(x,y) MODULE_INIT_SYM_FN_1(x,y)
 #define MODULE_INIT_SYM_FN_1(x,y) inspircd_module_ ## x ## _ ## y
 
-#ifdef PURE_STATIC
+#ifdef INSPIRCD_STATIC
 
 struct AllCommandList {
        typedef Command* (*fn)(Module*);