aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MailHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/MailHandler.cpp')
-rw-r--r--src/server/game/Handlers/MailHandler.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index 5aeb59e7383..14b6df23061 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -532,13 +532,18 @@ void WorldSession::HandleMailTakeMoney(WorldPacket& recvData)
return;
}
- player->SendMailResult(mailId, MAIL_MONEY_TAKEN, MAIL_OK);
+ if (!player->ModifyMoney(m->money, false))
+ {
+ player->SendMailResult(mailId, MAIL_MONEY_TAKEN, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_TOO_MUCH_GOLD);
+ return;
+ }
- player->ModifyMoney(m->money);
m->money = 0;
m->state = MAIL_STATE_CHANGED;
player->m_mailsUpdated = true;
+ player->SendMailResult(mailId, MAIL_MONEY_TAKEN, MAIL_OK);
+
// save money and mail to prevent cheating
SQLTransaction trans = CharacterDatabase.BeginTransaction();
player->SaveGoldToDB(trans);