summaryrefslogtreecommitdiff
path: root/src/game-server/gamehandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/gamehandler.cpp')
-rw-r--r--src/game-server/gamehandler.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/game-server/gamehandler.cpp b/src/game-server/gamehandler.cpp
index bd5248bd..3540ac51 100644
--- a/src/game-server/gamehandler.cpp
+++ b/src/game-server/gamehandler.cpp
@@ -34,6 +34,7 @@
#include "game-server/map.hpp"
#include "game-server/mapcomposite.hpp"
#include "game-server/npc.hpp"
+#include "game-server/postman.hpp"
#include "game-server/state.hpp"
#include "game-server/trade.hpp"
#include "net/messagein.hpp"
@@ -449,6 +450,16 @@ void GameHandler::processMessage(NetComputer *comp, MessageIn &message)
computer.character->respawn(); // plausibility check is done by character class
} break;
+ case PGMSG_SEND_POST:
+ {
+ handleSendPost(&computer, message);
+ } break;
+
+ case PGMSG_GET_POST:
+ {
+ handleGetPost(&computer, message);
+ } break;
+
default:
LOG_WARN("Invalid message type");
result.writeShort(XXMSG_INVALID);
@@ -585,3 +596,17 @@ void GameHandler::handleWalk(GameClient *client, MessageIn &message)
client->character->setDestination(dst);
}
+
+void GameHandler::handleSendPost(GameClient *client, MessageIn &message)
+{
+ // add the character so that the post man knows them
+ postMan->addCharacter(client->character);
+ accountHandler->sendPost(client->character, message);
+}
+
+void GameHandler::handleGetPost(GameClient *client, MessageIn &message)
+{
+ // add the character so that the post man knows them
+ postMan->addCharacter(client->character);
+ accountHandler->getPost(client->character);
+}