summaryrefslogtreecommitdiff
path: root/src/account-server/accounthandler.cpp
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2009-03-05 14:30:19 +0000
committerDavid Athay <ko2fan@gmail.com>2009-03-05 14:30:19 +0000
commitbe548ff54b8fa60a8a778714cd8fa5326722c0aa (patch)
tree5b68e5363fd592b4402944c298f77f3bf2b60f0e /src/account-server/accounthandler.cpp
parent30a6139d35938d9e86b33e32d5e5b111a16db937 (diff)
downloadmanaserv-be548ff54b8fa60a8a778714cd8fa5326722c0aa.tar.gz
manaserv-be548ff54b8fa60a8a778714cd8fa5326722c0aa.tar.bz2
manaserv-be548ff54b8fa60a8a778714cd8fa5326722c0aa.tar.xz
manaserv-be548ff54b8fa60a8a778714cd8fa5326722c0aa.zip
Added transactional history
Diffstat (limited to 'src/account-server/accounthandler.cpp')
-rw-r--r--src/account-server/accounthandler.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/account-server/accounthandler.cpp b/src/account-server/accounthandler.cpp
index 27d96176..a1280e35 100644
--- a/src/account-server/accounthandler.cpp
+++ b/src/account-server/accounthandler.cpp
@@ -28,6 +28,7 @@
#include "account-server/character.hpp"
#include "account-server/dalstorage.hpp"
#include "account-server/serverhandler.hpp"
+#include "account-server/transaction.hpp"
#include "chat-server/chathandler.hpp"
#include "common/configuration.hpp"
#include "net/connectionhandler.hpp"
@@ -604,6 +605,14 @@ static void handleCharacterCreateMessage(AccountClient &computer, MessageIn &msg
LOG_INFO("Character " << name << " was created for "
<< acc->getName() << "'s account.");
+ // log transaction
+ Transaction trans;
+ trans.mCharacterId = newCharacter->getDatabaseID();
+ trans.mAction = TRANS_CHAR_CREATE;
+ trans.mMessage = acc->getName() + " created character ";
+ trans.mMessage.append(" called " + name);
+ storage->addTransaction(trans);
+
storage->flush(acc); // flush changes
reply.writeByte(ERRMSG_OK);
computer.send(reply);
@@ -674,6 +683,13 @@ static void handleCharacterSelectMessage(AccountClient &computer, MessageIn &msg
registerChatClient(magic_token, selectedChar->getName(), acc->getLevel());
computer.send(reply);
+
+ // log transaction
+ Transaction trans;
+ trans.mCharacterId = selectedChar->getDatabaseID();
+ trans.mAction = TRANS_CHAR_SELECTED;
+ trans.mMessage = "";
+ storage->addTransaction(trans);
}
static void handleCharacterDeleteMessage(AccountClient &computer, MessageIn &msg)
@@ -707,6 +723,14 @@ static void handleCharacterDeleteMessage(AccountClient &computer, MessageIn &msg
reply.writeByte(ERRMSG_OK);
computer.send(reply);
+
+ // log transaction
+ Transaction trans;
+ trans.mCharacterId = chars[charNum]->getDatabaseID();
+ trans.mAction = TRANS_CHAR_DELETED;
+ trans.mMessage = chars[charNum]->getName() + " deleted by ";
+ trans.mMessage.append(acc->getName());
+ storage->addTransaction(trans);
}
void