|
|||
|
|||
|
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> ¶meters, 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)