-Event::Event(char* anydata, Module* src, const std::string &eventid) : data(anydata), source(src), id(eventid) { }
-
-char* Event::GetData()
-{
- return (char*)this->data;
-}
-
-Module* Event::GetSource()
-{
- return this->source;
-}
-
-char* Event::Send(InspIRCd* ServerInstance)
-{
- FOREACH_MOD(I_OnEvent,OnEvent(this));
- return NULL;
-}
-
-std::string Event::GetEventID()
-{
- return this->id;
-}
-
-
-// These declarations define the behavours of the base class Module (which does nothing at all)
-
-Module::Module(InspIRCd* Me) : ServerInstance(Me) { }
-Module::~Module() { }
-
-int Module::OnSendSnotice(char &snomask, std::string &type, const std::string &message) { return 0; }
-void Module::OnUserConnect(User*) { }
-void Module::OnUserQuit(User*, const std::string&, const std::string&) { }
-void Module::OnUserDisconnect(User*) { }
-void Module::OnUserJoin(User*, Channel*, bool, bool&) { }
-void Module::OnPostJoin(User*, Channel*) { }
-void Module::OnUserPart(User*, Channel*, std::string&, bool&) { }
-void Module::OnRehash(User*, const std::string&) { }
-int Module::OnUserPreJoin(User*, Channel*, const char*, std::string&, const std::string&) { return 0; }
-void Module::OnMode(User*, void*, int, const std::string&, const std::vector<TranslateType>&) { }
-Version Module::GetVersion() { return Version("Misconfigured", VF_VENDOR, -1); }
-void Module::OnOper(User*, const std::string&) { }
-void Module::OnPostOper(User*, const std::string&, const std::string &) { }
-void Module::OnInfo(User*) { }
-void Module::OnWhois(User*, User*) { }
-int Module::OnUserPreInvite(User*, User*, Channel*, time_t) { return 0; }
-int Module::OnUserPreMessage(User*, void*, int, std::string&, char, CUList&) { return 0; }
-int Module::OnUserPreNotice(User*, void*, int, std::string&, char, CUList&) { return 0; }
-int Module::OnUserPreNick(User*, const std::string&) { return 0; }
-void Module::OnUserPostNick(User*, const std::string&) { }
-int Module::OnAccessCheck(User*, User*, Channel*, int) { return ACR_DEFAULT; }
-void Module::On005Numeric(std::string&) { }
-int Module::OnKill(User*, User*, const std::string&) { return 0; }
-void Module::OnLoadModule(Module*, const std::string&) { }
-void Module::OnUnloadModule(Module*, const std::string&) { }
-void Module::OnBackgroundTimer(time_t) { }
-int Module::OnPreCommand(std::string&, std::vector<std::string>&, User *, bool, const std::string&) { return 0; }
-void Module::OnPostCommand(const std::string&, const std::vector<std::string>&, User *, CmdResult, const std::string&) { }
-bool Module::OnCheckReady(User*) { return true; }
-int Module::OnUserRegister(User*) { return 0; }
-int Module::OnUserPreKick(User*, User*, Channel*, const std::string&) { return 0; }
-void Module::OnUserKick(User*, User*, Channel*, const std::string&, bool&) { }
-int Module::OnRawMode(User*, Channel*, const char, const std::string &, bool, int, bool) { return 0; }
-int Module::OnCheckInvite(User*, Channel*) { return 0; }
-int Module::OnCheckKey(User*, Channel*, const std::string&) { return 0; }
-int Module::OnCheckLimit(User*, Channel*) { return 0; }
-int Module::OnCheckBan(User*, Channel*) { return 0; }
-int Module::OnCheckExtBan(User *, Channel *, char) { return 0; }
-int Module::OnCheckStringExtBan(const std::string &s, Channel *c, char type) { return 0; }
-int Module::OnStats(char, User*, string_list&) { return 0; }
-int Module::OnChangeLocalUserHost(User*, const std::string&) { return 0; }
-int Module::OnChangeLocalUserGECOS(User*, const std::string&) { return 0; }
-int Module::OnLocalTopicChange(User*, Channel*, const std::string&) { return 0; }
-void Module::OnEvent(Event*) { return; }
-const char* Module::OnRequest(Request*) { return NULL; }
-int Module::OnPassCompare(Extensible* ex, const std::string &password, const std::string &input, const std::string& hashtype) { return 0; }
-void Module::OnGlobalOper(User*) { }
-void Module::OnPostConnect(User*) { }
-int Module::OnAddBan(User*, Channel*, const std::string &) { return 0; }
-int Module::OnDelBan(User*, Channel*, const std::string &) { return 0; }
-void Module::OnRawSocketAccept(int, const std::string&, int) { }
-int Module::OnRawSocketWrite(int, const char*, int) { return 0; }
-void Module::OnRawSocketClose(int) { }
-void Module::OnRawSocketConnect(int) { }
-int Module::OnRawSocketRead(int, char*, unsigned int, int&) { return 0; }
-void Module::OnUserMessage(User*, void*, int, const std::string&, char, const CUList&) { }
-void Module::OnUserNotice(User*, void*, int, const std::string&, char, const CUList&) { }
-void Module::OnRemoteKill(User*, User*, const std::string&, const std::string&) { }
-void Module::OnUserInvite(User*, User*, Channel*, time_t) { }
-void Module::OnPostLocalTopicChange(User*, Channel*, const std::string&) { }
-void Module::OnGetServerDescription(const std::string&, std::string&) { }
-void Module::OnSyncUser(User*, Module*, void*) { }
-void Module::OnSyncChannel(Channel*, Module*, void*) { }
-void Module::ProtoSendMode(void*, TargetTypeFlags, void*, const std::string&, const std::vector<TranslateType>&) { }
-void Module::OnSyncChannelMetaData(Channel*, Module*, void*, const std::string&, bool) { }
-void Module::OnSyncUserMetaData(User*, Module*, void*, const std::string&, bool) { }
-void Module::OnSyncOtherMetaData(Module*, void*, bool) { }
-void Module::OnDecodeMetaData(int, void*, const std::string&, const std::string&) { }
-void Module::ProtoSendMetaData(void*, TargetTypeFlags, void*, const std::string&, const std::string&) { }
-void Module::OnWallops(User*, const std::string&) { }
-void Module::OnChangeHost(User*, const std::string&) { }
-void Module::OnChangeName(User*, const std::string&) { }
-void Module::OnAddLine(User*, XLine*) { }
-void Module::OnDelLine(User*, XLine*) { }
-void Module::OnExpireLine(XLine*) { }
-void Module::OnCleanup(int, void*) { }
-int Module::OnChannelPreDelete(Channel*) { return 0; }
-void Module::OnChannelDelete(Channel*) { }
-int Module::OnSetAway(User*, const std::string &) { return 0; }
-int Module::OnUserList(User*, Channel*, CUList*&) { return 0; }
-int Module::OnWhoisLine(User*, User*, int&, std::string&) { return 0; }
-void Module::OnBuildExemptList(MessageType, Channel*, User*, char, CUList&, const std::string&) { }
-void Module::OnGarbageCollect() { }
-void Module::OnBufferFlushed(User*) { }
-void Module::OnText(User*, void*, int, const std::string&, char, CUList&) { }
-void Module::OnRunTestSuite() { }
-void Module::OnNamesListItem(User*, User*, Channel*, std::string&, std::string&) { }
-int Module::OnNumeric(User*, unsigned int, const std::string&) { return 0; }
-void Module::OnHookUserIO(User*, const std::string&) { }
-bool Module::OnHostCycle(User* user) { return false; }
-
-ModuleManager::ModuleManager(InspIRCd* Ins) : ModCount(0), Instance(Ins)