feat(Core/Hook): A few new hooks (#2671)

This commit is contained in:
Stoabrogga
2020-02-27 22:45:38 +01:00
committed by GitHub
parent 0749a861aa
commit 9adba482c2
6 changed files with 167 additions and 39 deletions

View File

@@ -15,6 +15,7 @@
#include "Item.h"
#include "AuctionHouseMgr.h"
#include "CalendarMgr.h"
#include "ScriptMgr.h"
MailSender::MailSender(Object* sender, MailStationery stationery) : m_stationery(stationery)
{
@@ -165,8 +166,16 @@ void MailDraft::SendReturnToSender(uint32 /*sender_acc*/, uint32 sender_guid, u
SendMailTo(trans, MailReceiver(receiver, receiver_guid), MailSender(MAIL_NORMAL, sender_guid), MAIL_CHECK_MASK_RETURNED, 0);
}
void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay, uint32 custom_expiration)
void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay, uint32 custom_expiration, bool deleteMailItemsFromDB, bool sendMail)
{
sScriptMgr->OnBeforeMailDraftSendMailTo(this, receiver, sender, checked, deliver_delay, custom_expiration, deleteMailItemsFromDB, sendMail);
if (deleteMailItemsFromDB) // can be changed in the hook
deleteIncludedItems(trans, true);
if (!sendMail) // can be changed in the hook
return;
Player* pReceiver = receiver.GetPlayer(); // can be NULL
Player* pSender = ObjectAccessor::FindPlayerInOrOutOfWorld(MAKE_NEW_GUID(sender.GetSenderId(), 0, HIGHGUID_PLAYER));