From 51f3ebebc060886978224cb1d7ebaf83903032dc Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sun, 31 May 2026 10:10:27 -0300 Subject: [PATCH] feat(Scripts/Commands): default battle id to Wintergrasp when omitted (#26035) Co-authored-by: Claude Opus 4.7 (1M context) --- .../rev_1780189963547827100.sql | 12 ++++++++++++ src/server/scripts/Commands/cs_bf.cpp | 19 +++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1780189963547827100.sql diff --git a/data/sql/updates/pending_db_world/rev_1780189963547827100.sql b/data/sql/updates/pending_db_world/rev_1780189963547827100.sql new file mode 100644 index 0000000000..29c8a710ad --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1780189963547827100.sql @@ -0,0 +1,12 @@ +-- +-- Update `command` help text for .bf subcommands: #battleid is now optional +-- and defaults to 1 (Wintergrasp) when omitted. + +DELETE FROM `command` WHERE `name` IN ('bf start', 'bf stop', 'bf switch', 'bf enable', 'bf timer', 'bf queue'); +INSERT INTO `command` (`name`, `security`, `help`) VALUES +('bf start', 3, 'Syntax: .bf start [#battleid]\r\n#battleid is optional and defaults to 1 (Wintergrasp).'), +('bf stop', 3, 'Syntax: .bf stop [#battleid]\r\n#battleid is optional and defaults to 1 (Wintergrasp).'), +('bf switch', 3, 'Syntax: .bf switch [#battleid]\r\n#battleid is optional and defaults to 1 (Wintergrasp).'), +('bf enable', 3, 'Syntax: .bf enable [#battleid]\r\n#battleid is optional and defaults to 1 (Wintergrasp).'), +('bf timer', 3, 'Syntax: .bf timer [#battleid] #timer\r\n#battleid is optional and defaults to 1 (Wintergrasp).\r\n#timer: use a timestring like "1h15m30s".'), +('bf queue', 2, 'Syntax: .bf queue [#battleid]\r\nDisplays all players currently in queue, invited, or actively in war for the specified battlefield.\r\n#battleid is optional and defaults to 1 (Wintergrasp).'); diff --git a/src/server/scripts/Commands/cs_bf.cpp b/src/server/scripts/Commands/cs_bf.cpp index 3e8d0502b7..9acd87d38e 100644 --- a/src/server/scripts/Commands/cs_bf.cpp +++ b/src/server/scripts/Commands/cs_bf.cpp @@ -49,8 +49,9 @@ public: return commandTable; } - static bool HandleBattlefieldStart(ChatHandler* handler, uint32 battleId) + static bool HandleBattlefieldStart(ChatHandler* handler, Optional battleIdArg) { + uint32 const battleId = battleIdArg.value_or(BATTLEFIELD_BATTLEID_WG); Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleId); if (!bf) @@ -67,8 +68,9 @@ public: return true; } - static bool HandleBattlefieldEnd(ChatHandler* handler, uint32 battleId) + static bool HandleBattlefieldEnd(ChatHandler* handler, Optional battleIdArg) { + uint32 const battleId = battleIdArg.value_or(BATTLEFIELD_BATTLEID_WG); Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleId); if (!bf) @@ -85,8 +87,9 @@ public: return true; } - static bool HandleBattlefieldEnable(ChatHandler* handler, uint32 battleId) + static bool HandleBattlefieldEnable(ChatHandler* handler, Optional battleIdArg) { + uint32 const battleId = battleIdArg.value_or(BATTLEFIELD_BATTLEID_WG); Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleId); if (!bf) @@ -113,8 +116,9 @@ public: return true; } - static bool HandleBattlefieldSwitch(ChatHandler* handler, uint32 battleId) + static bool HandleBattlefieldSwitch(ChatHandler* handler, Optional battleIdArg) { + uint32 const battleId = battleIdArg.value_or(BATTLEFIELD_BATTLEID_WG); Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleId); if (!bf) @@ -131,13 +135,15 @@ public: return true; } - static bool HandleBattlefieldTimer(ChatHandler* handler, uint32 battleId, std::string timeStr) + static bool HandleBattlefieldTimer(ChatHandler* handler, Optional battleIdArg, std::string timeStr) { if (timeStr.empty()) { return false; } + uint32 const battleId = battleIdArg.value_or(BATTLEFIELD_BATTLEID_WG); + if (Acore::StringTo(timeStr).value_or(0) < 0) { handler->SendErrorMessage(LANG_BAD_VALUE); @@ -173,8 +179,9 @@ public: return true; } - static bool HandleBattlefieldQueue(ChatHandler* handler, uint32 battleId) + static bool HandleBattlefieldQueue(ChatHandler* handler, Optional battleIdArg) { + uint32 const battleId = battleIdArg.value_or(BATTLEFIELD_BATTLEID_WG); Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleId); if (!bf)