diff --git a/conf/individualProgression.conf.dist b/conf/individualProgression.conf.dist index 7eae4c1..0a8659b 100644 --- a/conf/individualProgression.conf.dist +++ b/conf/individualProgression.conf.dist @@ -168,7 +168,6 @@ IndividualProgression.FishingFix = 1 # Water Breath Timer to 1 Minute (Vanilla value, changed to 3 Minutes in WotLK) # Disable Quest Object sparkle and object quest markers (added in patch 2.3) # Enable PlayerSettings (required by Individual Progression module) -# Disable the LFG tool, aside from special Holiday events otherwise inaccessible # Do not enforce DBC Item Attributes, so that Vanilla item changes can override client values # # Default: 1 - Enabled @@ -294,9 +293,8 @@ IndividualProgression.PvPGearRequirements = 1 # IndividualProgression.DisableRDF # Description: Enable or disable the Random Dungeon Finder feature within the context of Individual Progression. # Queuing for specific dungeons and Holiday Events will still be possible. (Use DungeonFinder.OptionsMask in worldserver.conf to completely disable the LFG tool.) -# Please note that the LFG tool is disabled (except for Holiday events) by default if SimpleConfigOverride is enabled. -# Default: 0 - Enabled -# 1 - Disabled +# Default: 0 - RDF Enabled +# 1 - RDF Disabled # IndividualProgression.DisableRDF = 0 diff --git a/src/IndividualProgression.cpp b/src/IndividualProgression.cpp index 4ab8391..f22f458 100644 --- a/src/IndividualProgression.cpp +++ b/src/IndividualProgression.cpp @@ -307,6 +307,7 @@ private: sIndividualProgression->LoadCustomProgressionEntries(sConfigMgr->GetOption("IndividualProgression.CustomProgression", "")); sIndividualProgression->earlyDungeonSet2 = sConfigMgr->GetOption("IndividualProgression.AllowEarlyDungeonSet2", true); sIndividualProgression->pvpGearRequirements = sConfigMgr->GetOption("IndividualProgression.PvPGearRequirements", true); + sIndividualProgression->DisableRDF = sConfigMgr->GetOption("IndividualProgression.DisableRDF", false); sIndividualProgression->excludeAccounts = sConfigMgr->GetOption("IndividualProgression.ExcludeAccounts", false); sIndividualProgression->excludedAccountsRegex = sConfigMgr->GetOption("IndividualProgression.ExcludedAccountsRegex", ""); } @@ -346,13 +347,17 @@ public: if (sIndividualProgression->simpleConfigOverride) { sWorld->setIntConfig(CONFIG_WATER_BREATH_TIMER, 60000); - sWorld->setIntConfig(CONFIG_LFG_OPTIONSMASK, 4); sWorld->setBoolConfig(CONFIG_OBJECT_QUEST_MARKERS, false); sWorld->setBoolConfig(CONFIG_OBJECT_SPARKLES, false); sWorld->setBoolConfig(CONFIG_PLAYER_SETTINGS_ENABLED, true); sWorld->setBoolConfig(CONFIG_LOW_LEVEL_REGEN_BOOST, false); sWorld->setBoolConfig(CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES, false); } + + if (sIndividualProgression->DisableRDF) + { + sWorld->setIntConfig(CONFIG_LFG_OPTIONSMASK, 4); + } } }; diff --git a/src/IndividualProgression.h b/src/IndividualProgression.h index 3bda44b..23bf648 100644 --- a/src/IndividualProgression.h +++ b/src/IndividualProgression.h @@ -226,7 +226,7 @@ public: std::map customProgressionMap; questXpMapType questXpMap; float vanillaPowerAdjustment, vanillaHealthAdjustment, tbcPowerAdjustment, tbcHealthAdjustment, vanillaHealingAdjustment, tbcHealingAdjustment, previousGearTuning; - bool enabled, questXpFix, hunterPetLevelFix, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp, disableDefaultProgression, earlyDungeonSet2, requireNaxxStrath, pvpGearRequirements, excludeAccounts; + bool enabled, questXpFix, hunterPetLevelFix, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp, disableDefaultProgression, earlyDungeonSet2, requireNaxxStrath, pvpGearRequirements, DisableRDF, excludeAccounts; int progressionLimit, startingProgression, tbcRacesProgressionLevel, deathKnightProgressionLevel, deathKnightStartingProgression; std::string excludedAccountsRegex; diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index ad2887b..58afcea 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -1019,37 +1019,6 @@ public: } } - void OnPlayerQueueRandomDungeon(Player* player, uint32& rDungeonId) override - { - // List of exceptions for seasonal event dungeons - std::set seasonalEventDungeons = { 285, 286, 287, 288 }; - if (seasonalEventDungeons.find(rDungeonId) != seasonalEventDungeons.end()) - { - return; - } - - // Check if RDF is disabled in the context of Individual Progression - if (sConfigMgr->GetOption("IndividualProgression.DisableRDF", false)) - { - ChatHandler(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_PRE_TBC) || (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_TBC) && (player->GetLevel() <= IP_LEVEL_VANILLA))) - { - rDungeonId = RDF_CLASSIC; - } - else if ((rDungeonId == RDF_WRATH_OF_THE_LICH_KING && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) || (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5) && (player->GetLevel() <= IP_LEVEL_TBC))) - { - rDungeonId = RDF_THE_BURNING_CRUSADE; - } - else if ((rDungeonId == RDF_WRATH_OF_THE_LICH_KING_HEROIC && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) || (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5) && (player->GetLevel() <= IP_LEVEL_TBC))) - { - rDungeonId = RDF_THE_BURNING_CRUSADE_HEROIC; - } - } - bool OnPlayerCanEquipItem(Player* player, uint8 /*slot*/, uint16& /*dest*/, Item* pItem, bool /*swap*/, bool /*not_loading*/) override { if (sIndividualProgression->pvpGearRequirements)