feat(Core/Wintergrasp): toggle for VoA pre-battle kick (#25942)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Andrew
2026-05-24 09:34:08 -03:00
committed by GitHub
parent e0046d8ba8
commit f6bbbcc67f
4 changed files with 21 additions and 0 deletions
@@ -3675,6 +3675,19 @@ Wintergrasp.CrashRestartTimer = 10
Wintergrasp.SkipBattleSessionCount = 3500
#
# Wintergrasp.KickVoAPlayers
# Description: Kick players from Vault of Archavon and freeze its bosses
# in the minutes leading up to a Wintergrasp battle, and
# block new entries during wartime / the 10-minute warmup.
# Requires a server restart to take effect (not reloadable).
# Default: 1 - (Enabled, players are warned then teleported to their
# homebind before the battle starts)
# 0 - (Disabled, players stay inside and bosses behave
# normally during Wintergrasp)
Wintergrasp.KickVoAPlayers = 1
#
###################################################################################################
+1
View File
@@ -595,6 +595,7 @@ void WorldConfig::BuildConfigCache()
SetConfigValue<uint32>(CONFIG_WINTERGRASP_RESTART_AFTER_CRASH, "Wintergrasp.CrashRestartTimer", 10);
SetConfigValue<uint32>(CONFIG_WINTERGRASP_SKIP_BATTLE_SESSION_COUNT, "Wintergrasp.SkipBattleSessionCount", 3500);
SetConfigValue<bool>(CONFIG_WINTERGRASP_KICK_VOA_PLAYERS, "Wintergrasp.KickVoAPlayers", true, ConfigValueCache::Reloadable::No);
SetConfigValue<uint32>(CONFIG_BIRTHDAY_TIME, "BirthdayTime", 1222964635);
SetConfigValue<bool>(CONFIG_MINIGOB_MANABONK, "Minigob.Manabonk.Enable", true);
+1
View File
@@ -326,6 +326,7 @@ enum ServerConfigs
CONFIG_WINTERGRASP_NOBATTLETIME,
CONFIG_WINTERGRASP_RESTART_AFTER_CRASH,
CONFIG_WINTERGRASP_SKIP_BATTLE_SESSION_COUNT,
CONFIG_WINTERGRASP_KICK_VOA_PLAYERS,
CONFIG_PACKET_SPOOF_BANMODE,
CONFIG_PACKET_SPOOF_BANDURATION,
CONFIG_WARDEN_CLIENT_RESPONSE_DELAY,
@@ -22,6 +22,7 @@
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellAuras.h"
#include "World.h"
#include "vault_of_archavon.h"
/* Vault of Archavon encounters:
@@ -73,6 +74,8 @@ public:
if (checkTimer >= 60000)
{
checkTimer -= 60000; // one minute
if (!sWorld->getBoolConfig(CONFIG_WINTERGRASP_KICK_VOA_PLAYERS))
return;
if (Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG))
{
if (!bf->IsWarTime())
@@ -133,6 +136,9 @@ public:
if (m_auiEncounter[i] == IN_PROGRESS)
return true;
if (!sWorld->getBoolConfig(CONFIG_WINTERGRASP_KICK_VOA_PLAYERS))
return false;
Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
if (!bf || bf->IsWarTime() || bf->GetTimer() <= 10 * MINUTE * IN_MILLISECONDS)
return true;