]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_info/cmd_admin.cpp
Fix incorrect ModResult for noctcp user target.
[user/henk/code/inspircd.git] / src / coremods / core_info / cmd_admin.cpp
index 1f694bf2e7a41d34bd8afec2216c53ac32f270fe..8ef68749a4b1fc60b41248fa4866ec570d973165 100644 (file)
 
 
 #include "inspircd.h"
+#include "core_info.h"
 
-/** Handle /ADMIN.
- */
-class CommandAdmin : public Command
+CommandAdmin::CommandAdmin(Module* parent)
+       : ServerTargetCommand(parent, "ADMIN")
 {
- public:
-       /** Constructor for admin.
-        */
-       CommandAdmin(Module* parent) : Command(parent,"ADMIN",0,0)
-       {
-               Penalty = 2;
-               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);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)
-       {
-               if (parameters.size() > 0)
-                       return ROUTE_UNICAST(parameters[0]);
-               return ROUTE_LOCALONLY;
-       }
-};
+       Penalty = 2;
+       syntax = "[<servername>]";
+}
 
 /** Handle /ADMIN
  */
-CmdResult CommandAdmin::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandAdmin::Handle(User* user, const Params& parameters)
 {
-       if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName)
+       if (parameters.size() > 0 && !irc::equals(parameters[0], ServerInstance->Config->ServerName))
                return CMD_SUCCESS;
-       user->SendText(":%s %03d %s :Administrative info for %s", ServerInstance->Config->ServerName.c_str(),
-               RPL_ADMINME, user->nick.c_str(),ServerInstance->Config->ServerName.c_str());
-       if (!ServerInstance->Config->AdminName.empty())
-               user->SendText(":%s %03d %s :Name     - %s", ServerInstance->Config->ServerName.c_str(),
-                       RPL_ADMINLOC1, user->nick.c_str(), ServerInstance->Config->AdminName.c_str());
-       user->SendText(":%s %03d %s :Nickname - %s", ServerInstance->Config->ServerName.c_str(),
-               RPL_ADMINLOC2, user->nick.c_str(), ServerInstance->Config->AdminNick.c_str());
-       user->SendText(":%s %03d %s :E-Mail   - %s", ServerInstance->Config->ServerName.c_str(),
-               RPL_ADMINEMAIL, user->nick.c_str(), ServerInstance->Config->AdminEmail.c_str());
+       user->WriteRemoteNumeric(RPL_ADMINME, ServerInstance->Config->ServerName, "Administrative info");
+       if (!AdminName.empty())
+               user->WriteRemoteNumeric(RPL_ADMINLOC1, InspIRCd::Format("Name     - %s", AdminName.c_str()));
+       user->WriteRemoteNumeric(RPL_ADMINLOC2, InspIRCd::Format("Nickname - %s", AdminNick.c_str()));
+       user->WriteRemoteNumeric(RPL_ADMINEMAIL, InspIRCd::Format("E-Mail   - %s", AdminEmail.c_str()));
        return CMD_SUCCESS;
 }
-
-COMMAND_INIT(CommandAdmin)