X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_conn_lusers.cpp;h=2d982301546310883b416e0fb79c27908c8ef58f;hb=9dd72b7003963d868a23da930a91300b49ab4959;hp=a16df457018cd45665c213fe921e8a214ac53a6a;hpb=cff3a40e0bce1b8df5e4b4f1eba91c4a2603718a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_conn_lusers.cpp b/src/modules/m_conn_lusers.cpp index a16df4570..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: * * @@ -14,6 +14,8 @@ * --------------------------------------------------- */ +using namespace std; + #include "users.h" #include "channels.h" #include "modules.h" @@ -30,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); + } } }; @@ -68,9 +89,9 @@ class ModuleConnLUSERSFactory : public ModuleFactory { } - virtual Module * CreateModule() + virtual Module * CreateModule(Server* Me) { - return new ModuleConnLUSERS; + return new ModuleConnLUSERS(Me); } };