aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MailHandler.cpp
diff options
context:
space:
mode:
authorRochet2 <rochet2@post.com>2017-08-14 00:42:02 +0300
committerShauren <shauren.trinity@gmail.com>2017-08-13 23:42:02 +0200
commite5b9c207f8889010c88f66ea39160659137402d3 (patch)
tree9554e728e3f7a39f79b55a17d2f1c7e894fafcca /src/server/game/Handlers/MailHandler.cpp
parentf17cb00ee36f834a103268742246c13b09458d2f (diff)
Core/Creatures: Implement a general way to store selection data for gossip and fix trainer exploit (#20085)
* Implement mail check * Implement CloseInteraction packet
Diffstat (limited to 'src/server/game/Handlers/MailHandler.cpp')
-rw-r--r--src/server/game/Handlers/MailHandler.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index 2baa149f123..73423256893 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -20,6 +20,7 @@
#include "BattlenetAccountMgr.h"
#include "DatabaseEnv.h"
#include "DB2Stores.h"
+#include "GossipDef.h"
#include "Guild.h"
#include "GuildMgr.h"
#include "Item.h"
@@ -382,9 +383,8 @@ void WorldSession::HandleMailDelete(WorldPackets::Mail::MailDelete& packet)
void WorldSession::HandleMailReturnToSender(WorldPackets::Mail::MailReturnToSender& packet)
{
- //TODO: find a proper way to replace this check. Idea: Save Guid form MailGetList until CMSG_CLOSE_INTERACTION is sent
- /*if (!CanOpenMailBox(mailbox))
- return;*/
+ if (!CanOpenMailBox(_player->PlayerTalkClass->GetInteractionData().SourceGuid))
+ return;
Player* player = _player;
Mail* m = player->GetMail(packet.MailID);
@@ -592,6 +592,8 @@ void WorldSession::HandleGetMailList(WorldPackets::Mail::MailGetList& packet)
++response.TotalNumRecords;
}
+ player->PlayerTalkClass->GetInteractionData().Reset();
+ player->PlayerTalkClass->GetInteractionData().SourceGuid = packet.Mailbox;
SendPacket(response.Write());
// recalculate m_nextMailDelivereTime and unReadMails