TrinityCore
Loading...
Searching...
No Matches
AuctionHouseObject Class Reference

#include <AuctionHouseMgr.h>

Classes

struct  PlayerReplicateThrottleData
 

Public Member Functions

 AuctionHouseObject (uint32 auctionHouseId)
 
 AuctionHouseObject (AuctionHouseObject const &)=delete
 
 AuctionHouseObject (AuctionHouseObject &&)=delete
 
AuctionHouseObject & operator= (AuctionHouseObject const &)=delete
 
AuctionHouseObject & operator= (AuctionHouseObject &&)=delete
 
 ~AuctionHouseObject ()
 
uint32 GetAuctionHouseId () const
 
std::map< uint32, AuctionPosting >::iterator GetAuctionsBegin ()
 
std::map< uint32, AuctionPosting >::iterator GetAuctionsEnd ()
 
AuctionPosting * GetAuction (uint32 auctionId)
 
void AddAuction (CharacterDatabaseTransaction trans, AuctionPosting auction)
 
std::map< uint32, AuctionPosting >::node_type RemoveAuction (CharacterDatabaseTransaction trans, AuctionPosting *auction, std::map< uint32, AuctionPosting >::iterator *auctionItr=nullptr)
 
void Update ()
 
void BuildListBuckets (WorldPackets::AuctionHouse::AuctionListBucketsResult &listBucketsResult, Player const *player, std::wstring const &name, uint8 minLevel, uint8 maxLevel, EnumFlag< AuctionHouseFilterMask > filters, Optional< AuctionSearchClassFilters > const &classFilters, std::span< uint8 const > knownPetBits, uint8 maxKnownPetLevel, uint32 offset, std::span< WorldPackets::AuctionHouse::AuctionSortDef const > sorts) const
 
void BuildListBuckets (WorldPackets::AuctionHouse::AuctionListBucketsResult &listBucketsResult, Player const *player, std::span< WorldPackets::AuctionHouse::AuctionBucketKey const > keys, std::span< WorldPackets::AuctionHouse::AuctionSortDef const > sorts) const
 
void BuildListBiddedItems (WorldPackets::AuctionHouse::AuctionListBiddedItemsResult &listBiddedItemsResult, Player const *player, uint32 offset, std::span< WorldPackets::AuctionHouse::AuctionSortDef const > sorts) const
 
void BuildListAuctionItems (WorldPackets::AuctionHouse::AuctionListItemsResult &listItemsResult, Player const *player, AuctionsBucketKey const &bucketKey, uint32 offset, std::span< WorldPackets::AuctionHouse::AuctionSortDef const > sorts) const
 
void BuildListAuctionItems (WorldPackets::AuctionHouse::AuctionListItemsResult &listItemsResult, Player const *player, uint32 itemId, uint32 offset, std::span< WorldPackets::AuctionHouse::AuctionSortDef const > sorts) const
 
void BuildListOwnedItems (WorldPackets::AuctionHouse::AuctionListOwnedItemsResult &listOwnedItemsResult, Player const *player, uint32 offset, std::span< WorldPackets::AuctionHouse::AuctionSortDef const > sorts) const
 
void BuildReplicate (WorldPackets::AuctionHouse::AuctionReplicateResponse &replicateResponse, Player *player, uint32 global, uint32 cursor, uint32 tombstone, uint32 count)
 
uint64 CalculateAuctionHouseCut (uint64 bidAmount) const
 
CommodityQuote const * CreateCommodityQuote (Player const *player, uint32 itemId, uint32 quantity)
 
void CancelCommodityQuote (ObjectGuid guid)
 
bool BuyCommodity (CharacterDatabaseTransaction trans, Player *player, uint32 itemId, uint32 quantity, Milliseconds delayForNextAction)
 
void SendAuctionOutbid (AuctionPosting const *auction, ObjectGuid newBidder, uint64 newBidAmount, CharacterDatabaseTransaction trans) const
 
void SendAuctionWon (AuctionPosting const *auction, Player *bidder, CharacterDatabaseTransaction trans) const
 
void SendAuctionSold (AuctionPosting const *auction, Player *owner, CharacterDatabaseTransaction trans) const
 
void SendAuctionExpired (AuctionPosting const *auction, CharacterDatabaseTransaction trans) const
 
void SendAuctionRemoved (AuctionPosting const *auction, Player *owner, CharacterDatabaseTransaction trans) const
 
void SendAuctionCancelledToBidder (AuctionPosting const *auction, CharacterDatabaseTransaction trans) const
 
void SendAuctionInvoice (AuctionPosting const *auction, Player *owner, CharacterDatabaseTransaction trans) const
 

Private Attributes

