]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_foobar.cpp
Update all wiki links to point to the new wiki. This was done automatically with...
[user/henk/code/inspircd.git] / src / modules / m_foobar.cpp
index 81757799c17a351a94864f85762aa54aa0ed20ad..7cb8ba2fc8fdc7020ebd4d73953f6d1da2635894 100644 (file)
@@ -2,23 +2,16 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
- *                       E-mail:
- *                <brain@chatspike.net>
- *               <Craig@chatspike.net>
- *     
- * Written by Craig Edwards, Craig McLure, and others.
+ *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * See: http://wiki.inspircd.org/Credits
+ *
  * This program is free but copyrighted software; see
  *            the file COPYING for details.
  *
  * ---------------------------------------------------
  */
 
-using namespace std;
-
-#include "users.h"
-#include "channels.h"
-#include "modules.h"
+#include "inspircd.h"
 
 /* $ModDesc: A dummy module for testing */
 
@@ -28,104 +21,77 @@ using namespace std;
 class ModuleFoobar : public Module
 {
  private:
-        
+
         // It is recommended that your class makes use of one or more Server
         // objects. A server object is a class which contains methods which
         // encapsulate the exports from the core of the ircd.
         // such methods include Debug, SendChannel, etc.
-        Server *Srv;
+
+
  public:
-       ModuleFoobar()
+       ModuleFoobar(InspIRCd* Me)
+               : Module(Me)
        {
-               // The constructor just creates an instance of the server class
-       
-               Srv = new Server;
+               // The constructor just makes a copy of the server class
+
+
+               Implementation eventlist[] = { I_OnUserConnect, I_OnUserQuit, I_OnUserJoin, I_OnUserPart, I_OnUserPreJoin };
+               ServerInstance->Modules->Attach(eventlist, this, 5);
        }
-       
+
        virtual ~ModuleFoobar()
        {
-               // destructor deletes the instance of the server class
-       
-               delete Srv;
        }
-       
+
        virtual Version GetVersion()
        {
                // this method instantiates a class of type Version, and returns
                // the modules version information using it.
-       
-               return Version(1,0,0,1,VF_VENDOR);
+
+               return Version("$Id$", VF_VENDOR, API_VERSION);
        }
-       
-       virtual void OnUserConnect(userrec* user)
+
+
+       virtual void OnUserConnect(User* user)
        {
                // method called when a user connects
-       
+
                std::string b = user->nick;
-               Srv->Log(DEBUG,"Foobar: User connecting: " + b);
+               ServerInstance->Logs->Log("m_foobar",DEBUG,"Foobar: User connecting: "+b);
        }
 
-       virtual void OnUserQuit(userrec* user)
+       virtual void OnUserQuit(User* user, const std::string &reason, const std::string &oper_message)
        {
                // method called when a user disconnects
-       
+
                std::string b = user->nick;
-               Srv->Log(DEBUG,"Foobar: User quitting: " + b);
+               ServerInstance->Logs->Log("m_foobar",DEBUG,"Foobar: User quitting: "+b);
        }
-       
-       virtual void OnUserJoin(userrec* user, chanrec* channel)
+
+       virtual void OnUserJoin(User* user, Channel* channel, bool sync, bool &silent)
        {
                // method called when a user joins a channel
-       
+
                std::string c = channel->name;
                std::string b = user->nick;
-               Srv->Log(DEBUG,"Foobar: User " + b + " joined " + c);
+               ServerInstance->Logs->Log("m_foobar",DEBUG,"Foobar: User "+b+" joined "+c);
        }
 
-       virtual void OnUserPart(userrec* user, chanrec* channel)
+       virtual void OnUserPart(User* user, Channel* channel, std::string &partreason, bool &silent)
        {
                // method called when a user parts a channel
-       
+
                std::string c = channel->name;
                std::string b = user->nick;
-               Srv->Log(DEBUG,"Foobar: User " + b + " parted " + c);
+               ServerInstance->Logs->Log("m_foobar",DEBUG,"Foobar: User "+b+" parted "+c);
        }
 
-};
-
-
-//
-// The ModuleFoobarFactory class inherits from ModuleFactory
-// and creates a ModuleFoobar object when requested.
-//
-
-class ModuleFoobarFactory : public ModuleFactory
-{
- public:
-       ModuleFoobarFactory()
-       {
-       }
-       
-       ~ModuleFoobarFactory()
+       virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven)
        {
+               return 0;
        }
-       
-       virtual Module * CreateModule()
-       {
-               return new ModuleFoobar;
-       }
-       
 };
 
 
-//
-// The "C" linkage factory0() function creates the ModuleFoobarFactory
-// class for this library
-//
-
-extern "C" void * init_module( void )
-{
-       return new ModuleFoobarFactory;
-}
+MODULE_INIT(ModuleFoobar)