diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index cbc0a6e..fee54df 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -347,20 +347,41 @@ public: } void OnQueueRandomDungeon(Player* player, uint32& rDungeonId) override - { - if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40)) - { - rDungeonId = RDF_CLASSIC; - } - else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) - { - rDungeonId = RDF_THE_BURNING_CRUSADE; - } - else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING_HEROIC && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) - { - rDungeonId = RDF_THE_BURNING_CRUSADE_HEROIC; - } - } + { + // Check if RDF is disabled in the context of Individual Progression + if (sConfigMgr->GetOption("IndividualProgression.DisableRDF", false)) + { + // Notify the player + player->GetSession()->SendNotification("The Random Dungeon feature is currently disabled by the Individual Progression module."); + rDungeonId = 1000; // Set dungeon ID to an invalid value to cancel the queuing + return; + } + + if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40)) + { + rDungeonId = RDF_CLASSIC; + } + else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) + { + rDungeonId = RDF_THE_BURNING_CRUSADE; + } + else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING_HEROIC && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) + { + rDungeonId = RDF_THE_BURNING_CRUSADE_HEROIC; + } + } + + bool CanJoinLfg(Player* player, uint8 roles, lfg::LfgDungeonSet& dungeons, const std::string& comment) override + { + // Check if LFG is disabled in the context of Individual Progression + if (sConfigMgr->GetOption("IndividualProgression.DisableLFG", false)) + { + player->GetSession()->SendNotification("The Looking For Group feature is currently disabled by the Individual Progression module."); + return false; // Prevent the player from joining LFG + } + + return true; + } bool CanEquipItem(Player* player, uint8 /*slot*/, uint16& /*dest*/, Item* pItem, bool /*swap*/, bool /*not_loading*/) override {