X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fmodules.h;h=de418a785777971b74063b16a6aba5875a0a411a;hb=9ea8ecfaf395955a4e58c743c2f9e35a26528039;hp=3cd0179d267add457b464808531f604686c13bdc;hpb=f7a115884f91d58d5699e38f4e25fdaef65a003d;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/modules.h b/include/modules.h index 3cd0179d2..de418a785 100644 --- a/include/modules.h +++ b/include/modules.h @@ -99,14 +99,15 @@ struct ModResult { /** InspIRCd major version. * 1.2 -> 102; 2.1 -> 201; 2.12 -> 212 */ -#define INSPIRCD_VERSION_MAJ 202 +#define INSPIRCD_VERSION_MAJ 300 + /** InspIRCd API version. * If you change any API elements, increment this value. This counter should be * reset whenever the major version is changed. Modules can use these two values * and numerical comparisons in preprocessor macros if they wish to support * multiple versions of InspIRCd in one file. */ -#define INSPIRCD_VERSION_API 1 +#define INSPIRCD_VERSION_API 2 /** * This #define allows us to call a method in all @@ -226,7 +227,7 @@ enum Implementation I_OnPostOper, I_OnPostCommand, I_OnPostJoin, I_OnBuildNeighborList, I_OnGarbageCollect, I_OnSetConnectClass, I_OnUserMessage, I_OnPassCompare, I_OnNamesListItem, I_OnNumeric, - I_OnPreRehash, I_OnModuleRehash, I_OnSendWhoLine, I_OnChangeIdent, I_OnSetUserIP, + I_OnPreRehash, I_OnModuleRehash, I_OnChangeIdent, I_OnSetUserIP, I_OnServiceAdd, I_OnServiceDel, I_OnUserWrite, I_END }; @@ -570,7 +571,7 @@ class CoreExport Module : public classbase, public usecountbase /** Called whenever a user's real name is changed. * This event triggers after the name has been set. * @param user The user who's real name is being changed - * @param name The new real name being set on the user + * @param real The new real name being set on the user */ virtual void OnChangeRealName(User* user, const std::string& real); @@ -717,8 +718,9 @@ class CoreExport Module : public classbase, public usecountbase * @param parameters An array of array of characters containing the parameters for the command * @param user the user issuing the command * @param result The return code given by the command handler, one of CMD_SUCCESS or CMD_FAILURE + * @param loop Whether the command is being called from LoopCall or directly. */ - virtual void OnPostCommand(Command* command, const CommandBase::Params& parameters, LocalUser* user, CmdResult result); + virtual void OnPostCommand(Command* command, const CommandBase::Params& parameters, LocalUser* user, CmdResult result, bool loop); /** Called when a user is first connecting, prior to starting DNS lookups, checking initial * connect class, or accepting any commands. @@ -894,13 +896,6 @@ class CoreExport Module : public classbase, public usecountbase */ virtual ModResult OnSetConnectClass(LocalUser* user, ConnectClass* myclass); -#ifdef INSPIRCD_ENABLE_TESTSUITE - /** Add test suite hooks here. These are used for testing functionality of a module - * via the --testsuite debugging parameter. - */ - virtual void OnRunTestSuite(); -#endif - /** 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 @@ -915,16 +910,6 @@ class CoreExport Module : public classbase, public usecountbase 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 numeric Numeric to send; modifiable. - * @return MOD_RES_PASSTHRU to allow the line to be displayed, MOD_RES_DENY to hide it - */ - virtual ModResult OnSendWhoLine(User* source, const std::vector& 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. * @param user The user whose IP is being set @@ -941,6 +926,12 @@ class CoreExport Module : public classbase, public usecountbase */ virtual void OnServiceDel(ServiceProvider& service); + /** Called whenever a message is about to be written to a user. + * @param user The user who is having a message sent to them. + * @param msg The message which is being written to the user. + * @return MOD_RES_ALLOW to explicitly allow the message to be sent, MOD_RES_DENY to explicitly + * deny the message from being sent, or MOD_RES_PASSTHRU to let another module handle the event. + */ virtual ModResult OnUserWrite(LocalUser* user, ClientProtocol::Message& msg); }; @@ -1185,5 +1176,3 @@ class CoreExport ModuleManager : public fakederef return new y; \ } \ extern "C" DllExport const char inspircd_src_version[] = INSPIRCD_VERSION; - -#define COMMAND_INIT(c) MODULE_INIT(CommandModule)