AuctionHouseEntry const * _auctionHouse
 
std::map< uint32, AuctionPosting > _itemsByAuctionId
 
std::unordered_map< uint32, AuctionPosting > _soldItemsById
 
std::map< AuctionsBucketKey, AuctionsBucketData > _buckets
 
std::unordered_map< ObjectGuid, CommodityQuote > _commodityQuotes
 
std::unordered_multimap< ObjectGuid, uint32 > _playerOwnedAuctions
 
std::unordered_multimap< ObjectGuid, uint32 > _playerBidderAuctions
 
std::unordered_map< ObjectGuid, PlayerReplicateThrottleData > _replicateThrottleMap
 

Detailed Description

Definition at line 266 of file AuctionHouseMgr.h.

Constructor & Destructor Documentation

◆ AuctionHouseObject() [1/3]

AuctionHouseObject::AuctionHouseObject ( uint32  auctionHouseId)
explicit

Definition at line 838 of file AuctionHouseMgr.cpp.

◆ AuctionHouseObject() [2/3]

AuctionHouseObject::AuctionHouseObject ( AuctionHouseObject const &  )
delete

◆ AuctionHouseObject() [3/3]

AuctionHouseObject::AuctionHouseObject ( AuctionHouseObject &&  )
delete

◆ ~AuctionHouseObject()

AuctionHouseObject::~AuctionHouseObject ( )
default

Member Function Documentation

◆ AddAuction()

void AuctionHouseObject::AddAuction ( CharacterDatabaseTransaction  trans,
AuctionPosting  auction 
)

Definition at line 854 of file AuctionHouseMgr.cpp.

References _auctionHouse, _buckets, _itemsByAuctionId, _playerBidderAuctions, _playerOwnedAuctions, EnumFlag< T >::AsUnderlyingType(), AsUnderlyingType(), AuctionsBucketData::Auctions, AuctionPosting::BidAmount, AuctionPosting::BidderHistory, AuctionPosting::Bucket, AuctionPosting::BuyoutOrUnitPrice, CHAR_INS_AUCTION, CHAR_INS_AUCTION_ITEMS, CharacterDatabase, AuctionPosting::Deposit, ObjectGuid::Empty, AuctionPosting::EndTime, AuctionsBucketKey::ForItem(), AuctionsBucketData::FullName, ItemTemplate::GetBaseItemLevel(), ItemTemplate::GetBaseRequiredLevel(), ItemTemplate::GetClass(), ItemTemplate::GetContainerSlots(), ObjectGuid::GetCounter(), ItemTemplate::GetInventoryType(), ItemTemplate::GetRequiredSkillRank(), ItemTemplate::GetSubClass(), AuctionPosting::Id, AuctionHouseEntry::ID, AuctionsBucketData::InventoryType, ITEM_CLASS_ARMOR, ITEM_CLASS_BATTLE_PETS, ITEM_CLASS_CONSUMABLE, ITEM_CLASS_CONTAINER, ITEM_CLASS_GEM, ITEM_CLASS_ITEM_ENHANCEMENT, ITEM_CLASS_MISCELLANEOUS, ITEM_CLASS_RECIPE, ITEM_CLASS_WEAPON, ITEM_MODIFIER_BATTLE_PET_BREED_DATA, ITEM_MODIFIER_BATTLE_PET_LEVEL, ITEM_MODIFIER_BATTLE_PET_SPECIES_ID, ITEM_SUBCLASS_BOOK, AuctionsBucketData::ItemClass, AuctionsBucketKey::ItemLevel, AuctionsBucketData::ItemModifiedAppearanceId, AuctionPosting::Items, AuctionsBucketData::ItemSubClass, AuctionsBucketData::Key, LOCALE_enUS, LOCALE_none, AuctionsBucketData::MaxBattlePetLevel, AuctionsBucketData::MinBattlePetLevel, AuctionPosting::MinBid, AuctionsBucketData::MinPrice, AuctionPosting::Owner, PoorQuality, Price, AuctionsBucketData::QualityCounts, AuctionsBucketData::QualityMask, AuctionsBucketData::RequiredLevel, sAuctionMgr, AuctionPosting::ServerFlags, PreparedStatementBase::setInt64(), PreparedStatementBase::setUInt32(), PreparedStatementBase::setUInt64(), PreparedStatementBase::setUInt8(), AuctionsBucketData::SortLevel, sScriptMgr, AuctionPosting::StartTime, TOTAL_LOCALES, Utf8toWStr(), and wstrCaseAccentInsensitiveParse().

Referenced by AuctionBotSeller::AddNewAuctions(), WorldSession::HandleAuctionSellCommodity(), WorldSession::HandleAuctionSellItem(), and AuctionHouseMgr::LoadAuctions().

