From 7d25cad85ba2b7a50e4678b028f1934fa11beeca Mon Sep 17 00:00:00 2001 From: Patrick Lewis Date: Sat, 7 Aug 2021 10:44:54 -0700 Subject: [PATCH 1/5] feat(Core): add config option for LFG expansion --- src/server/game/DungeonFinding/LFGMgr.cpp | 2 +- src/server/game/World/World.cpp | 1 + src/server/worldserver/worldserver.conf.dist | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 5c9498486a85af..4b45f41fea2358 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -394,7 +394,7 @@ namespace lfg DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty)); uint32 lockData = 0; - if (dungeon->expansion > expansion) + if (dungeon->expansion > expansion && dungeon->expansion > sWorld->getIntConfig(CONFIG_LFG_DUNGEON_FINDER_EXPANSION)) lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION; else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player)) lockData = LFG_LOCKSTATUS_RAID_LOCKED; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 0152f8f548a4e6..cb50b8fecc1a5b 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1309,6 +1309,7 @@ void World::LoadConfigSettings(bool reload) // Dungeon finder m_int_configs[CONFIG_LFG_OPTIONSMASK] = sConfigMgr->GetOption("DungeonFinder.OptionsMask", 3); + m_int_configs[CONFIG_LFG_DUNGEON_FINDER_EXPANSION] = sConfigMgr->GetOption("DungeonFinder.Expansion", 2); // Max instances per hour m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = sConfigMgr->GetOption("AccountInstancesPerHour", 5); diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 954bc665e71f50..9e9d1dc6ae3be1 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -1243,6 +1243,16 @@ DeletedCharacterTicketTrace = 0 DungeonFinder.OptionsMask = 1 +# +# DungeonFinder.Expansion +# Description: Allow setting which expansion can be used in LFG +# 2 - Wotlk (Default) +# 1 - TBC +# 0 - Classic +# Default: 2 + +DungeonFinder.Expansion = 2 + # # AccountInstancesPerHour # Description: Controls the max amount of different instances player can enter within hour From e96b7ba75bfe1b6fb798c5fb94ba621844acc990 Mon Sep 17 00:00:00 2001 From: Patrick Lewis Date: Sat, 7 Aug 2021 10:56:40 -0700 Subject: [PATCH 2/5] feat(Core): update --- src/server/game/World/IWorld.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h index 9410b55e8d3c63..7bbeb9681f0ab6 100644 --- a/src/server/game/World/IWorld.h +++ b/src/server/game/World/IWorld.h @@ -328,6 +328,7 @@ enum WorldIntConfigs CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION, CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS, CONFIG_LFG_OPTIONSMASK, + CONFIG_LFG_DUNGEON_FINDER_EXPANSION, CONFIG_MAX_INSTANCES_PER_HOUR, CONFIG_WINTERGRASP_PLR_MAX, CONFIG_WINTERGRASP_PLR_MIN, From e41d113d2624219e022b13fc7f77a467dd9a3169 Mon Sep 17 00:00:00 2001 From: Patrick Lewis Date: Sat, 7 Aug 2021 11:42:18 -0700 Subject: [PATCH 3/5] feat(Core): update --- src/server/game/DungeonFinding/LFGMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 4b45f41fea2358..0d28a2e0bec52a 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -394,7 +394,7 @@ namespace lfg DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty)); uint32 lockData = 0; - if (dungeon->expansion > expansion && dungeon->expansion > sWorld->getIntConfig(CONFIG_LFG_DUNGEON_FINDER_EXPANSION)) + if (dungeon->expansion > expansion || dungeon->expansion > sWorld->getIntConfig(CONFIG_LFG_DUNGEON_FINDER_EXPANSION)) lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION; else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player)) lockData = LFG_LOCKSTATUS_RAID_LOCKED; From f6479c0240f4f0497631736639e567ffd009bdd1 Mon Sep 17 00:00:00 2001 From: Patrick Lewis Date: Sat, 7 Aug 2021 12:28:51 -0700 Subject: [PATCH 4/5] feat(Core): update --- src/server/game/DungeonFinding/LFGMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 0d28a2e0bec52a..8dbd66c0e59c37 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -394,7 +394,7 @@ namespace lfg DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty)); uint32 lockData = 0; - if (dungeon->expansion > expansion || dungeon->expansion > sWorld->getIntConfig(CONFIG_LFG_DUNGEON_FINDER_EXPANSION)) + if (dungeon->expansion > expansion && (dungeon->expansion > sWorld->getIntConfig(CONFIG_LFG_DUNGEON_FINDER_EXPANSION))) lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION; else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player)) lockData = LFG_LOCKSTATUS_RAID_LOCKED; From 328184f0c442a9ed8252476a4aaf30d6e8509eb5 Mon Sep 17 00:00:00 2001 From: Patrick Lewis Date: Sat, 7 Aug 2021 12:44:38 -0700 Subject: [PATCH 5/5] Revert "feat(Core): update" This reverts commit f6479c0240f4f0497631736639e567ffd009bdd1. --- src/server/game/DungeonFinding/LFGMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 8dbd66c0e59c37..0d28a2e0bec52a 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -394,7 +394,7 @@ namespace lfg DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty)); uint32 lockData = 0; - if (dungeon->expansion > expansion && (dungeon->expansion > sWorld->getIntConfig(CONFIG_LFG_DUNGEON_FINDER_EXPANSION))) + if (dungeon->expansion > expansion || dungeon->expansion > sWorld->getIntConfig(CONFIG_LFG_DUNGEON_FINDER_EXPANSION)) lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION; else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player)) lockData = LFG_LOCKSTATUS_RAID_LOCKED;