X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fmodules.h;h=ef2e4b0e46cbd8981e5d7ea2b34bac1d100e0d51;hb=8c2d96013084de950e3a63be4ae6ed626c4093ab;hp=abc783ca9e5e7e1dd6ffd0701e6d0414bb5a95c5;hpb=ce4dc653ce9acbb9b278b355e3b2f88998b26ac9;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/modules.h b/include/modules.h index abc783ca9..ef2e4b0e4 100644 --- a/include/modules.h +++ b/include/modules.h @@ -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 @@ -1126,7 +1127,8 @@ class CoreExport Module : public Extensible * return 1 to explicitly allow the join to go ahead or 0 to ignore the event. * @param user The user joining the channel * @param chan The channel being joined - * @return 1 to explicitly allow the join, 0 to proceed as normal + * @return 1 to explicitly allow the join, 0 to proceed as normal. Return -1 to explicitly deny the + * join to the channel. */ virtual int OnCheckBan(User* user, Channel* chan); @@ -1860,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