CommandManager.cpp 870 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "server/CommandManager.h"
  2. #include "server/commands/TestCommand.h"
  3. #include "server/CommandUtils.h"
  4. CommandManager::CommandManager()
  5. {
  6. registerCommand(new TestCommand());
  7. }
  8. CommandManager::~CommandManager()
  9. {
  10. }
  11. void CommandManager::registerCommand(BaseCommand* command)
  12. {
  13. commands.insert(pair<string, unique_ptr<BaseCommand>> (command->getName(), command));
  14. }
  15. void CommandManager::execute(ICommandSource& cs, const string& rawCommand) const
  16. {
  17. vector<string> args;
  18. string command;
  19. if(CommandUtils::splitString(rawCommand, command, args))
  20. {
  21. cout << "Invalid command syntax: '" << rawCommand << "'" << endl;
  22. return;
  23. }
  24. if(commands.find(command) == commands.end())
  25. {
  26. cout << "Unknown command: '" << command << "'" << endl;
  27. return;
  28. }
  29. commands.begin()->second->execute(cs, args);
  30. }