mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-23 13:46:24 +00:00
fix(Core/Mail): cleanup pending auction sale mail (#6022)
This commit is contained in:
@@ -167,7 +167,7 @@ void MailDraft::SendReturnToSender(uint32 /*sender_acc*/, ObjectGuid::LowType se
|
||||
SendMailTo(trans, MailReceiver(receiver, receiver_guid), MailSender(MAIL_NORMAL, sender_guid), MAIL_CHECK_MASK_RETURNED, 0);
|
||||
}
|
||||
|
||||
void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay, uint32 custom_expiration, bool deleteMailItemsFromDB, bool sendMail)
|
||||
void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay, uint32 custom_expiration, bool deleteMailItemsFromDB, bool sendMail, int32 auctionId)
|
||||
{
|
||||
sScriptMgr->OnBeforeMailDraftSendMailTo(this, receiver, sender, checked, deliver_delay, custom_expiration, deleteMailItemsFromDB, sendMail);
|
||||
|
||||
@@ -221,11 +221,12 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
|
||||
stmt->setString(++index, GetSubject());
|
||||
stmt->setString(++index, GetBody());
|
||||
stmt->setBool (++index, !m_items.empty());
|
||||
stmt->setUInt64(++index, uint64(expire_time));
|
||||
stmt->setUInt64(++index, uint64(deliver_time));
|
||||
stmt->setUInt32(++index, uint32(expire_time));
|
||||
stmt->setUInt32(++index, uint32(deliver_time));
|
||||
stmt->setUInt32(++index, m_money);
|
||||
stmt->setUInt32(++index, m_COD);
|
||||
stmt->setUInt8 (++index, uint8(checked));
|
||||
stmt->setInt32(++index, auctionId);
|
||||
trans->Append(stmt);
|
||||
|
||||
for (MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
|
||||
@@ -267,6 +268,7 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
|
||||
m->expire_time = expire_time;
|
||||
m->deliver_time = deliver_time;
|
||||
m->checked = checked;
|
||||
m->auctionId = auctionId;
|
||||
m->state = MAIL_STATE_UNCHANGED;
|
||||
|
||||
pReceiver->AddMail(m); // to insert new mail to beginning of maillist
|
||||
|
||||
@@ -127,7 +127,7 @@ public: // modifiers
|
||||
|
||||
public: // finishers
|
||||
void SendReturnToSender(uint32 sender_acc, ObjectGuid::LowType sender_guid, ObjectGuid::LowType receiver_guid, CharacterDatabaseTransaction trans);
|
||||
void SendMailTo(CharacterDatabaseTransaction trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked = MAIL_CHECK_MASK_NONE, uint32 deliver_delay = 0, uint32 custom_expiration = 0, bool deleteMailItemsFromDB = false, bool sendMail = true);
|
||||
void SendMailTo(CharacterDatabaseTransaction trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked = MAIL_CHECK_MASK_NONE, uint32 deliver_delay = 0, uint32 custom_expiration = 0, bool deleteMailItemsFromDB = false, bool sendMail = true, int32 auctionId = 0);
|
||||
|
||||
private:
|
||||
void deleteIncludedItems(CharacterDatabaseTransaction trans, bool inDB = false);
|
||||
@@ -170,6 +170,10 @@ struct Mail
|
||||
uint32 checked;
|
||||
MailState state;
|
||||
|
||||
// < 0 Pending
|
||||
// > 0 Delivery
|
||||
int32 auctionId;
|
||||
|
||||
void AddItem(ObjectGuid::LowType itemGuidLow, uint32 item_template)
|
||||
{
|
||||
MailItemInfo mii;
|
||||
|
||||
Reference in New Issue
Block a user