fix(Core/DungeonFinder): misc improvements (#7488)

- Players should be able to enter the same dungeon if just completed it
- Properly define if the proposal is new
- Set teleport point to the nearest graveyard if teleported to dungeon from other instance
- Display completed encounters when joining LFG in progress (excluding random)
- Closes #5914
- Closes #7388
This commit is contained in:
UltraNix
2021-09-01 10:44:29 +02:00
committed by GitHub
parent a69be39fcb
commit 498faf380b
8 changed files with 131 additions and 33 deletions

View File

@@ -119,8 +119,19 @@ void WorldSession::HandleGroupInviteOpcode(WorldPacket& recvData)
}
Group* group = GetPlayer()->GetGroup();
if (group && (group->isBGGroup() || group->isBFGroup()))
group = GetPlayer()->GetOriginalGroup();
if (group)
{
if (group->isLFGGroup() && group->IsLfgRandomInstance())
{
SendPartyResult(PARTY_OP_INVITE, membername, ERR_TARGET_NOT_IN_INSTANCE_S);
return;
}
if (group->isBGGroup() || group->isBFGroup())
{
group = GetPlayer()->GetOriginalGroup();
}
}
Group* group2 = player->GetGroup();
if (group2 && (group2->isBGGroup() || group2->isBFGroup()))

View File

@@ -151,7 +151,7 @@ void WorldSession::HandleLfgTeleportOpcode(WorldPacket& recvData)
recvData >> out;
LOG_DEBUG("network", "CMSG_LFG_TELEPORT [%s] out: %u", GetPlayer()->GetGUID().ToString().c_str(), out ? 1 : 0);
sLFGMgr->TeleportPlayer(GetPlayer(), out, true);
sLFGMgr->TeleportPlayer(GetPlayer(), out);
}
void WorldSession::HandleLfgPlayerLockInfoRequestOpcode(WorldPacket& /*recvData*/)