diff --git a/src/ChatManager.cpp b/src/ChatManager.cpp index a387d98..6e98c2d 100644 --- a/src/ChatManager.cpp +++ b/src/ChatManager.cpp @@ -15,7 +15,8 @@ std::vector parseArgs(std::string full) { return std::vector(begin, end); } -bool runCmd(std::string full, std::vector args, CNSocket* sock) { +bool runCmd(std::string full, CNSocket* sock) { + std::vector args = parseArgs(full); std::string cmd = args[0].substr(1, args[0].size() - 1); // check if the command exists @@ -37,7 +38,7 @@ bool runCmd(std::string full, std::vector args, CNSocket* sock) { return false; } -void testCommand(std::string full, std::vector args, CNSocket* sock) { +void testCommand(std::string full, std::vector& args, CNSocket* sock) { ChatManager::sendServerMessage(sock, "Test command is working! Here are your passed args:"); for (std::string arg : args) { @@ -45,7 +46,7 @@ void testCommand(std::string full, std::vector args, CNSocket* sock } } -void accessCommand(std::string full, std::vector args, CNSocket* sock) { +void accessCommand(std::string full, std::vector& args, CNSocket* sock) { ChatManager::sendServerMessage(sock, "Your access level is " + std::to_string(PlayerManager::getPlayer(sock)->accountLevel)); } @@ -71,10 +72,9 @@ void ChatManager::chatHandler(CNSocket* sock, CNPacketData* data) { Player* plr = PlayerManager::getPlayer(sock); std::string fullChat = U16toU8(chat->szFreeChat); - std::vector args = parseArgs(fullChat); - if (args.size() > 0 && args[0][0] == CMD_PREFIX) { // PREFIX - runCmd(fullChat, args, sock); + if (fullChat.length() > 1 && fullChat[0] == CMD_PREFIX) { // PREFIX + runCmd(fullChat, sock); return; } diff --git a/src/ChatManager.hpp b/src/ChatManager.hpp index 82f311a..9b5a821 100644 --- a/src/ChatManager.hpp +++ b/src/ChatManager.hpp @@ -4,7 +4,7 @@ #define CMD_PREFIX '/' -typedef void (*CommandHandler)(std::string fullString, std::vector args, CNSocket* sock); +typedef void (*CommandHandler)(std::string fullString, std::vector& args, CNSocket* sock); struct ChatCommand { int requiredAccLevel;