summaryrefslogtreecommitdiff
path: root/src/game-server/commandhandler.cpp
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2009-03-06 16:12:14 +0000
committerDavid Athay <ko2fan@gmail.com>2009-03-06 16:12:14 +0000
commit3aabbb7ae82c818f584d95460181f70e05d41f32 (patch)
treeb4be67c52cac4e4633e719226eff3ba451e4e001 /src/game-server/commandhandler.cpp
parent6f60667b2671104365c7fcfa7866064e04d50156 (diff)
downloadmanaserv-3aabbb7ae82c818f584d95460181f70e05d41f32.tar.gz
manaserv-3aabbb7ae82c818f584d95460181f70e05d41f32.tar.bz2
manaserv-3aabbb7ae82c818f584d95460181f70e05d41f32.tar.xz
manaserv-3aabbb7ae82c818f584d95460181f70e05d41f32.zip
Added transactional history to game server.
Diffstat (limited to 'src/game-server/commandhandler.cpp')
-rw-r--r--src/game-server/commandhandler.cpp43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/game-server/commandhandler.cpp b/src/game-server/commandhandler.cpp
index 3c716da5..3e61fe8f 100644
--- a/src/game-server/commandhandler.cpp
+++ b/src/game-server/commandhandler.cpp
@@ -34,6 +34,8 @@
#include "monstermanager.hpp"
#include "state.hpp"
+#include "../common/transaction.hpp"
+
#include "../utils/string.hpp"
static void say(const std::string error, Character *player)
@@ -132,6 +134,7 @@ static void handleHelp(Character *player, std::string &args)
say("@reload", player);
say("@setgroup <character> <AL level>", player);
say("@announce <message>", player);
+ say("@history <number of transactions>", player);
}
}
else
@@ -220,6 +223,10 @@ static void handleWarp(Character *player, std::string &args)
// now warp the player
GameState::warp(other, map, x, y);
+
+ // log transaction
+ std::string msg = "User warped to " + xstr + "x" + ystr;
+ accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_WARP, msg);
}
static void handleItem(Character *player, std::string &args)
@@ -293,6 +300,11 @@ static void handleItem(Character *player, std::string &args)
// insert the item into the inventory
Inventory(other).insert(ic->getDatabaseID(), value);
+
+ // log transaction
+ std::stringstream str;
+ str << "User created item " << ic->getDatabaseID();
+ accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_ITEM, str.str());
}
static void handleDrop(Character *player, std::string &args)
@@ -344,6 +356,11 @@ static void handleDrop(Character *player, std::string &args)
item->setMap(player->getMap());
item->setPosition(player->getPosition());
GameState::insertSafe(item);
+
+ // log transaction
+ std::stringstream str;
+ str << "User created item " << ic->getDatabaseID();
+ accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_DROP, str.str());
}
static void handleMoney(Character *player, std::string &args)
@@ -391,6 +408,10 @@ static void handleMoney(Character *player, std::string &args)
// change how much money the player has
Inventory(other).changeMoney(value);
+
+ // log transaction
+ std::string msg = "User created " + valuestr + " money";
+ accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_MONEY, msg);
}
static void handleSpawn(Character *player, std::string &args)
@@ -451,6 +472,10 @@ static void handleSpawn(Character *player, std::string &args)
// The map is full. Break out.
break;
}
+
+ // log transaction
+ std::string msg = "User created monster " + monster->getName();
+ accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_SPAWN, msg);
}
}
@@ -562,6 +587,10 @@ static void handleBan(Character *player, std::string &args)
// ban the player
accountHandler->banCharacter(other, length);
+
+ // log transaction
+ std::string msg = "User banned " + other->getName();
+ accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_BAN, msg);
}
static void handleSetGroup(Character *player, std::string &args)
@@ -628,6 +657,10 @@ static void handleSetGroup(Character *player, std::string &args)
// change the player's account level
accountHandler->changeAccountLevel(other, level);
+
+ // log transaction
+ std::string msg = "User changed account level of " + other->getName() + " to " + levelstr;
+ accountHandler->sendTransaction(player->getDatabaseID(), TRANS_CMD_SETGROUP, msg);
}
static void handleAttribute(Character *player, std::string &args)
@@ -750,7 +783,10 @@ static void handleRights(Character *player)
say(str.str(), player);
}
-
+static void handleHistory(Character *player, std::string args)
+{
+ // TODO: Get args number of transactions and show them to the player
+}
void CommandHandler::handleCommand(Character *player,
const std::string &command)
@@ -842,6 +878,11 @@ void CommandHandler::handleCommand(Character *player,
if (checkPermission(player, AL_ADMIN))
handleAnnounce(player, args);
}
+ else if (type == "history")
+ {
+ if (checkPermission(player, AL_ADMIN))
+ handleHistory(player, args);
+ }
else
{
say("Command not found. Enter @help to view the list of available commands.", player);