56 TC_LOG_ERROR(
"misc",
"MailSender::MailSender - Mail message contains unexpected sender typeid ({}).", sender->
GetTypeId());
119 item->SaveToDB(trans);
128 for (MailItemMap::iterator mailItemIter =
m_items.begin(); mailItemIter !=
m_items.end(); ++mailItemIter)
130 Item* item = mailItemIter->second;
147 ObjectGuid receiverGuid = ObjectGuid::Create<HighGuid::Player>(receiver_guid);
152 rc_account =
sCharacterCache->GetCharacterAccountIdByGuid(receiverGuid);
154 if (!receiver && !rc_account)
161 bool needItemDelay =
false;
166 needItemDelay = sender_acc != rc_account;
169 for (MailItemMap::iterator mailItemIter =
m_items.begin(); mailItemIter !=
m_items.end(); ++mailItemIter)
171 Item* item = mailItemIter->second;
213 expire_delay = 3 *
DAY;
218 time_t expire_time = deliver_time + expire_delay;
239 for (MailItemMap::const_iterator mailItemIter =
m_items.begin(); mailItemIter !=
m_items.end(); ++mailItemIter)
241 Item* pItem = mailItemIter->second;
262 for (MailItemMap::const_iterator mailItemIter =
m_items.begin(); mailItemIter !=
m_items.end(); ++mailItemIter)
264 Item* item = mailItemIter->second;
281 for (MailItemMap::iterator mailItemIter =
m_items.begin(); mailItemIter !=
m_items.end(); ++mailItemIter)
282 pReceiver->
AddMItem(mailItemIter->second);
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
#define TC_LOG_ERROR(filterType__,...)
LootStore LootTemplates_Mail("mail_loot_template", "mail template id", false)
@ MAIL_CHECK_MASK_RETURNED
@ MAIL_STATIONERY_DEFAULT
@ MAIL_STATIONERY_AUCTION
virtual void SaveToDB(CharacterDatabaseTransaction trans)
static Item * CreateItem(uint32 itemEntry, uint32 count, Player const *player=nullptr)
void deleteIncludedItems(CharacterDatabaseTransaction trans, bool inDB=false)
std::string const & GetSubject() const
void SendMailTo(CharacterDatabaseTransaction trans, MailReceiver const &receiver, MailSender const &sender, MailCheckMask checked=MAIL_CHECK_MASK_NONE, uint32 deliver_delay=0)
bool m_mailTemplateItemsNeed
void SendReturnToSender(uint32 sender_acc, ObjectGuid::LowType sender_guid, ObjectGuid::LowType receiver_guid, CharacterDatabaseTransaction trans)
uint16 GetMailTemplateId() const
void prepareItems(Player *receiver, CharacterDatabaseTransaction trans)
MailDraft & AddItem(Item *item)
std::string const & GetBody() const
Player * GetPlayer() const
ObjectGuid::LowType GetPlayerGUIDLow() const
MailReceiver(ObjectGuid::LowType receiver_lowguid)
MailStationery m_stationery
ObjectGuid::LowType GetSenderId() const
MailSender(MailMessageType messageType, ObjectGuid::LowType sender_guidlow_or_entry, MailStationery stationery=MAIL_STATIONERY_DEFAULT)
MailMessageType m_messageType
MailMessageType GetMailMessageType() const
MailStationery GetStationery() const
ObjectGuid::LowType m_senderId
LowType GetCounter() const
static ObjectGuid GetGUID(Object const *o)
void AddNewMailDeliverTime(time_t deliver_time)
bool IsGameMaster() const
void setInt8(uint8 index, int8 value)
void setUInt16(uint8 index, uint16 value)
void setUInt32(uint8 index, uint32 value)
void setBool(uint8 index, bool value)
void setUInt64(uint8 index, uint64 value)
void setUInt8(uint8 index, uint8 value)
void setString(uint8 index, std::string const &value)
@ CONFIG_MAIL_DELIVERY_DELAY
TC_GAME_API Player * FindPlayerByLowGUID(ObjectGuid::LowType lowguid)
TC_GAME_API Player * FindConnectedPlayer(ObjectGuid const &)
uint32 GetMaxSlotInLootFor(Player *player) const
bool FillLoot(uint32 lootId, LootStore const &store, Player *lootOwner, bool personal, bool noEmptyError=false, uint16 lootMode=LOOT_MODE_DEFAULT)
LootItem * LootItemInSlot(uint32 lootslot, Player *player, NotNormalLootItem **qitem=nullptr, NotNormalLootItem **ffaitem=nullptr, NotNormalLootItem **conditem=nullptr)
ObjectGuid::LowType receiver
ObjectGuid::LowType sender
void AddItem(ObjectGuid::LowType itemGuidLow, uint32 item_template)