* 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
* 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
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.
*/
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,
* 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 ¶m, 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