diff --git a/src/AuctionHouseBot.cpp b/src/AuctionHouseBot.cpp index 7b52c5d..fd4a41d 100644 --- a/src/AuctionHouseBot.cpp +++ b/src/AuctionHouseBot.cpp @@ -1646,14 +1646,30 @@ void AuctionHouseBot::EmptyAuctionHouses() if (ai.characterGUID != 0) sAuctionMgr->SendAuctionCancelledToBidderMail(auction, trans); - // Remove item from AH + // Return item to AHBot if configured, else delete it + if (ReturnExpiredAuctionItemsToBot) + { + // Copied logic from AuctionHouseMgr.cpp::SendAuctionExpiredMail(), but not working as intended + // For now, delete from DB so data doesn't build up unnecessarily + Item::DeleteFromDB(trans, auction->item_guid.GetCounter()); + + // Player* owner = ObjectAccessor::FindPlayer(auction->owner); + // Item* item = sAuctionMgr->GetAItem(auction->item_guid); + // owner->GetSession()->SendAuctionOwnerNotification(auction); + // MailDraft(auction->BuildAuctionMailSubject(AUCTION_EXPIRED), AuctionEntry::BuildAuctionMailBody(ObjectGuid::Empty, 0, auction->buyout, auction->deposit)) + // .AddItem(item) + // .SendMailTo(trans, MailReceiver(owner, auction->owner.GetCounter()), auction, MAIL_CHECK_MASK_COPIED, 0); + } + else + { + Item::DeleteFromDB(trans, auction->item_guid.GetCounter()); + } + + // Remove auction from AH auction->DeleteFromDB(trans); sAuctionMgr->RemoveAItem(auction->item_guid); auctionHouse->RemoveAuction(auction); - // If we don't need to return the item to AHBot, delete it - if (!ReturnExpiredAuctionItemsToBot) - Item::DeleteFromDB(trans, auction->item_guid.GetCounter()); } }