From e5f9c8c0aff26695beaaad50cf80adddf7d390a9 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Fri, 18 Mar 2022 22:13:17 +0100 Subject: [PATCH] fix(Core/Mails): Do not load expired mails from database. (#10917) --- src/server/game/Entities/Player/PlayerStorage.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index 3a6408f5a..b41ba319d 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -6180,6 +6180,8 @@ Item* Player::_LoadMailedItem(ObjectGuid const& playerGuid, Player* player, uint void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mailItemsResult) { + time_t cur_time = GameTime::GetGameTime().count(); + m_mail.clear(); std::unordered_map mailById; @@ -6205,6 +6207,12 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail m->stationery = fields[11].Get(); m->mailTemplateId = fields[12].Get(); + if (cur_time > m->expire_time) + { + LOG_DEBUG("entities.player", "Player::_LoadMail: Mail ({}) has expired - ignored.", m->messageID); + continue; + } + if (m->mailTemplateId && !sMailTemplateStore.LookupEntry(m->mailTemplateId)) { LOG_ERROR("entities.player", "Player::_LoadMail: Mail ({}) has nonexistent MailTemplateId ({}), remove at load", m->messageID, m->mailTemplateId);