◆ BuildListAuctionItems() [1/2]

◆ BuildListAuctionItems() [2/2]

◆ BuildListBiddedItems()

◆ BuildListBuckets() [1/2]

◆ BuildListBuckets() [2/2]

void AuctionHouseObject::BuildListBuckets ( WorldPackets::AuctionHouse::AuctionListBucketsResult &  listBucketsResult,
Player const *  player,
std::wstring const &  name,
uint8  minLevel,
uint8  maxLevel,
EnumFlag< AuctionHouseFilterMask >  filters,
Optional< AuctionSearchClassFilters > const &  classFilters,
std::span< uint8 const >  knownPetBits,
uint8  maxKnownPetLevel,
uint32  offset,
std::span< WorldPackets::AuctionHouse::AuctionSortDef const >  sorts 
) const

Definition at line 1142 of file AuctionHouseMgr.cpp.

References _buckets, AuctionsResultBuilder< T >::AddItem(), ASSERT_NOTNULL, Browse, WorldPackets::AuctionHouse::AuctionListBucketsResult::Buckets, Player::CanUseItem(), CONFIG_EXPANSION, CurrentExpansionOnly, ItemTemplate::Effects, EQUIP_ERR_OK, ExactMatch, AuctionSearchClassFilters::FILTER_SKIP_CLASS, AuctionSearchClassFilters::FILTER_SKIP_SUBCLASS, WorldPackets::AuctionHouse::AuctionListBucketsResult::Filters, AuctionsBucketData::FullName, CollectionMgr::GetAppearanceIds(), WorldSession::GetCollectionMgr(), Unit::GetLevel(), ItemTemplate::GetRequiredExpansion(), AuctionsResultBuilder< T >::GetResultRange(), Player::GetSession(), WorldSession::GetSessionDbcLocale(), AuctionsResultBuilder< T >::GetTotalCount(), EnumFlag< T >::HasFlag(), AuctionsResultBuilder< T >::HasMoreResults(), WorldPackets::AuctionHouse::AuctionListBucketsResult::HasMoreResults, CollectionMgr::HasToy(), AuctionsBucketData::InventoryType, INVTYPE_BAG, INVTYPE_NON_EQUIP, ITEM_CLASS_CONSUMABLE, ITEM_CLASS_MISCELLANEOUS, ITEM_CLASS_RECIPE, AuctionsBucketData::ItemClass, AuctionsBucketData::ItemModifiedAppearanceId, AuctionsBucketData::ItemSubClass, AuctionsBucketData::MinBattlePetLevel, AuctionsBucketData::QualityMask, AuctionsBucketData::RequiredLevel, sBattlePetSpeciesStore, sDB2Manager, sItemModifiedAppearanceStore, sObjectMgr, sWorld, WorldPackets::AuctionHouse::AuctionListBucketsResult::TotalCount, UI64LIT, UncollectedOnly, and UsableOnly.

Referenced by WorldSession::HandleAuctionBrowseQuery(), and WorldSession::HandleAuctionListBucketsByBucketKeys().

◆ BuildListOwnedItems()

◆ BuildReplicate()

◆ BuyCommodity()

bool AuctionHouseObject::BuyCommodity ( CharacterDatabaseTransaction  trans,
Player *  player,
uint32  itemId,
uint32  quantity,
Milliseconds  delayForNextAction 
)

Definition at line 1515 of file AuctionHouseMgr.cpp.

References _auctionHouse, _buckets, _commodityQuotes, MailDraft::AddItem(), MailDraft::AddMoney(), AuctionHouseMgr::BuildAuctionSoldMailBody(), AuctionHouseMgr::BuildAuctionWonMailBody(), AuctionHouseMgr::BuildCommodityAuctionMailSubject(), AuctionPosting::BuyoutOrUnitPrice, CalculateAuctionHouseCut(), CHAR_DEL_AUCTION_ITEMS_BY_ITEM, CharacterDatabase, Item::CloneItem(), CommodityPurchaseFailed, CONFIG_MAIL_DELIVERY_DELAY, ObjectGuid::Empty, AuctionPosting::EndTime, ObjectAccessor::FindConnectedPlayer(), AuctionsBucketKey::ForCommodity(), WorldSession::GetAccountGUID(), WorldSession::GetAccountId(), AuctionHouseMgr::GetCommodityAuctionDeposit(), Item::GetCount(), BaseEntity::GetGUID(), WorldObject::GetName(), Player::GetSession(), Player::HasEnoughMoney(), WorldSession::HasPermission(), HighestAuctionSale, AuctionHouseEntry::ID, WorldPackets::AuctionHouse::AuctionWonNotification::Info, WorldPackets::AuctionHouse::AuctionBidderNotification::Initialize(), ITEM_CHANGED, AuctionPosting::Items, LANG_UNKNOWN, MAIL_CHECK_MASK_AUCTION, MAIL_CHECK_MASK_AUCTION_WON, MAIL_CHECK_MASK_COPIED, Player::ModifyMoney(), MoneyEarnedFromAuctions, AuctionPosting::Owner, AuctionPosting::OwnerAccount, PlaceBid, rbac::RBAC_PERM_LOG_GM_TRADE, RemoveAuction(), sAuctionMgr, Player::SaveInventoryAndGoldToDB(), sCharacterCache, WorldSession::SendAuctionCommandResult(), Player::SendDirectMessage(), MailDraft::SendMailTo(), PreparedStatementBase::setUInt64(), sLog, sObjectMgr, Sold, AuctionPosting::StartTime, sWorld, Won, and WorldPackets::AuctionHouse::AuctionWonNotification::Write().

