diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index b37d3fadb49..61c7b168a40 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -18,6 +18,7 @@ #include "ObjectMgr.h" #include "ArenaTeamMgr.h" +#include "AzeriteItem.h" #include "Chat.h" #include "Containers.h" #include "DatabaseEnv.h" @@ -5867,12 +5868,12 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp) // if it is mail from non-player, or if it's already return mail, it shouldn't be returned, but deleted if (m->messageType != MAIL_NORMAL || (m->checked & (MAIL_CHECK_MASK_COD_PAYMENT | MAIL_CHECK_MASK_RETURNED))) { + CharacterDatabaseTransaction nonTransactional(nullptr); // mail open and then not returned for (MailItemInfoVec::iterator itr2 = m->items.begin(); itr2 != m->items.end(); ++itr2) { - stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE); - stmt->setUInt64(0, itr2->item_guid); - CharacterDatabase.Execute(stmt); + Item::DeleteFromDB(nonTransactional, itr2->item_guid); + AzeriteItem::DeleteFromDB(nonTransactional, itr2->item_guid); } stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID); |