fix(Core/Mails): Do not load expired mails from database. (#10917)

This commit is contained in:
UltraNix
2022-03-18 22:13:17 +01:00
committed by GitHub
parent f2ab17f591
commit e5f9c8c0af

View File

@@ -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<uint32, Mail*> mailById;
@@ -6205,6 +6207,12 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
m->stationery = fields[11].Get<uint8>();
m->mailTemplateId = fields[12].Get<int16>();
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);