]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_globops.cpp
dz is determined to crash your ircd :P
[user/henk/code/inspircd.git] / src / modules / m_globops.cpp
1 /*       +------------------------------------+
2  *       | Inspire Internet Relay Chat Daemon |
3  *       +------------------------------------+
4  *
5  *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
6  * See: http://www.inspircd.org/wiki/index.php/Credits
7  *
8  * This program is free but copyrighted software; see
9  *            the file COPYING for details.
10  *
11  * ---------------------------------------------------
12  */
13
14 // Globops and +g support module by C.J.Edwards
15
16 #include "inspircd.h"
17
18 /* $ModDesc: Provides support for GLOBOPS and user mode +g */
19
20 /** Handle /GLOBOPS
21  */
22 class cmd_globops : public command_t
23 {
24  public:
25         cmd_globops (InspIRCd* Instance) : command_t(Instance,"GLOBOPS",'o',1)
26         {
27                 this->source = "m_globops.so";
28                 syntax = "<any-text>";
29                 TRANSLATE2(TR_TEXT, TR_END);
30         }
31
32         CmdResult Handle (const char** parameters, int pcnt, userrec *user)
33         {
34                 std::string line = "From " + std::string(user->nick) + ": ";
35                 for (int i = 0; i < pcnt; i++)
36                 {
37                         line = line + std::string(parameters[i]) + " ";
38                 }
39                 ServerInstance->SNO->WriteToSnoMask('g',line);
40
41                 /* route it (ofc :p) */
42                 return CMD_SUCCESS;
43         }
44 };
45
46 class ModuleGlobops : public Module
47 {
48         cmd_globops* mycommand;
49  public:
50         ModuleGlobops(InspIRCd* Me)
51                 : Module(Me)
52         {
53                 mycommand = new cmd_globops(ServerInstance);
54                 ServerInstance->AddCommand(mycommand);
55                 ServerInstance->SNO->EnableSnomask('g',"GLOBOPS");
56         }
57         
58         virtual ~ModuleGlobops()
59         {
60                 ServerInstance->SNO->DisableSnomask('g');
61         }
62         
63         virtual Version GetVersion()
64         {
65                 return Version(1, 1, 0, 1, VF_COMMON | VF_VENDOR, API_VERSION);
66         }
67
68         void Implements(char* List)
69         {
70         }
71 };
72
73 MODULE_INIT(ModuleGlobops)