]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Add support for the IRCv3 account-tag specification.
[user/henk/code/inspircd.git] / include / modules.h
index 44cda7d195627087e0475e50e0829a24bdce12f7..ba84c4ccc30a308a035637e2c03709ef764f91ac 100644 (file)
@@ -223,11 +223,11 @@ enum Implementation
        I_OnChangeLocalUserHost, I_OnPreTopicChange,
        I_OnPostTopicChange, I_OnPostConnect, I_OnPostDeoper,
        I_OnPreChangeRealName, I_OnUserRegister, I_OnChannelPreDelete, I_OnChannelDelete,
-       I_OnPostOper, I_OnSetAway, I_OnPostCommand, I_OnPostJoin,
+       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_OnServiceAdd, I_OnServiceDel,
+       I_OnServiceAdd, I_OnServiceDel, I_OnUserWrite,
        I_END
 };
 
@@ -561,9 +561,8 @@ class CoreExport Module : public classbase, public usecountbase
         * @param changelist The changed modes.
         * @param processflags Flags passed to ModeParser::Process(), see ModeParser::ModeProcessFlags
         * for the possible flags.
-        * @param output_mode Changed modes, including '+' and '-' characters, not including any parameters
         */
-       virtual void OnMode(User* user, User* usertarget, Channel* chantarget, const Modes::ChangeList& changelist, ModeParser::ModeProcessFlag processflags, const std::string& output_mode);
+       virtual void OnMode(User* user, User* usertarget, Channel* chantarget, const Modes::ChangeList& changelist, ModeParser::ModeProcessFlag processflags);
 
        /** Allows module data, sent via ProtoSendMetaData, to be decoded again by a receiving module.
         * Please see src/modules/m_swhois.cpp for a working example of how to use this method call.
@@ -717,10 +716,9 @@ class CoreExport Module : public classbase, public usecountbase
         * @param user the user issuing the command
         * @param validated True if the command has passed all checks, e.g. it is recognised, has enough parameters, the user has permission to execute it, etc.
         * You should only change the parameter list and command string if validated == false (e.g. before the command lookup occurs).
-        * @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 ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line);
+       virtual ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated);
 
        /** Called after any command has been executed.
         * This event occurs for all registered commands, wether they are registered in the core,
@@ -731,9 +729,8 @@ 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 original_line The entire original line as passed to the parser from the user
         */
-       virtual void OnPostCommand(Command* command, const CommandBase::Params& parameters, LocalUser* user, CmdResult result, const std::string& original_line);
+       virtual void OnPostCommand(Command* command, const CommandBase::Params& parameters, LocalUser* user, CmdResult result);
 
        /** Called when a user is first connecting, prior to starting DNS lookups, checking initial
         * connect class, or accepting any commands.
@@ -896,16 +893,6 @@ class CoreExport Module : public classbase, public usecountbase
         */
        virtual ModResult OnAcceptConnection(int fd, ListenSocket* sock, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server);
 
-       /** Called whenever a user sets away or returns from being away.
-        * The away message is available as a parameter, but should not be modified.
-        * At this stage, it has already been copied into the user record.
-        * If awaymsg is empty, the user is returning from away.
-        * @param user The user setting away
-        * @param awaymsg The away message of the user, or empty if returning from away
-        * @return nonzero if the away message should be blocked - should ONLY be nonzero for LOCAL users (IS_LOCAL) (no output is returned by core)
-        */
-       virtual ModResult OnSetAway(User* user, const std::string &awaymsg);
-
        /** Called at intervals for modules to garbage-collect any hashes etc.
         * Certain data types such as hash_map 'leak' buckets, which must be
         * tidied up and freed by copying into a new item every so often. This
@@ -965,6 +952,8 @@ class CoreExport Module : public classbase, public usecountbase
         * @param service ServiceProvider being unregistered.
         */
        virtual void OnServiceDel(ServiceProvider& service);
+
+       virtual ModResult OnUserWrite(LocalUser* user, ClientProtocol::Message& msg);
 };
 
 /** ModuleManager takes care of all things module-related