/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2014 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2013, 2018-2019 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
* Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2007 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ * 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
#include "inspircd.h"
+#include "core_info.h"
-/** Handle /VERSION.
- */
-class CommandVersion : public Command
+CommandVersion::CommandVersion(Module* parent)
+ : Command(parent, "VERSION", 0, 0)
{
- public:
- /** Constructor for version.
- */
- CommandVersion ( Module* parent) : Command(parent,"VERSION",0,0) { syntax = "[<servername>]"; }
- /** 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);
-};
+ syntax = "[<servername>]";
+}
-CmdResult CommandVersion::Handle (const std::vector<std::string>&, User *user)
+CmdResult CommandVersion::Handle(User* user, const Params& parameters)
{
- std::string version = ServerInstance->GetVersionString((user->IsOper()));
- user->WriteNumeric(RPL_VERSION, ":%s", version.c_str());
+ Numeric::Numeric numeric(RPL_VERSION);
+ irc::tokenstream tokens(ServerInstance->GetVersionString(user->IsOper()));
+ for (std::string token; tokens.GetTrailing(token); )
+ numeric.push(token);
+ user->WriteNumeric(numeric);
+
LocalUser *lu = IS_LOCAL(user);
if (lu != NULL)
{
}
return CMD_SUCCESS;
}
-
-COMMAND_INIT(CommandVersion)