]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_antibear.cpp
Tidy up strlens which are not required
[user/henk/code/inspircd.git] / src / modules / m_antibear.cpp
1 /*       +------------------------------------+
2  *       | Inspire Internet Relay Chat Daemon |
3  *       +------------------------------------+
4  *
5  *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
6  *                     E-mail:
7  *              <brain@chatspike.net>
8  *                <Craig@chatspike.net>
9  *     
10  * Written by Craig Edwards, Craig McLure, and others.
11  * This program is free but copyrighted software; see
12  *          the file COPYING for details.
13  *
14  * ---------------------------------------------------
15  */
16
17 using namespace std;
18
19 #include "users.h"
20 #include "channels.h"
21 #include "modules.h"
22
23
24 /* $ModDesc: Sends a numeric on connect which cripples a common type of trojan/spambot */
25
26 class ModuleAntiBear : public Module
27 {
28  private:
29
30  public:
31         ModuleAntiBear(InspIRCd* Me) : Module::Module(Me)
32         {
33                 
34         }
35         
36         virtual ~ModuleAntiBear()
37         {
38         }
39         
40         virtual Version GetVersion()
41         {
42                 return Version(1,0,0,0,VF_VENDOR,API_VERSION);
43         }
44
45         void Implements(char* List)
46         {
47                 List[I_OnUserRegister] = 1;
48         }
49         
50         virtual void OnUserRegister(userrec* user)
51         {
52                 user->WriteServ("439 %s :This server has anti-spambot mechanisms enabled.", user->nick);
53                 user->WriteServ("931 %s :Malicious bots, spammers, and other automated systems of dubious origin are NOT welcome here.", user->nick);
54         }
55 };
56
57 class ModuleAntiBearFactory : public ModuleFactory
58 {
59  public:
60         ModuleAntiBearFactory()
61         {
62         }
63         
64         ~ModuleAntiBearFactory()
65         {
66         }
67         
68         virtual Module * CreateModule(InspIRCd* Me)
69         {
70                 return new ModuleAntiBear(Me);
71         }
72         
73 };
74
75
76 //
77 // The "C" linkage factory0() function creates the ModuleAntiBearFactory
78 // class for this library
79 //
80
81 extern "C" void * init_module( void )
82 {
83         return new ModuleAntiBearFactory;
84 }