diff options
Diffstat (limited to 'src/server/game/Handlers/MailHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/MailHandler.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp index 7bc0bfdc440..0941074663a 100644 --- a/src/server/game/Handlers/MailHandler.cpp +++ b/src/server/game/Handlers/MailHandler.cpp @@ -104,7 +104,7 @@ void WorldSession::HandleSendMail(WorldPacket& recvData) ObjectGuid receiverGuid; if (normalizePlayerName(receiverName)) - receiverGuid = sObjectMgr->GetPlayerGUIDByName(receiverName); + receiverGuid = sWorld->GetCharacterGuidByName(receiverName); if (!receiverGuid) { @@ -160,7 +160,12 @@ void WorldSession::HandleSendMail(WorldPacket& recvData) } else { - receiverTeam = sObjectMgr->GetPlayerTeamByGUID(receiverGuid); + if (CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(receiverGuid)) + { + receiverTeam = Player::TeamForRace(characterInfo->Race); + receiverLevel = characterInfo->Level; + receiverAccountId = characterInfo->AccountId; + } PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAIL_COUNT); stmt->setUInt32(0, receiverGuid.GetCounter()); @@ -171,18 +176,6 @@ void WorldSession::HandleSendMail(WorldPacket& recvData) Field* fields = result->Fetch(); mailsCount = fields[0].GetUInt64(); } - - stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_LEVEL); - stmt->setUInt32(0, receiverGuid.GetCounter()); - - result = CharacterDatabase.Query(stmt); - if (result) - { - Field* fields = result->Fetch(); - receiverLevel = fields[0].GetUInt8(); - } - - receiverAccountId = sObjectMgr->GetPlayerAccountIdByGUID(receiverGuid); } // do not allow to have more than 100 mails in mailbox.. mails count is in opcode uint8!!! - so max can be 255.. |