aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/DungeonFinding/LFGMgr.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index 4153c8f0ccd..45bc4b92e4e 100755
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -1794,10 +1794,10 @@ void LFGMgr::TeleportPlayer(Player* plr, bool out, bool fromOpcode /*= false*/)
/**
Give completion reward to player
- @param[in] dungeonId Dungeonid (Obsolete)
+ @param[in] dungeonId Id of the dungeon finished
@param[in] plr Player to reward
*/
-void LFGMgr::RewardDungeonDoneFor(const uint32 /*dungeonId*/, Player* player)
+void LFGMgr::RewardDungeonDoneFor(const uint32 dungeonId, Player* player)
{
Group* group = player->GetGroup();
if (!group || !group->isLFGGroup())
@@ -1808,6 +1808,12 @@ void LFGMgr::RewardDungeonDoneFor(const uint32 /*dungeonId*/, Player* player)
uint64 guid = player->GetGUID();
uint64 gguid = player->GetGroup()->GetGUID();
+ uint32 gDungeonId = GetDungeon(gguid);
+ if (gDungeonId != dungeonId)
+ {
+ sLog->outDebug("LFGMgr::RewardDungeonDoneFor: [" UI64FMTD "] Finished dungeon %u but group queued for %u. Ignoring", guid, dungeonId, gDungeonId);
+ return;
+ }
if (GetState(guid) == LFG_STATE_FINISHED_DUNGEON)
{