#include "inspircd.h"
+#include "core_info.h"
-/** Handle /COMMANDS.
- */
-class CommandCommands : public Command
+CommandCommands::CommandCommands(Module* parent)
+ : Command(parent, "COMMANDS", 0, 0)
{
- public:
- /** Constructor for commands.
- */
- CommandCommands(Module* parent) : Command(parent,"COMMANDS",0,0)
- {
- Penalty = 3;
- }
-
- /** Handle command.
- * @param parameters The parameters to the command
- * @param user The user issuing the command
- * @return A value from CmdResult to indicate command success or failure.
- */
- CmdResult Handle(const std::vector<std::string>& parameters, User *user);
-};
+ Penalty = 3;
+}
/** Handle /COMMANDS
*/
CmdResult CommandCommands::Handle (const std::vector<std::string>&, User *user)
{
+ const CommandParser::CommandMap& commands = ServerInstance->Parser.GetCommands();
std::vector<std::string> list;
- list.reserve(ServerInstance->Parser->cmdlist.size());
- for (Commandtable::iterator i = ServerInstance->Parser->cmdlist.begin(); i != ServerInstance->Parser->cmdlist.end(); i++)
+ list.reserve(commands.size());
+ for (CommandParser::CommandMap::const_iterator i = commands.begin(); i != commands.end(); ++i)
{
// Don't show S2S commands to users
if (i->second->flags_needed == FLAG_SERVERONLY)
RPL_COMMANDS, user->nick.c_str(), i->second->name.c_str(), src->ModuleSourceFile.c_str(),
i->second->min_params, i->second->Penalty));
}
- sort(list.begin(), list.end());
+ std::sort(list.begin(), list.end());
for(unsigned int i=0; i < list.size(); i++)
user->Write(list[i]);
user->WriteNumeric(RPL_COMMANDSEND, ":End of COMMANDS list");
return CMD_SUCCESS;
}
-
-COMMAND_INIT(CommandCommands)