]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands.cpp
Use CommandBase::Params instead of std::vector<std::string>.
[user/henk/code/inspircd.git] / src / commands.cpp
index c72a5dc73b09a11255839dca6811508656f95d44..c5b34c72f0e655d3c8a64e557c75252e5141ace1 100644 (file)
 
 #include "inspircd.h"
 
-CmdResult SplitCommand::Handle(const std::vector<std::string>& parms, User* u)
+CmdResult SplitCommand::Handle(User* user, const Params& parameters)
 {
-       if (IS_LOCAL(u))
-               return HandleLocal(parms, IS_LOCAL(u));
-       if (IS_REMOTE(u))
-               return HandleRemote(parms, IS_REMOTE(u));
-       if (IS_SERVER(u))
-               return HandleServer(parms, IS_SERVER(u));
-       ServerInstance->Logs->Log("COMMAND", LOG_DEFAULT, "Unknown user type in command (uuid=%s)!", u->uuid.c_str());
+       switch (user->usertype)
+       {
+               case USERTYPE_LOCAL:
+                       return HandleLocal(static_cast<LocalUser*>(user), parameters);
+
+               case USERTYPE_REMOTE:
+                       return HandleRemote(static_cast<RemoteUser*>(user), parameters);
+
+               case USERTYPE_SERVER:
+                       return HandleServer(static_cast<FakeUser*>(user), parameters);
+       }
+
+       ServerInstance->Logs->Log("COMMAND", LOG_DEFAULT, "Unknown user type %d in command (uuid=%s)!",
+               user->usertype, user->uuid.c_str());
        return CMD_INVALID;
 }
 
-CmdResult SplitCommand::HandleLocal(const std::vector<std::string>&, LocalUser*)
+CmdResult SplitCommand::HandleLocal(LocalUser* user, const Params& parameters)
 {
        return CMD_INVALID;
 }
 
-CmdResult SplitCommand::HandleRemote(const std::vector<std::string>&, RemoteUser*)
+CmdResult SplitCommand::HandleRemote(RemoteUser* user, const Params& parameters)
 {
        return CMD_INVALID;
 }
 
-CmdResult SplitCommand::HandleServer(const std::vector<std::string>&, FakeUser*)
+CmdResult SplitCommand::HandleServer(FakeUser* user, const Params& parameters)
 {
        return CMD_INVALID;
 }