]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_globops.cpp
efe50731d3b9b480ea11863aa5a13b22f447c550
[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         }
30
31         CmdResult Handle (const char** parameters, int pcnt, userrec *user)
32         {
33                 std::string line = "From " + std::string(user->nick) + ": ";
34                 for (int i = 0; i < pcnt; i++)
35                 {
36                         line = line + std::string(parameters[i]) + " ";
37                 }
38                 ServerInstance->SNO->WriteToSnoMask('g',line);
39
40                 /* route it (ofc :p) */
41                 return CMD_SUCCESS;
42         }
43 };
44
45 class ModuleGlobops : public Module
46 {
47         cmd_globops* mycommand;
48  public:
49         ModuleGlobops(InspIRCd* Me)
50                 : Module(Me)
51         {
52                 mycommand = new cmd_globops(ServerInstance);
53                 ServerInstance->AddCommand(mycommand);
54                 ServerInstance->SNO->EnableSnomask('g',"GLOBOPS");
55         }
56         
57         virtual ~ModuleGlobops()
58         {
59                 ServerInstance->SNO->DisableSnomask('g');
60         }
61         
62         virtual Version GetVersion()
63         {
64                 return Version(1, 1, 0, 1, VF_COMMON | VF_VENDOR, API_VERSION);
65         }
66
67         void Implements(char* List)
68         {
69         }
70 };
71
72 MODULE_INIT(ModuleGlobops)