diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 474050f10..48f45f6b8 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -405,7 +405,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) lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION; else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player)) lockData = LFG_LOCKSTATUS_RAID_LOCKED; @@ -572,6 +572,7 @@ namespace lfg else { rDungeonId = (*dungeons.begin()); + sScriptMgr->OnPlayerQueueRandomDungeon(player, rDungeonId); } // No break on purpose (Random can only be dungeon or heroic dungeon) [[fallthrough]]; diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 8cece2e61..f42f18bf5 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1629,6 +1629,11 @@ void ScriptMgr::OnPlayerAddToBattleground(Player* player, Battleground* bg) FOREACH_SCRIPT(PlayerScript)->OnAddToBattleground(player, bg); } +void ScriptMgr::OnPlayerQueueRandomDungeon(Player* player, uint32 & rDungeonId) +{ + FOREACH_SCRIPT(PlayerScript)->OnQueueRandomDungeon(player, rDungeonId); +} + void ScriptMgr::OnPlayerRemoveFromBattleground(Player* player, Battleground* bg) { FOREACH_SCRIPT(PlayerScript)->OnRemoveFromBattleground(player, bg); diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 8bcba63ae..2e77c7a92 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -841,6 +841,9 @@ public: // Called when a player is added to battleground virtual void OnAddToBattleground(Player* /*player*/, Battleground* /*bg*/) { } + // Called when a player queues a Random Dungeon using the RDF (Random Dungeon Finder) + virtual void OnQueueRandomDungeon(Player* /*player*/, uint32 & /*rDungeonId*/) { } + // Called when a player is removed from battleground virtual void OnRemoveFromBattleground(Player* /*player*/, Battleground* /*bg*/) { } @@ -1646,6 +1649,7 @@ public: /* PlayerScript */ bool OnBeforePlayerTeleport(Player* player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit* target); void OnPlayerUpdateFaction(Player* player); void OnPlayerAddToBattleground(Player* player, Battleground* bg); + void OnPlayerQueueRandomDungeon(Player* player, uint32 & rDungeonId); void OnPlayerRemoveFromBattleground(Player* player, Battleground* bg); void OnAchievementComplete(Player* player, AchievementEntry const* achievement); bool OnBeforeAchievementComplete(Player* player, AchievementEntry const* achievement); diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h index bb66d422e..97c820e7b 100644 --- a/src/server/game/World/IWorld.h +++ b/src/server/game/World/IWorld.h @@ -344,7 +344,6 @@ 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, diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 6de3a1323..001ccf346 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1321,7 +1321,6 @@ 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 c1e2f9852..1458d239c 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -1252,16 +1252,6 @@ 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