The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

m_globops.cpp

Go to the documentation of this file.
00001 /*       +------------------------------------+
00002  *       | Inspire Internet Relay Chat Daemon |
00003  *       +------------------------------------+
00004  *
00005  *  InspIRCd: (C) 2002-2008 InspIRCd Development Team
00006  * See: http://www.inspircd.org/wiki/index.php/Credits
00007  *
00008  * This program is free but copyrighted software; see
00009  *            the file COPYING for details.
00010  *
00011  * ---------------------------------------------------
00012  */
00013 
00014 // Globops and +g support module by C.J.Edwards
00015 
00016 #include "inspircd.h"
00017 
00018 /* $ModDesc: Provides support for GLOBOPS and user mode +g */
00019 
00022 class CommandGlobops : public Command
00023 {
00024  public:
00025         CommandGlobops (InspIRCd* Instance) : Command(Instance,"GLOBOPS","o",1)
00026         {
00027                 this->source = "m_globops.so";
00028                 syntax = "<any-text>";
00029                 TRANSLATE2(TR_TEXT, TR_END);
00030         }
00031 
00032         CmdResult Handle (const std::vector<std::string> &parameters, User *user)
00033         {
00034                 std::string line = "From " + std::string(user->nick) + ": ";
00035                 for (int i = 0; i < (int)parameters.size(); i++)
00036                 {
00037                         line = line + parameters[i] + " ";
00038                 }
00039                 ServerInstance->SNO->WriteToSnoMask('g',line);
00040 
00041                 /* route it (ofc :p) */
00042                 return CMD_SUCCESS;
00043         }
00044 };
00045 
00046 class ModuleGlobops : public Module
00047 {
00048         CommandGlobops* mycommand;
00049  public:
00050         ModuleGlobops(InspIRCd* Me)
00051                 : Module(Me)
00052         {
00053                 mycommand = new CommandGlobops(ServerInstance);
00054                 ServerInstance->AddCommand(mycommand);
00055                 ServerInstance->SNO->EnableSnomask('g',"GLOBOPS");
00056 
00057         }
00058 
00059         virtual ~ModuleGlobops()
00060         {
00061                 ServerInstance->SNO->DisableSnomask('g');
00062         }
00063 
00064         virtual Version GetVersion()
00065         {
00066                 return Version("$Id: m_globops.cpp 10291 2008-08-25 20:35:51Z w00t $", VF_COMMON | VF_VENDOR, API_VERSION);
00067         }
00068 
00069 };
00070 
00071 MODULE_INIT(ModuleGlobops)