From 4ead8e0b6af924132a6fb227325a868db0df335c Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Mon, 27 Dec 2010 21:57:25 +0100 Subject: Implemented @log and @logsay commands. The @log command is the equivalent to tmwAthena's @l. It allows to log a text as a transaction for documentation purpose. The @logsay command works like @t on tmwAthena. It says something in public chat while also logging it as a separate trasaction. Reviewed-by: Thorbjorn --- src/game-server/commandhandler.cpp | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/game-server/commandhandler.cpp') diff --git a/src/game-server/commandhandler.cpp b/src/game-server/commandhandler.cpp index ef0b6017..8e36c7ed 100644 --- a/src/game-server/commandhandler.cpp +++ b/src/game-server/commandhandler.cpp @@ -70,6 +70,8 @@ static void handleMute(Character*, std::string&); static void handleDie(Character*, std::string&); static void handleKill(Character*, std::string&); static void handleKick(Character*, std::string&); +static void handleLog(Character*, std::string&); +static void handleLogsay(Character*, std::string&); static CmdRef const cmdRef[] = { @@ -119,6 +121,10 @@ static CmdRef const cmdRef[] = "Kills the character.", &handleKill}, {"kick", "", "Disconnects the client of character.", &handleKick}, + {"log", "", + "Logs a message to the transaction log.", &handleLog}, + {"logsay", "", + "Says something in public chat while logging it to the transaction log.", &handleLogsay}, {NULL, NULL, NULL, NULL} }; @@ -1189,6 +1195,42 @@ static void handleKick(Character *player, std::string &args) } +static void handleLog(Character *player, std::string &msg) +{ + if (msg == "") + { + say("Invalid number of arguments given.", player); + say("Usage: @log ", player); + return; + } + + // log transaction + std::string logmsg = "[silent] " + msg; + accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_LOG, logmsg); + + // send feedback + say("Message logged", player); +} + +static void handleLogsay(Character *player, std::string &msg) +{ + if (msg == "") + { + say("Invalid number of arguments given.", player); + say("Usage: @logsay ", player); + return; + } + + GameState::sayAround(player, msg); + + // log transaction + std::string logmsg = "[public] " + msg; + accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_LOG, logmsg); + + // send feedback + say("Message logged", player); +} + void CommandHandler::handleCommand(Character *player, const std::string &command) -- cgit v1.2.3-70-g09d2