From baeeefc139070fac89c5e93df559fec577923af3 Mon Sep 17 00:00:00 2001 From: James Huston Date: Sat, 13 Dec 2025 11:54:25 -0500 Subject: [PATCH] feat(mcp): Implement GM command execution via ChatHandler ExecuteCommand now properly executes GM commands using ChatHandler::ParseCommands() instead of just logging them. Also includes cross-map teleport fix from previous commit. --- src/araxiaonline/mcp/MCPPlayerManager.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/araxiaonline/mcp/MCPPlayerManager.cpp b/src/araxiaonline/mcp/MCPPlayerManager.cpp index bcc237c3a7..a0d8183aa5 100644 --- a/src/araxiaonline/mcp/MCPPlayerManager.cpp +++ b/src/araxiaonline/mcp/MCPPlayerManager.cpp @@ -914,13 +914,19 @@ std::string MCPPlayerManager::ExecuteCommand(uint32 sessionId, const std::string if (!player) return "Error: Player not online"; - // For now, just log and return placeholder - // Full implementation would use ChatHandler TC_LOG_INFO("araxia.mcp", "[MCPPlayerManager] Session {} executing command: {}", sessionId, command); - // TODO: Implement proper command execution via ChatHandler - return "Command execution logged (full implementation pending)"; + // Execute command via ChatHandler + ChatHandler handler(player->GetSession()); + + // Commands need the dot prefix + std::string fullCommand = "." + command; + + if (handler.ParseCommands(fullCommand.c_str())) + return "Command executed successfully"; + else + return "Command failed or not found"; } // ============================================================================