]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Jason, try this..
[user/henk/code/inspircd.git] / include / modules.h
index 8354f34b41e432cf309a0d22aa259feba3cdee80..722bf4e3c4467696722ea3b921e44c9cbc078ea3 100644 (file)
@@ -545,9 +545,10 @@ class CoreExport Module : public Extensible
         * @param cname The channel name being joined. For new channels this is valid where chan is not.
         * @param privs A string containing the users privilages when joining the channel. For new channels this will contain "@".
         * You may alter this string to alter the user's modes on the channel.
+        * @param keygiven The key given to join the channel, or an empty string if none was provided
         * @return 1 To prevent the join, 0 to allow it.
         */
-       virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs);
+       virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven);
        
        /** Called whenever a user is about to be kicked.
         * Returning a value of 1 from this function stops the process immediately, causing no
@@ -1036,7 +1037,7 @@ class CoreExport Module : public Extensible
         * @param original_line The entire original line as passed to the parser from the user
         * @return 1 to block the command, 0 to allow
         */
-       virtual int OnPreCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, bool validated, const std::string &original_line);
+       virtual int OnPreCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, bool validated, const std::string &original_line);
 
        /** Called after any command has been executed.
         * This event occurs for all registered commands, wether they are registered in the core,
@@ -1050,7 +1051,7 @@ class CoreExport Module : public Extensible
         * @param result The return code given by the command handler, one of CMD_SUCCESS or CMD_FAILURE
         * @param original_line The entire original line as passed to the parser from the user
         */
-       virtual void OnPostCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, CmdResult result, const std::string &original_line);
+       virtual void OnPostCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, CmdResult result, const std::string &original_line);
 
        /** Called to check if a user who is connecting can now be allowed to register
         * If any modules return false for this function, the user is held in the waiting
@@ -1861,10 +1862,31 @@ class CoreExport ModuleManager : public classbase
  * and functions needed to make a module loadable by the OS.
  * It defines the class factory and external init_module function.
  */
+#ifdef WINDOWS
+
 #define MODULE_INIT(y) \
        extern "C" DllExport Module * init_module(InspIRCd* Me) \
        { \
                return new y(Me); \
+       } \
+       BOOLEAN WINAPI DllMain(HINSTANCE hDllHandle, DWORD nReason, LPVOID Reserved) \
+       { \
+               switch ( nReason ) \
+               { \
+                       case DLL_PROCESS_ATTACH: \
+                       case DLL_PROCESS_DETACH: \
+                               break; \
+               } \
+               return TRUE; \
        }
 
+#else
+
+#define MODULE_INIT(y) \
+       extern "C" DllExport Module * init_module(InspIRCd* Me) \
+       { \
+               return new y(Me); \
+       }
+#endif
+
 #endif