diff options
| author | kaelima <kaelima@live.se> | 2012-11-05 12:02:08 +0100 | 
|---|---|---|
| committer | kaelima <kaelima@live.se> | 2012-11-05 12:02:08 +0100 | 
| commit | 3c13454ad71b259c50d394a8a467a2570f683827 (patch) | |
| tree | 13b8744efdb5fc8930630f5e5c513f2727c7bb18 /src/server/game/DungeonFinding/LFGScripts.cpp | |
| parent | 19d7f68592d653067c3b84c3d409e59b2724a85d (diff) | |
| parent | c5fdb02305c78d8193f8c3161449e3955d4f7e8a (diff) | |
Merge git://github.com/TrinityCore/TrinityCore into mmaps
Conflicts:
	src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
	src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
	src/server/game/Movement/Spline/MoveSplineInit.cpp
Diffstat (limited to 'src/server/game/DungeonFinding/LFGScripts.cpp')
| -rw-r--r-- | src/server/game/DungeonFinding/LFGScripts.cpp | 41 | 
1 files changed, 40 insertions, 1 deletions
diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp index 10ce42da610..91314e64285 100644 --- a/src/server/game/DungeonFinding/LFGScripts.cpp +++ b/src/server/game/DungeonFinding/LFGScripts.cpp @@ -34,11 +34,17 @@ LFGPlayerScript::LFGPlayerScript() : PlayerScript("LFGPlayerScript")  void LFGPlayerScript::OnLevelChanged(Player* player, uint8 /*oldLevel*/)  { +    if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) +        return; +      sLFGMgr->InitializeLockedDungeons(player);  }  void LFGPlayerScript::OnLogout(Player* player)  { +    if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) +        return; +      uint64 guid = player->GetGUID();      sLFGMgr->LeaveLfg(guid);      LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_REMOVED_FROM_QUEUE); @@ -51,6 +57,24 @@ void LFGPlayerScript::OnLogout(Player* player)  void LFGPlayerScript::OnLogin(Player* player)  { +    if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) +        return; + +    // Temporal: Trying to determine when group data and LFG data gets desynched +    uint64 guid = player->GetGUID(); +    uint64 gguid = sLFGMgr->GetGroup(guid); + +    if (Group const* group = player->GetGroup()) +    { +        uint64 gguid2 = group->GetGUID(); +        if (gguid != gguid2) +        { +            sLog->outError(LOG_FILTER_LFG, "%s on group %u but LFG has group %u saved... Fixing.", +                player->GetSession()->GetPlayerInfo().c_str(), GUID_LOPART(gguid2), GUID_LOPART(gguid)); +            sLFGMgr->SetupGroupMember(guid, group->GetGUID()); +        } +    } +      sLFGMgr->InitializeLockedDungeons(player);      sLFGMgr->SetTeam(player->GetGUID(), player->GetTeam());      // TODO - Restore LfgPlayerData and send proper status to player if it was in a group @@ -69,6 +93,9 @@ LFGGroupScript::LFGGroupScript() : GroupScript("LFGGroupScript")  void LFGGroupScript::OnAddMember(Group* group, uint64 guid)  { +    if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) +        return; +      uint64 gguid = group->GetGUID();      uint64 leader = group->GetLeaderGUID(); @@ -82,7 +109,7 @@ void LFGGroupScript::OnAddMember(Group* group, uint64 guid)          LfgState gstate = sLFGMgr->GetState(gguid);          LfgState state = sLFGMgr->GetState(guid);          sLog->outDebug(LOG_FILTER_LFG, "LFGScripts::OnAddMember [" UI64FMTD "]: added [" UI64FMTD "] leader " UI64FMTD "] gstate: %u, state: %u", gguid, guid, leader, gstate, state); -        LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_CLEAR_LOCK_LIST); +        LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_UPDATE_STATUS);          for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())          {              if (Player* plrg = itr->getSource()) @@ -106,6 +133,9 @@ void LFGGroupScript::OnAddMember(Group* group, uint64 guid)  void LFGGroupScript::OnRemoveMember(Group* group, uint64 guid, RemoveMethod method, uint64 kicker, char const* reason)  { +    if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) +        return; +      uint64 gguid = group->GetGUID();      sLog->outDebug(LOG_FILTER_LFG, "LFGScripts::OnRemoveMember [" UI64FMTD "]: remove [" UI64FMTD "] Method: %d Kicker: [" UI64FMTD "] Reason: %s", gguid, guid, method, kicker, (reason ? reason : "")); @@ -157,6 +187,9 @@ void LFGGroupScript::OnRemoveMember(Group* group, uint64 guid, RemoveMethod meth  void LFGGroupScript::OnDisband(Group* group)  { +    if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) +        return; +      uint64 gguid = group->GetGUID();      sLog->outDebug(LOG_FILTER_LFG, "LFGScripts::OnDisband [" UI64FMTD "]", gguid); @@ -165,6 +198,9 @@ void LFGGroupScript::OnDisband(Group* group)  void LFGGroupScript::OnChangeLeader(Group* group, uint64 newLeaderGuid, uint64 oldLeaderGuid)  { +    if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) +        return; +      uint64 gguid = group->GetGUID();      sLog->outDebug(LOG_FILTER_LFG, "LFGScripts::OnChangeLeader [" UI64FMTD "]: old [" UI64FMTD "] new [" UI64FMTD "]", gguid, newLeaderGuid, oldLeaderGuid); @@ -173,6 +209,9 @@ void LFGGroupScript::OnChangeLeader(Group* group, uint64 newLeaderGuid, uint64 o  void LFGGroupScript::OnInviteMember(Group* group, uint64 guid)  { +    if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) +        return; +      uint64 gguid = group->GetGUID();      uint64 leader = group->GetLeaderGUID();      sLog->outDebug(LOG_FILTER_LFG, "LFGScripts::OnInviteMember [" UI64FMTD "]: invite [" UI64FMTD "] leader [" UI64FMTD "]", gguid, guid, leader);  | 
