]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Remove the Kiwi links from the readme.
[user/henk/code/inspircd.git] / include / modules.h
index 380775305587047122c92e42fa9f8c713d1d00df..b36326b1b6b5b5874dfef96552852caa07cb9c49 100644 (file)
  *   Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
  *   Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
  *   Copyright (C) 2007-2009 Robin Burchell <robin+git@viroteck.net>
- *   Copyright (C) 2007-2008, 2010 Craig Edwards <brain@inspircd.org>
  *   Copyright (C) 2007 Oliver Lupton <om@inspircd.org>
- *   Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ *   Copyright (C) 2006-2007 Dennis Friis <peavey@inspircd.org>
+ *   Copyright (C) 2006 John Brooks <special@inspircd.org>
+ *   Copyright (C) 2003-2008, 2010 Craig Edwards <brain@inspircd.org>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
  * redistribute it and/or modify it under the terms of the GNU General Public
@@ -36,7 +37,6 @@
 #include "base.h"
 #include "ctables.h"
 #include "inspsocket.h"
-#include "timer.h"
 #include "mode.h"
 
 /** Used to specify the behaviour of a module. */
@@ -123,9 +123,7 @@ class ModResult
                if (result == 0)
                        return res;
 
-               // Otherwise,
-
-               // they are different, and neither is passthru
+               // Otherwise, they are different, and neither is MOD_RES_PASSTHRU.
                return MOD_RES_ALLOW;
        }
 };
@@ -235,23 +233,78 @@ enum Priority { PRIORITY_FIRST, PRIORITY_LAST, PRIORITY_BEFORE, PRIORITY_AFTER }
  */
 enum Implementation
 {
-       I_OnUserConnect, I_OnUserPreQuit, I_OnUserQuit, I_OnUserDisconnect, I_OnUserJoin, I_OnUserPart,
-       I_OnSendSnotice, I_OnUserPreJoin, I_OnUserPreKick, I_OnUserKick, I_OnOper,
-       I_OnUserPreInvite, I_OnUserInvite, I_OnUserPreMessage, I_OnUserPreNick,
-       I_OnUserPostMessage, I_OnUserMessageBlocked, I_OnMode, I_OnShutdown,
-       I_OnDecodeMetaData, I_OnAcceptConnection, I_OnUserInit, I_OnUserPostInit,
-       I_OnChangeHost, I_OnChangeRealName, I_OnAddLine, I_OnDelLine, I_OnExpireLine,
-       I_OnUserPostNick, I_OnPreMode, I_On005Numeric, I_OnKill, I_OnLoadModule,
-       I_OnUnloadModule, I_OnBackgroundTimer, I_OnPreCommand, I_OnCheckReady, I_OnCheckInvite,
-       I_OnRawMode, I_OnCheckKey, I_OnCheckLimit, I_OnCheckBan, I_OnCheckChannelBan, I_OnExtBanCheck,
-       I_OnPreChangeHost, I_OnPreTopicChange, I_OnConnectionFail,
-       I_OnPostTopicChange, I_OnPostConnect, I_OnPostDeoper,
-       I_OnPreChangeRealName, I_OnUserRegister, I_OnChannelPreDelete, I_OnChannelDelete,
-       I_OnPostOper, I_OnPostCommand, I_OnCommandBlocked, I_OnPostJoin,
-       I_OnBuildNeighborList, I_OnGarbageCollect, I_OnSetConnectClass,
-       I_OnUserMessage, I_OnPassCompare, I_OnNumeric,
-       I_OnPreRehash, I_OnModuleRehash, I_OnChangeIdent, I_OnSetUserIP,
-       I_OnServiceAdd, I_OnServiceDel, I_OnUserWrite,
+       I_On005Numeric,
+       I_OnAcceptConnection,
+       I_OnAddLine,
+       I_OnBackgroundTimer,
+       I_OnBuildNeighborList,
+       I_OnChangeHost,
+       I_OnChangeRealHost,
+       I_OnChangeIdent,
+       I_OnChangeRealName,
+       I_OnChannelDelete,
+       I_OnChannelPreDelete,
+       I_OnCheckBan,
+       I_OnCheckChannelBan,
+       I_OnCheckInvite,
+       I_OnCheckKey,
+       I_OnCheckLimit,
+       I_OnCheckReady,
+       I_OnCommandBlocked,
+       I_OnConnectionFail,
+       I_OnDecodeMetaData,
+       I_OnDelLine,
+       I_OnExpireLine,
+       I_OnExtBanCheck,
+       I_OnGarbageCollect,
+       I_OnKill,
+       I_OnLoadModule,
+       I_OnMode,
+       I_OnModuleRehash,
+       I_OnNumeric,
+       I_OnOper,
+       I_OnPassCompare,
+       I_OnPostCommand,
+       I_OnPostConnect,
+       I_OnPostDeoper,
+       I_OnPostJoin,
+       I_OnPostOper,
+       I_OnPostTopicChange,
+       I_OnPreChangeHost,
+       I_OnPreChangeRealName,
+       I_OnPreCommand,
+       I_OnPreMode,
+       I_OnPreRehash,
+       I_OnPreTopicChange,
+       I_OnRawMode,
+       I_OnSendSnotice,
+       I_OnServiceAdd,
+       I_OnServiceDel,
+       I_OnSetConnectClass,
+       I_OnSetUserIP,
+       I_OnShutdown,
+       I_OnUnloadModule,
+       I_OnUserConnect,
+       I_OnUserDisconnect,
+       I_OnUserInit,
+       I_OnUserInvite,
+       I_OnUserJoin,
+       I_OnUserKick,
+       I_OnUserMessage,
+       I_OnUserMessageBlocked,
+       I_OnUserPart,
+       I_OnUserPostInit,
+       I_OnUserPostMessage,
+       I_OnUserPostNick,
+       I_OnUserPreInvite,
+       I_OnUserPreJoin,
+       I_OnUserPreKick,
+       I_OnUserPreMessage,
+       I_OnUserPreNick,
+       I_OnUserPreQuit,
+       I_OnUserQuit,
+       I_OnUserRegister,
+       I_OnUserWrite,
        I_END
 };
 
@@ -600,6 +653,13 @@ class CoreExport Module : public classbase, public usecountbase
         */
        virtual void OnChangeHost(User* user, const std::string &newhost);
 
+       /** Called whenever a user's real hostname is changed.
+        * This event triggers after the host has been set.
+        * @param user The user whos host is being changed
+        * @param newhost The new hostname being set
+        */
+       virtual void OnChangeRealHost(User* user, const std::string& newhost);
+
        /** 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
@@ -990,6 +1050,7 @@ class CoreExport Module : public classbase, public usecountbase
 class CoreExport ModuleManager : public fakederef<ModuleManager>
 {
  public:
+       typedef std::multimap<std::string, ServiceProvider*, irc::insensitive_swo> DataProviderMap;
        typedef std::vector<ServiceProvider*> ServiceList;
 
  private:
@@ -1032,7 +1093,7 @@ class CoreExport ModuleManager : public fakederef<ModuleManager>
        Module::List EventHandlers[I_END];
 
        /** List of data services keyed by name */
-       std::multimap<std::string, ServiceProvider*, irc::insensitive_swo> DataProviders;
+       DataProviderMap DataProviders;
 
        /** A list of ServiceProviders waiting to be registered.
         * Non-NULL when constructing a Module, NULL otherwise.