diff --git a/common/repositories/trader_repository.h b/common/repositories/trader_repository.h index 5d2104fc7..b9b3929eb 100644 --- a/common/repositories/trader_repository.h +++ b/common/repositories/trader_repository.h @@ -54,17 +54,31 @@ public: { BulkTraders_Struct all_entries{}; std::vector distinct_traders; + MySQLRequestResult results; - auto results = db.QueryDatabase(fmt::format( - "SELECT DISTINCT(t.char_id), t.char_zone_id, t.char_zone_instance_id, t.char_entity_id, c.name " - "FROM trader AS t " - "JOIN character_data AS c ON t.char_id = c.id " - "WHERE t.char_zone_instance_id = {} " - "ORDER BY t.char_zone_instance_id ASC " - "LIMIT {}", - char_zone_instance_id, - max_results) - ); + if (RuleB(Bazaar, UseAlternateBazaarSearch)) { + results = db.QueryDatabase(fmt::format( + "SELECT DISTINCT(t.char_id), t.char_zone_id, t.char_zone_instance_id, t.char_entity_id, c.name " + "FROM trader AS t " + "JOIN character_data AS c ON t.char_id = c.id " + "WHERE t.char_zone_instance_id = {} " + "ORDER BY t.char_zone_instance_id ASC " + "LIMIT {}", + char_zone_instance_id, + max_results) + ); + } + else { + results = db.QueryDatabase(fmt::format( + "SELECT DISTINCT(t.char_id), t.char_zone_id, t.char_zone_instance_id, t.char_entity_id, c.name " + "FROM trader AS t " + "JOIN character_data AS c ON t.char_id = c.id " + "ORDER BY t.char_zone_instance_id ASC " + "LIMIT {}", + char_zone_instance_id, + max_results) + ); + } distinct_traders.reserve(results.RowCount()); diff --git a/zone/trading.cpp b/zone/trading.cpp index f3aa0a55f..1a1d7bc4d 100644 --- a/zone/trading.cpp +++ b/zone/trading.cpp @@ -2739,8 +2739,6 @@ void Client::SendBulkBazaarTraders() SetTraderCount(results.count); - SetTraderCount(results.count); - auto p_size = 4 + 12 * results.count + results.name_length; auto buffer = std::make_unique(p_size); memset(buffer.get(), 0, p_size);