diff options
author | Rochet2 <rochet2@post.com> | 2017-08-14 00:42:02 +0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2017-08-13 23:42:02 +0200 |
commit | e5b9c207f8889010c88f66ea39160659137402d3 (patch) | |
tree | 9554e728e3f7a39f79b55a17d2f1c7e894fafcca /src/server/game/Handlers/MailHandler.cpp | |
parent | f17cb00ee36f834a103268742246c13b09458d2f (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.cpp | 8 |
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 |