From a5c511d04aabfa000bdd08e8177d9f33452ac04b Mon Sep 17 00:00:00 2001 From: SylvaniaCore deploy Date: Sun, 26 Jul 2026 12:52:43 +0000 Subject: [PATCH] fix(core/blackmarket): enforce auction minimum starting bid [porte d ArgusCore 888e3f24] --- src/server/game/BlackMarket/BlackMarketMgr.cpp | 7 +++++++ src/server/game/Handlers/VoidStorageHandler.cpp | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/server/game/BlackMarket/BlackMarketMgr.cpp b/src/server/game/BlackMarket/BlackMarketMgr.cpp index f5609ce..b4bb789 100644 --- a/src/server/game/BlackMarket/BlackMarketMgr.cpp +++ b/src/server/game/BlackMarket/BlackMarketMgr.cpp @@ -452,6 +452,13 @@ bool BlackMarketEntry::ValidateBid(uint64 bid) const if (bid >= BMAH_MAX_BID) return false; + // GetMinIncrement() is 0 while _currentBid is still 0 (no bids placed yet), which + // otherwise lets any bid of 1 copper or more win a fresh auction outright, bypassing + // the auction's actual starting price. + if (BlackMarketTemplate const* templ = GetTemplate()) + if (bid < templ->MinBid) + return false; + return true; } diff --git a/src/server/game/Handlers/VoidStorageHandler.cpp b/src/server/game/Handlers/VoidStorageHandler.cpp index 488eb7f..c90be68 100644 --- a/src/server/game/Handlers/VoidStorageHandler.cpp +++ b/src/server/game/Handlers/VoidStorageHandler.cpp @@ -46,6 +46,12 @@ void WorldSession::HandleVoidStorageUnlock(WorldPackets::VoidStorage::UnlockVoid return; } + if (!_player->HasEnoughMoney(uint64(VOID_STORAGE_UNLOCK_COST))) + { + TC_LOG_DEBUG("network", "WORLD: HandleVoidStorageUnlock - Player ({}, name: {}) does not have enough money to unlock void storage.", _player->GetGUID().ToString(), _player->GetName()); + return; + } + _player->ModifyMoney(-int64(VOID_STORAGE_UNLOCK_COST)); _player->UnlockVoidStorage(); }