chore(Core): Debloat Mail.cpp (#12881)
This commit is contained in:
@@ -153,13 +153,7 @@ void MailDraft::SendReturnToSender(uint32 /*sender_acc*/, ObjectGuid::LowType se
|
|||||||
{
|
{
|
||||||
Player* receiver = ObjectAccessor::FindPlayerByLowGUID(receiver_guid);
|
Player* receiver = ObjectAccessor::FindPlayerByLowGUID(receiver_guid);
|
||||||
|
|
||||||
uint32 rc_account = 0;
|
if (!receiver && !sCharacterCache->GetCharacterAccountIdByGuid(ObjectGuid(HighGuid::Player, receiver_guid)))
|
||||||
if (!receiver)
|
|
||||||
{
|
|
||||||
rc_account = sCharacterCache->GetCharacterAccountIdByGuid(ObjectGuid(HighGuid::Player, receiver_guid));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!receiver && !rc_account) // sender not exist
|
|
||||||
{
|
{
|
||||||
deleteIncludedItems(trans, true);
|
deleteIncludedItems(trans, true);
|
||||||
return;
|
return;
|
||||||
@@ -200,7 +194,6 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
Player* pReceiver = receiver.GetPlayer(); // can be nullptr
|
Player* pReceiver = receiver.GetPlayer(); // can be nullptr
|
||||||
Player* pSender = ObjectAccessor::FindPlayerByLowGUID(sender.GetSenderId());
|
|
||||||
|
|
||||||
if (pReceiver)
|
if (pReceiver)
|
||||||
prepareItems(pReceiver, trans); // generate mail template items
|
prepareItems(pReceiver, trans); // generate mail template items
|
||||||
@@ -219,13 +212,13 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
|
|||||||
else if (sender.GetMailMessageType() == MAIL_CREATURE && sBattlegroundMgr->GetBattleMasterBG(sender.GetSenderId()) != BATTLEGROUND_TYPE_NONE)
|
else if (sender.GetMailMessageType() == MAIL_CREATURE && sBattlegroundMgr->GetBattleMasterBG(sender.GetSenderId()) != BATTLEGROUND_TYPE_NONE)
|
||||||
expire_delay = DAY;
|
expire_delay = DAY;
|
||||||
// default case: expire time if COD 3 days, if no COD 30 days (or 90 days if sender is a game master)
|
// default case: expire time if COD 3 days, if no COD 30 days (or 90 days if sender is a game master)
|
||||||
else
|
else if (m_COD)
|
||||||
{
|
|
||||||
if (m_COD)
|
|
||||||
expire_delay = 3 * DAY;
|
expire_delay = 3 * DAY;
|
||||||
else if (custom_expiration > 0 )
|
else if (custom_expiration > 0)
|
||||||
expire_delay = custom_expiration * DAY;
|
expire_delay = custom_expiration * DAY;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
Player* pSender = ObjectAccessor::FindPlayerByLowGUID(sender.GetSenderId());
|
||||||
expire_delay = pSender && pSender->GetSession()->GetSecurity() ? 90 * DAY : 30 * DAY;
|
expire_delay = pSender && pSender->GetSession()->GetSecurity() ? 90 * DAY : 30 * DAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,27 +228,26 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
|
|||||||
uint8 index = 0;
|
uint8 index = 0;
|
||||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL);
|
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL);
|
||||||
stmt->SetData( index, mailId);
|
stmt->SetData( index, mailId);
|
||||||
stmt->SetData (++index, uint8(sender.GetMailMessageType()));
|
stmt->SetData(++index, uint8(sender.GetMailMessageType()));
|
||||||
stmt->SetData (++index, int8(sender.GetStationery()));
|
stmt->SetData(++index, int8(sender.GetStationery()));
|
||||||
stmt->SetData(++index, GetMailTemplateId());
|
stmt->SetData(++index, GetMailTemplateId());
|
||||||
stmt->SetData(++index, sender.GetSenderId());
|
stmt->SetData(++index, sender.GetSenderId());
|
||||||
stmt->SetData(++index, receiver.GetPlayerGUIDLow());
|
stmt->SetData(++index, receiver.GetPlayerGUIDLow());
|
||||||
stmt->SetData(++index, GetSubject());
|
stmt->SetData(++index, GetSubject());
|
||||||
stmt->SetData(++index, GetBody());
|
stmt->SetData(++index, GetBody());
|
||||||
stmt->SetData (++index, !m_items.empty());
|
stmt->SetData(++index, !m_items.empty());
|
||||||
stmt->SetData(++index, uint32(expire_time));
|
stmt->SetData(++index, uint32(expire_time));
|
||||||
stmt->SetData(++index, uint32(deliver_time));
|
stmt->SetData(++index, uint32(deliver_time));
|
||||||
stmt->SetData(++index, m_money);
|
stmt->SetData(++index, m_money);
|
||||||
stmt->SetData(++index, m_COD);
|
stmt->SetData(++index, m_COD);
|
||||||
stmt->SetData (++index, uint8(checked));
|
stmt->SetData(++index, uint8(checked));
|
||||||
trans->Append(stmt);
|
trans->Append(stmt);
|
||||||
|
|
||||||
for (MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
|
for (MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
|
||||||
{
|
{
|
||||||
Item* pItem = mailItemIter->second;
|
|
||||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL_ITEM);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL_ITEM);
|
||||||
stmt->SetData(0, mailId);
|
stmt->SetData(0, mailId);
|
||||||
stmt->SetData(1, pItem->GetGUID().GetCounter());
|
stmt->SetData(1, mailItemIter->second->GetGUID().GetCounter());
|
||||||
stmt->SetData(2, receiver.GetPlayerGUIDLow());
|
stmt->SetData(2, receiver.GetPlayerGUIDLow());
|
||||||
trans->Append(stmt);
|
trans->Append(stmt);
|
||||||
}
|
}
|
||||||
@@ -302,7 +294,6 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
|
|||||||
}
|
}
|
||||||
else if (!m_items.empty())
|
else if (!m_items.empty())
|
||||||
{
|
{
|
||||||
CharacterDatabaseTransaction temp = CharacterDatabaseTransaction(nullptr);
|
deleteIncludedItems(CharacterDatabaseTransaction(nullptr));
|
||||||
deleteIncludedItems(temp);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user