From 12570dc2ba484017c4bca63c0cd9b9c8c4e15be8 Mon Sep 17 00:00:00 2001 From: NathanHandley Date: Sun, 21 Sep 2025 11:07:45 -0500 Subject: [PATCH] Add proper live server config reload support --- src/AuctionHouseBot.cpp | 7 +------ src/AuctionHouseBot.h | 1 - src/AuctionHouseBotScript.cpp | 15 ++++++++++++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/AuctionHouseBot.cpp b/src/AuctionHouseBot.cpp index dd53e8e..5de5d9e 100644 --- a/src/AuctionHouseBot.cpp +++ b/src/AuctionHouseBot.cpp @@ -1183,12 +1183,6 @@ void AuctionHouseBot::Update() ObjectAccessor::RemoveObject(&_AHBplayer); } -void AuctionHouseBot::Initialize() -{ - // Build a list of newItemsToListCount that can be pulled from for auction - PopulateItemCandidatesAndProportions(); -} - void AuctionHouseBot::InitializeConfiguration() { debug_Out = sConfigMgr->GetOption("AuctionHouseBot.DEBUG", false); @@ -1442,6 +1436,7 @@ uint32 AuctionHouseBot::GetRandomStackIncrementValue(std::string configKeyString void AuctionHouseBot::AddCharacters(std::string characterGUIDString) { + AHCharacters.clear(); std::string delimitedValue; std::stringstream characterGUIDStream; std::set characterGUIDs; diff --git a/src/AuctionHouseBot.h b/src/AuctionHouseBot.h index ab0ee42..f0e4eab 100644 --- a/src/AuctionHouseBot.h +++ b/src/AuctionHouseBot.h @@ -284,7 +284,6 @@ public: ~AuctionHouseBot(); void Update(); - void Initialize(); void InitializeConfiguration(); uint32 GetRandomStackValue(std::string configKeyString, uint32 defaultValue); uint32 GetRandomStackIncrementValue(std::string configKeyString, uint32 defaultValue); diff --git a/src/AuctionHouseBotScript.cpp b/src/AuctionHouseBotScript.cpp index 925cb1a..1abe11c 100644 --- a/src/AuctionHouseBotScript.cpp +++ b/src/AuctionHouseBotScript.cpp @@ -11,18 +11,27 @@ class AHBot_WorldScript : public WorldScript { +private: + bool HasPerformedStartup; + public: - AHBot_WorldScript() : WorldScript("AHBot_WorldScript") { } + AHBot_WorldScript() : WorldScript("AHBot_WorldScript"), HasPerformedStartup(false) { } void OnAfterConfigLoad(bool /*reload*/) override { auctionbot->InitializeConfiguration(); + if (HasPerformedStartup == true) + { + LOG_INFO("server.loading", "AuctionHouseBot: (Re)populating item candidate lists ..."); + auctionbot->PopulateItemCandidatesAndProportions(); + } } void OnStartup() override { - LOG_INFO("server.loading", "Initialize AuctionHouseBot..."); - auctionbot->Initialize(); + LOG_INFO("server.loading", "AuctionHouseBot: (Re)populating item candidate lists ..."); + auctionbot->PopulateItemCandidatesAndProportions(); + HasPerformedStartup = true; } };