Core/Misc: Add configuration option for setting the update interval of the Who list cache (#30750)

(cherry picked from commit 0bd56da09b1f0ae34605a1a6fdd14ca26cd42d4c)
This commit is contained in:
Gildor
2026-06-23 22:48:26 +02:00
committed by Shauren
parent f4680d71f5
commit 6743e8018a
3 changed files with 12 additions and 1 deletions
+4 -1
View File
@@ -853,6 +853,7 @@ void World::LoadConfigSettings(bool reload)
{ .Name = "Respawn.DynamicMinimumGameObject"sv, .DefaultValue = 10, .Index = CONFIG_RESPAWN_DYNAMICMINIMUM_GAMEOBJECT },
{ .Name = "Respawn.WarningFrequency"sv, .DefaultValue = 1800, .Index = CONFIG_RESPAWN_GUIDWARNING_FREQUENCY },
{ .Name = "MaxWhoListReturns"sv, .DefaultValue = 49, .Index = CONFIG_MAX_WHO },
{ .Name = "WhoList.Update.Interval"sv, .DefaultValue = 5, .Index = CONFIG_WHO_LIST_UPDATE_INTERVAL, .Min = 1 },
{ .Name = "HonorPointsAfterDuel"sv, .DefaultValue = 0, .Index = CONFIG_HONOR_AFTER_DUEL },
{ .Name = "PvPToken.MapAllowType"sv, .DefaultValue = 4, .Index = CONFIG_PVP_TOKEN_MAP_TYPE, .Min = 1, .Max = 4 },
{ .Name = "PvPToken.ItemID"sv, .DefaultValue = 29434, .Index = CONFIG_PVP_TOKEN_ID },
@@ -1222,6 +1223,8 @@ void World::LoadConfigSettings(bool reload)
m_timers[WUPDATE_CLEANDB].Reset();
m_timers[WUPDATE_AUTOBROADCAST].SetInterval(m_int_configs[CONFIG_AUTOBROADCAST_INTERVAL]);
m_timers[WUPDATE_AUTOBROADCAST].Reset();
m_timers[WUPDATE_WHO_LIST].SetInterval(m_int_configs[CONFIG_WHO_LIST_UPDATE_INTERVAL] * IN_MILLISECONDS);
m_timers[WUPDATE_WHO_LIST].Reset();
WorldStateMgr::SetValue(WS_CURRENT_PVP_SEASON_ID, getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS) ? getIntConfig(CONFIG_ARENA_SEASON_ID) : 0, false, nullptr);
WorldStateMgr::SetValue(WS_PREVIOUS_PVP_SEASON_ID, getIntConfig(CONFIG_ARENA_SEASON_ID) - getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS), false, nullptr);
@@ -1976,7 +1979,7 @@ bool World::SetInitialWorldSettings()
m_timers[WUPDATE_CHECK_FILECHANGES].SetInterval(500);
m_timers[WUPDATE_WHO_LIST].SetInterval(5 * IN_MILLISECONDS); // update who list cache every 5 seconds
m_timers[WUPDATE_WHO_LIST].SetInterval(getIntConfig(CONFIG_WHO_LIST_UPDATE_INTERVAL) * IN_MILLISECONDS); // update who list cache every 5 seconds
m_timers[WUPDATE_CHANNEL_SAVE].SetInterval(getIntConfig(CONFIG_PRESERVE_CUSTOM_CHANNEL_INTERVAL) * MINUTE * IN_MILLISECONDS);
+1
View File
@@ -346,6 +346,7 @@ enum WorldIntConfigs : uint32
CONFIG_ARENA_START_PERSONAL_RATING,
CONFIG_ARENA_START_MATCHMAKER_RATING,
CONFIG_MAX_WHO,
CONFIG_WHO_LIST_UPDATE_INTERVAL,
CONFIG_HONOR_AFTER_DUEL,
CONFIG_PVP_TOKEN_MAP_TYPE,
CONFIG_PVP_TOKEN_ID,
@@ -764,6 +764,13 @@ ArenaTeam.CharterCost.5v5 = 2000000
MaxWhoListReturns = 50
#
# WhoList.Update.Interval
# Description: Interval in seconds for Who List to get updated
# Default: 5 (seconds)
WhoList.Update.Interval = 5
#
# CharacterCreating.Disabled
# Description: Disable character creation for players based on faction.