mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[8616] Some cleanups in WorldSession::SendMailTo
This commit is contained in:
parent
29e6601335
commit
f5db4fc163
2 changed files with 16 additions and 19 deletions
|
|
@ -818,35 +818,32 @@ void WorldSession::SendMailTo(Player* receiver, uint8 messageType, uint8 station
|
|||
|
||||
time_t deliver_time = time(NULL) + deliver_delay;
|
||||
|
||||
// expire time if COD 3 days, if no COD 30 days, if auction sale pending 1 hour
|
||||
uint32 expire_delay;
|
||||
if(messageType == MAIL_AUCTION && !mi && !money) // auction mail without any items and money
|
||||
// auction mail without any items and money (auction sale note) pending 1 hour
|
||||
if (messageType == MAIL_AUCTION && !mi && !money)
|
||||
expire_delay = HOUR;
|
||||
// mail from battlemaster (rewardmarks) should last only one day
|
||||
else if (messageType == MAIL_CREATURE && sBattleGroundMgr.GetBattleMasterBG(sender_guidlow_or_entry) != BATTLEGROUND_TYPE_NONE)
|
||||
expire_delay = DAY;
|
||||
// default case: expire time if COD 3 days, if no COD 30 days
|
||||
else
|
||||
expire_delay = (COD > 0) ? 3 * DAY : 30 * DAY;
|
||||
if (messageType == MAIL_CREATURE)
|
||||
{
|
||||
// mail from battlemaster (rewardmarks) should last only one day
|
||||
BattleGroundTypeId bgTypeId = sBattleGroundMgr.GetBattleMasterBG(sender_guidlow_or_entry);
|
||||
if (bgTypeId != BATTLEGROUND_TYPE_NONE)
|
||||
expire_delay = DAY;
|
||||
}
|
||||
|
||||
|
||||
|
||||
time_t expire_time = deliver_time + expire_delay;
|
||||
|
||||
if(mailTemplateId && !sMailTemplateStore.LookupEntry(mailTemplateId))
|
||||
if (mailTemplateId && !sMailTemplateStore.LookupEntry(mailTemplateId))
|
||||
{
|
||||
sLog.outError( "WorldSession::SendMailTo - Mail have not existed MailTemplateId (%u), remove at send", mailTemplateId);
|
||||
mailTemplateId = 0;
|
||||
}
|
||||
|
||||
if(receiver)
|
||||
if (receiver)
|
||||
{
|
||||
receiver->AddNewMailDeliverTime(deliver_time);
|
||||
|
||||
if ( receiver->IsMailsLoaded() )
|
||||
if (receiver->IsMailsLoaded())
|
||||
{
|
||||
Mail *m = new Mail;
|
||||
m->messageID = mailId;
|
||||
|
|
@ -858,7 +855,7 @@ void WorldSession::SendMailTo(Player* receiver, uint8 messageType, uint8 station
|
|||
m->subject = subject;
|
||||
m->itemTextId = itemTextId;
|
||||
|
||||
if(mi)
|
||||
if (mi)
|
||||
m->AddAllItems(*mi);
|
||||
|
||||
m->expire_time = expire_time;
|
||||
|
|
@ -870,20 +867,20 @@ void WorldSession::SendMailTo(Player* receiver, uint8 messageType, uint8 station
|
|||
|
||||
receiver->AddMail(m); // to insert new mail to beginning of maillist
|
||||
|
||||
if(mi)
|
||||
if (mi)
|
||||
{
|
||||
for(MailItemMap::iterator mailItemIter = mi->begin(); mailItemIter != mi->end(); ++mailItemIter)
|
||||
{
|
||||
MailItem& mailItem = mailItemIter->second;
|
||||
if(mailItem.item)
|
||||
if (mailItem.item)
|
||||
receiver->AddMItem(mailItem.item);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(mi)
|
||||
else if (mi)
|
||||
mi->deleteIncludedItems();
|
||||
}
|
||||
else if(mi)
|
||||
else if (mi)
|
||||
mi->deleteIncludedItems();
|
||||
|
||||
CharacterDatabase.BeginTransaction();
|
||||
|
|
@ -892,7 +889,7 @@ void WorldSession::SendMailTo(Player* receiver, uint8 messageType, uint8 station
|
|||
"VALUES ('%u', '%u', '%u', '%u', '%u', '%u', '%s', '%u', '%u', '" UI64FMTD "','" UI64FMTD "', '%u', '%u', '%d')",
|
||||
mailId, messageType, stationery, mailTemplateId, sender_guidlow_or_entry, receiver_guidlow, subject.c_str(), itemTextId, (mi && !mi->empty() ? 1 : 0), (uint64)expire_time, (uint64)deliver_time, money, COD, checked);
|
||||
|
||||
if(mi)
|
||||
if (mi)
|
||||
{
|
||||
for(MailItemMap::const_iterator mailItemIter = mi->begin(); mailItemIter != mi->end(); ++mailItemIter)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "8615"
|
||||
#define REVISION_NR "8616"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue