/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ * Copyright (C) 2013, 2018-2020 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2012 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
+ * Copyright (C) 2007-2008 Dennis Friis <peavey@inspircd.org>
* Copyright (C) 2007 Robin Burchell <robin+git@viroteck.net>
- * Copyright (C) 2004-2006 Craig Edwards <craigedwards@brainbox.cc>
+ * Copyright (C) 2006, 2010 Craig Edwards <brain@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
*/
-// Globops and +g support module by C.J.Edwards
+// Globops and snomask +g module by C.J.Edwards
#include "inspircd.h"
-/* $ModDesc: Provides support for GLOBOPS and user mode +g */
-
/** Handle /GLOBOPS
*/
class CommandGlobops : public Command
public:
CommandGlobops(Module* Creator) : Command(Creator,"GLOBOPS", 1,1)
{
- flags_needed = 'o'; syntax = "<any-text>";
- TRANSLATE2(TR_TEXT, TR_END);
+ flags_needed = 'o';
+ syntax = ":<message>";
}
- CmdResult Handle (const std::vector<std::string> ¶meters, User *user)
+ CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
{
- std::string line = "From " + std::string(user->nick) + ": ";
- for (int i = 0; i < (int)parameters.size(); i++)
+ if (parameters[0].empty())
{
- line = line + parameters[i] + " ";
+ user->WriteNumeric(ERR_NOTEXTTOSEND, "No text to send");
+ return CMD_FAILURE;
}
- ServerInstance->SNO->WriteGlobalSno('g',line);
+ ServerInstance->SNO->WriteGlobalSno('g', "From " + user->nick + ": " + parameters[0]);
return CMD_SUCCESS;
}
};
public:
ModuleGlobops() : cmd(this) {}
- void init()
+ void init() CXX11_OVERRIDE
{
- ServerInstance->AddCommand(&cmd);
ServerInstance->SNO->EnableSnomask('g',"GLOBOPS");
}
- virtual Version GetVersion()
+ Version GetVersion() CXX11_OVERRIDE
{
- return Version("Provides support for GLOBOPS and user mode +g", VF_VENDOR);
+ return Version("Adds the /GLOBOPS command which allows server operators to send messages to all server operators with the g (globops) snomask.", VF_VENDOR);
}
-
};
MODULE_INIT(ModuleGlobops)