Referenced by WorldSession::HandleAuctionConfirmCommoditiesPurchase().

◆ CalculateAuctionHouseCut()

uint64 AuctionHouseObject::CalculateAuctionHouseCut ( uint64  bidAmount) const

◆ CancelCommodityQuote()

void AuctionHouseObject::CancelCommodityQuote ( ObjectGuid  guid)

◆ CreateCommodityQuote()

◆ GetAuction()

◆ GetAuctionHouseId()

uint32 AuctionHouseObject::GetAuctionHouseId ( ) const

◆ GetAuctionsBegin()

std::map< uint32, AuctionPosting >::iterator AuctionHouseObject::GetAuctionsBegin ( )
inline

◆ GetAuctionsEnd()

std::map< uint32, AuctionPosting >::iterator AuctionHouseObject::GetAuctionsEnd ( )
inline

◆ operator=() [1/2]

AuctionHouseObject & AuctionHouseObject::operator= ( AuctionHouseObject &&  )
delete

◆ operator=() [2/2]

AuctionHouseObject & AuctionHouseObject::operator= ( AuctionHouseObject const &  )
delete

◆ RemoveAuction()

◆ SendAuctionCancelledToBidder()

◆ SendAuctionExpired()

◆ SendAuctionInvoice()

◆ SendAuctionOutbid()

◆ SendAuctionRemoved()

◆ SendAuctionSold()

◆ SendAuctionWon()

◆ Update()

void AuctionHouseObject::Update ( )
  • Handle expired auctions
  • filter auctions expired on next update
  • Either cancel the auction if there was no bidder
  • Or perform the transaction

Definition at line 1079 of file AuctionHouseMgr.cpp.

References _commodityQuotes, _itemsByAuctionId, _replicateThrottleMap, AuctionPosting::Bidder, CharacterDatabase, AuctionPosting::EndTime, GameTime::GetSystemTime(), ObjectGuid::IsEmpty(), GameTime::Now(), RemoveAuction(), SendAuctionExpired(), SendAuctionSold(), SendAuctionWon(), and sScriptMgr.

Referenced by AuctionHouseMgr::Update().

Member Data Documentation

◆ _auctionHouse

AuctionHouseEntry const* AuctionHouseObject::_auctionHouse
private

◆ _buckets

◆ _commodityQuotes

std::unordered_map<ObjectGuid, CommodityQuote> AuctionHouseObject::_commodityQuotes
private

◆ _itemsByAuctionId

std::map<uint32, AuctionPosting> AuctionHouseObject::_itemsByAuctionId
private

◆ _playerBidderAuctions

std::unordered_multimap<ObjectGuid, uint32> AuctionHouseObject::_playerBidderAuctions
private

Definition at line 341 of file AuctionHouseMgr.h.

Referenced by AddAuction(), BuildListBiddedItems(), and RemoveAuction().

◆ _playerOwnedAuctions

std::unordered_multimap<ObjectGuid, uint32> AuctionHouseObject::_playerOwnedAuctions
private

Definition at line 340 of file AuctionHouseMgr.h.

Referenced by AddAuction(), BuildListOwnedItems(), and RemoveAuction().

◆ _replicateThrottleMap

std::unordered_map<ObjectGuid, PlayerReplicateThrottleData> AuctionHouseObject::_replicateThrottleMap
private

Definition at line 345 of file AuctionHouseMgr.h.

Referenced by BuildReplicate(), and Update().

◆ _soldItemsById

std::unordered_map<uint32, AuctionPosting> AuctionHouseObject::_soldItemsById
private

Definition at line 336 of file AuctionHouseMgr.h.


The documentation for this class was generated from the following files: