* 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
#include "base.h"
#include "ctables.h"
#include "inspsocket.h"
-#include "timer.h"
#include "mode.h"
/** Used to specify the behaviour of a module. */
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;
}
};
*/
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
};
*/
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
class CoreExport ModuleManager : public fakederef<ModuleManager>
{
public:
+ typedef std::multimap<std::string, ServiceProvider*, irc::insensitive_swo> DataProviderMap;
typedef std::vector<ServiceProvider*> ServiceList;
private:
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.