]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
fix for bug #175, change OnUserRegister to return int, and if greater than 0 = user...
[user/henk/code/inspircd.git] / include / modules.h
index a923698547b1c5959b466102451b33e9678404c8..8e2746bf0bec2d3e04ed1c0fcee272f097091d73 100644 (file)
@@ -74,7 +74,7 @@ enum TargetTypeFlags {
  * ipv4 servers, so this value will be ten times as
  * high on ipv6 servers.
  */
-#define NATIVE_API_VERSION 11002
+#define NATIVE_API_VERSION 11004
 #ifdef IPV6
 #define API_VERSION (NATIVE_API_VERSION * 10)
 #else
@@ -313,7 +313,7 @@ class Event : public ModuleMessage
  * be loaded. If this happens, the error message returned by ModuleException::GetReason will be displayed to the user
  * attempting to load the module, or dumped to the console if the ircd is currently loading for the first time.
  */
-class ModuleException : public classbase
+class ModuleException : public std::exception
 {
  private:
        /** Holds the error message to be displayed
@@ -328,8 +328,9 @@ class ModuleException : public classbase
        ModuleException(std::string message) : err(message) {}
        /** This destructor solves world hunger, cancels the world debt, and causes the world to end.
         * Actually no, it does nothing. Never mind.
+        * @throws Nothing!
         */
-       virtual ~ModuleException() {};
+       virtual ~ModuleException() throw() {};
        /** Returns the reason for the exception.
         * The module should probably put something informative here as the user will see this upon failure.
         */
@@ -352,7 +353,7 @@ enum Implementation {       I_OnUserConnect, I_OnUserQuit, I_OnUserDisconnect, I_OnUse
                        I_OnDecodeMetaData, I_ProtoSendMode, I_ProtoSendMetaData, I_OnWallops, I_OnChangeHost, I_OnChangeName, I_OnAddGLine,
                        I_OnAddZLine, I_OnAddQLine, I_OnAddKLine, I_OnAddELine, I_OnDelGLine, I_OnDelZLine, I_OnDelKLine, I_OnDelELine, I_OnDelQLine,
                        I_OnCleanup, I_OnUserPostNick, I_OnAccessCheck, I_On005Numeric, I_OnKill, I_OnRemoteKill, I_OnLoadModule, I_OnUnloadModule,
-                       I_OnBackgroundTimer, I_OnPreCommand, I_OnCheckReady, I_OnUserRrgister, I_OnRawMode, I_OnCheckInvite,
+                       I_OnBackgroundTimer, I_OnPreCommand, I_OnCheckReady, I_OnUserRrgister, I_OnCheckInvite,
                        I_OnCheckKey, I_OnCheckLimit, I_OnCheckBan, I_OnStats, I_OnChangeLocalUserHost, I_OnChangeLocalUserGecos, I_OnLocalTopicChange,
                        I_OnPostLocalTopicChange, I_OnEvent, I_OnRequest, I_OnOperCompre, I_OnGlobalOper, I_OnPostConnect, I_OnAddBan, I_OnDelBan,
                        I_OnRawSocketAccept, I_OnRawSocketClose, I_OnRawSocketWrite, I_OnRawSocketRead, I_OnChangeLocalUserGECOS, I_OnUserRegister,
@@ -1061,22 +1062,9 @@ class Module : public Extensible
         * Note that you should NOT delete the user record here by causing a disconnection!
         * Use OnUserConnect for that instead.
         * @param user The user registering
+        * @return 1 to indicate user quit, 0 to continue
         */
-       virtual void OnUserRegister(userrec* user);
-
-       /** Called whenever a mode character is processed.
-        * Return 1 from this function to block the mode character from being processed entirely,
-        * so that you may perform your own code instead. Note that this method allows you to override
-        * modes defined by other modes, but this is NOT RECOMMENDED!
-        * @param user The user who is sending the mode
-        * @param chan The channel the mode is being sent to
-        * @param mode The mode character being set
-        * @param param The parameter for the mode or an empty string
-        * @param adding true of the mode is being added, false if it is being removed
-        * @param pcnt The parameter count for the mode (0 or 1)
-        * @return 1 to deny the mode, 0 to allow
-        */
-       virtual int OnRawMode(userrec* user, chanrec* chan, char mode, const std::string &param, bool adding, int pcnt);
+       virtual int OnUserRegister(userrec* user);
 
        /** Called whenever a user joins a channel, to determine if invite checks should go ahead or not.
         * This method will always be called for each join, wether or not the channel is actually +i, and