added chat commands for GMs

This commit is contained in:
zeb
2025-10-04 14:48:54 -04:00
parent 8fcf697d37
commit 2a6d228f86
3 changed files with 75 additions and 0 deletions

View File

@@ -1584,6 +1584,29 @@ void AuctionHouseBot::InitializeConfiguration()
NeutralConfig.SetMaxItems(sConfigMgr->GetOption<uint32>("AuctionHouseBot.Neutral.MaxItems", 15000)); NeutralConfig.SetMaxItems(sConfigMgr->GetOption<uint32>("AuctionHouseBot.Neutral.MaxItems", 15000));
} }
void AuctionHouseBot::EmptyAuctionHouses()
{
vector<FactionSpecificAuctionHouseConfig> configs = { AllianceConfig, HordeConfig, NeutralConfig };
auto trans = CharacterDatabase.BeginTransaction();
for (FactionSpecificAuctionHouseConfig config : configs) {
AuctionHouseObject* auctionHouse = sAuctionMgr->GetAuctionsMap(config.GetAHFID());
auto auctionEntryMap = auctionHouse->GetAuctions();
for (auto itr = auctionEntryMap.begin(); itr != auctionEntryMap.end();)
{
AuctionEntry* auction = itr->second;
auction->DeleteFromDB(trans);
sAuctionMgr->RemoveAItem(auction->item_guid);
auctionHouse->RemoveAuction(auction);
itr = auctionEntryMap.erase(itr);
}
}
CharacterDatabase.CommitTransaction(trans);
}
uint32 AuctionHouseBot::GetRandomStackValue(std::string configKeyString, uint32 defaultValue) uint32 AuctionHouseBot::GetRandomStackValue(std::string configKeyString, uint32 defaultValue)
{ {
uint32 stackValue = sConfigMgr->GetOption<uint32>(configKeyString, defaultValue); uint32 stackValue = sConfigMgr->GetOption<uint32>(configKeyString, defaultValue);

View File

@@ -298,6 +298,7 @@ public:
void Update(); void Update();
void InitializeConfiguration(); void InitializeConfiguration();
void EmptyAuctionHouses();
uint32 GetRandomStackValue(std::string configKeyString, uint32 defaultValue); uint32 GetRandomStackValue(std::string configKeyString, uint32 defaultValue);
uint32 GetRandomStackIncrementValue(std::string configKeyString, uint32 defaultValue); uint32 GetRandomStackIncrementValue(std::string configKeyString, uint32 defaultValue);
void SetCyclesBetweenBuyOrSell(); void SetCyclesBetweenBuyOrSell();

View File

@@ -2,6 +2,7 @@
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
*/ */
#include "Chat.h"
#include "ScriptMgr.h" #include "ScriptMgr.h"
#include "AuctionHouseBot.h" #include "AuctionHouseBot.h"
#include "Log.h" #include "Log.h"
@@ -118,9 +119,59 @@ public:
} }
}; };
class AHBot_CommandScript : public CommandScript
{
public:
AHBot_CommandScript() : CommandScript("AHBot_CommandScript") { }
Acore::ChatCommands::ChatCommandTable GetCommands() const override
{
static Acore::ChatCommands::ChatCommandTable AHBotCommandTable = {
{"update", HandleAHBotUpdateCommand, SEC_GAMEMASTER, Acore::ChatCommands::Console::Yes},
{"reload", HandleAHBotReloadCommand, SEC_GAMEMASTER, Acore::ChatCommands::Console::Yes},
{"empty", HandleAHBotEmptyCommand, SEC_GAMEMASTER, Acore::ChatCommands::Console::Yes}
};
static Acore::ChatCommands::ChatCommandTable commandTable = {
{"ahbot", AHBotCommandTable},
};
return commandTable;
}
static bool HandleAHBotUpdateCommand(ChatHandler* handler, const char* /*args*/)
{
LOG_INFO("module", "AuctionHouseBot: Updating Auction House...");
handler->PSendSysMessage("AuctionHouseBot: Updating Auction House...");
AuctionHouseBot::instance()->Update();
return true;
}
static bool HandleAHBotReloadCommand(ChatHandler* handler, char const* /*args*/)
{
LOG_INFO("module", "AuctionHouseBot: Reloading Config...");
handler->PSendSysMessage("AuctionHouseBot: Reloading Config...");
// Reload config file with isReload = true
sConfigMgr->LoadModulesConfigs(true, false);
AuctionHouseBot::instance()->InitializeConfiguration();
AuctionHouseBot::instance()->PopulateItemCandidatesAndProportions();
return true;
}
static bool HandleAHBotEmptyCommand(ChatHandler* handler, char const* /*args*/)
{
LOG_INFO("module", "AuctionHouseBot: Emptying Auction House...");
handler->PSendSysMessage("AuctionHouseBot: Emptying Auction House...");
AuctionHouseBot::instance()->EmptyAuctionHouses();
return true;
}
};
void AddAHBotScripts() void AddAHBotScripts()
{ {
new AHBot_WorldScript(); new AHBot_WorldScript();
new AHBot_AuctionHouseScript(); new AHBot_AuctionHouseScript();
new AHBot_MailScript(); new AHBot_MailScript();
new AHBot_CommandScript();
} }