diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/World/World.cpp | 14 | ||||
-rw-r--r-- | src/server/game/World/World.h | 1 | ||||
-rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 7 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 41235455857..9ec3ed3b51f 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1426,6 +1426,18 @@ void World::LoadConfigSettings(bool reload) TC_LOG_INFO("server.loading", "VMap data directory is: {}vmaps", m_dataPath); m_int_configs[CONFIG_MAX_WHO] = sConfigMgr->GetIntDefault("MaxWhoListReturns", 49); + m_int_configs[CONFIG_WHO_LIST_UPDATE_INTERVAL] = sConfigMgr->GetIntDefault("WhoList.Update.Interval", 5); + if (int32(m_int_configs[CONFIG_WHO_LIST_UPDATE_INTERVAL]) <= 0) + { + TC_LOG_ERROR("server.loading", "WhoList.Update.Interval ({}) must be > 0, set to default 5 seconds.", m_int_configs[CONFIG_WHO_LIST_UPDATE_INTERVAL]); + m_int_configs[CONFIG_WHO_LIST_UPDATE_INTERVAL] = 5; + } + if (reload) + { + m_timers[WUPDATE_WHO_LIST].SetInterval(m_int_configs[CONFIG_WHO_LIST_UPDATE_INTERVAL] * IN_MILLISECONDS); + m_timers[WUPDATE_WHO_LIST].Reset(); + } + m_bool_configs[CONFIG_START_ALL_SPELLS] = sConfigMgr->GetBoolDefault("PlayerStart.AllSpells", false); m_int_configs[CONFIG_HONOR_AFTER_DUEL] = sConfigMgr->GetIntDefault("HonorPointsAfterDuel", 0); m_bool_configs[CONFIG_RESET_DUEL_COOLDOWNS] = sConfigMgr->GetBoolDefault("ResetDuelCooldowns", false); @@ -2144,7 +2156,7 @@ void 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); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 18bf66d7e22..4df77613332 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -324,6 +324,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, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 344f36e3660..4224f599063 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -716,6 +716,13 @@ ArenaTeam.CharterCost.5v5 = 2000000 MaxWhoListReturns = 49 # +# 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. # Default: 0 - (Enabled, All factions are allowed) |