aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 62ae41babdd..a82aae71be1 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -6409,11 +6409,15 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
do
{
Field* fields = result->Fetch();
+ ObjectGuid::LowType receiver = fields[3].GetUInt64();
+ if (serverUp && ObjectAccessor::FindConnectedPlayer(ObjectGuid::Create<HighGuid::Player>(receiver)))
+ continue;
+
Mail* m = new Mail;
m->messageID = fields[0].GetUInt32();
m->messageType = fields[1].GetUInt8();
m->sender = fields[2].GetUInt64();
- m->receiver = fields[3].GetUInt64();
+ m->receiver = receiver;
bool has_items = fields[4].GetBool();
m->expire_time = fields[5].GetInt64();
m->deliver_time = 0;
@@ -6421,17 +6425,6 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
m->checked = fields[7].GetUInt8();
m->mailTemplateId = fields[8].GetInt16();
- Player* player = nullptr;
- if (serverUp)
- player = ObjectAccessor::FindConnectedPlayer(ObjectGuid::Create<HighGuid::Player>(m->receiver));
-
- if (player && player->m_mailsLoaded)
- { // this code will run very improbably (the time is between 4 and 5 am, in game is online a player, who has old mail
- // his in mailbox and he has already listed his mails)
- delete m;
- continue;
- }
-
// Delete or return mail
if (has_items)
{