X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_conn_lusers.cpp;h=2d982301546310883b416e0fb79c27908c8ef58f;hb=4cb2be033bbb0eafc7ee4fa579daf7ccaca8860b;hp=c0106566a2f640d98dcfb41782ae34bedf2fe8c1;hpb=ab01aaeeee9aed655df2eec2522072233fe3aa57;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_conn_lusers.cpp b/src/modules/m_conn_lusers.cpp index c0106566a..2d9823015 100644 --- a/src/modules/m_conn_lusers.cpp +++ b/src/modules/m_conn_lusers.cpp @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * Inspire is copyright (C) 2002-2004 ChatSpike-Dev. + * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev. * E-mail: * * @@ -32,24 +32,43 @@ class ModuleConnLUSERS : public Module Server *Srv; public: - ModuleConnLUSERS() + ModuleConnLUSERS(Server* Me) + : Module::Module(Me) { - Srv = new Server; + Srv = Me; } virtual ~ModuleConnLUSERS() { - delete Srv; } virtual Version GetVersion() { return Version(1,0,0,1,VF_VENDOR); } + + void Implements(char* List) + { + List[I_OnUserConnect] = 1; + } virtual void OnUserConnect(userrec* user) { - Srv->CallCommandHandler("LUSERS", NULL, 0, user); + // if we're using a protocol module, we cant just call + // the command handler because the protocol module + // has hooked it. We must call OnPreCommand in the + // protocol module. Yes, at some point there will + // be a way to get the current protocol module's name + // from the core and probably a pointer to its class. + Module* Proto = Srv->FindModule("m_spanningtree.so"); + if (Proto) + { + Proto->OnPreCommand("LUSERS", NULL, 0, user, true); + } + else + { + Srv->CallCommandHandler("LUSERS", NULL, 0, user); + } } }; @@ -70,9 +89,9 @@ class ModuleConnLUSERSFactory : public ModuleFactory { } - virtual Module * CreateModule() + virtual Module * CreateModule(Server* Me) { - return new ModuleConnLUSERS; + return new ModuleConnLUSERS(Me); } };