33 data <<
uint32(lock.size());
34 for (lfg::LfgLockMap::const_iterator it = lock.begin(); it != lock.end(); ++it)
37 data <<
uint32(it->second);
43 data <<
uint8(lockMap.size());
44 for (lfg::LfgLockPartyMap::const_iterator it = lockMap.begin(); it != lockMap.end(); ++it)
67 uint32 dungeon = slot & 0x00FFFFFF;
69 newDungeons.insert(dungeon);
72 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_JOIN {} roles: {}, Dungeons: {}, Comment: {}",
96 recvData >> proposalID;
99 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_PROPOSAL_RESULT {} proposal: {} accept: {}",
112 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_SET_ROLES {} Not in group",
117 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_SET_ROLES: Group {}, Player {}, Roles: {}",
119 sLFGMgr->UpdateRoleCheck(gguid, guid, roles);
127 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_SET_COMMENT {} comment: {}",
139 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_SET_BOOT_VOTE {} agree: {}",
141 sLFGMgr->UpdateBoot(guid, agree);
156 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_PLAYER_LOCK_INFO_REQUEST {}",
179 data <<
uint8(randomDungeons.size());
180 for (lfg::LfgDungeonSet::const_iterator it = randomDungeons.begin(); it != randomDungeons.end(); ++it)
184 Quest const* quest =
nullptr;
250 Player* plrg = itr->GetSource();
258 lockMap[pguid] =
sLFGMgr->GetLockedDungeons(pguid);
262 for (lfg::LfgLockPartyMap::const_iterator it = lockMap.begin(); it != lockMap.end(); ++it)
263 size += 8 + 4 +
uint32(it->second.size()) * (4 + 4);
275 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_LFR_JOIN {} dungeon entry: {}",
283 recvData >> dungeonId;
284 TC_LOG_DEBUG(
"lfg",
"CMSG_LFG_LFR_LEAVE {} dungeonId: {}",
328 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_UPDATE_PLAYER {} updatetype: {}",
332 data <<
uint8(size > 0);
335 data <<
uint8(queued);
340 for (lfg::LfgDungeonSet::const_iterator it = updateData.
dungeons.begin(); it != updateData.
dungeons.end(); ++it)
369 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_UPDATE_PARTY {} updatetype: {}",
373 data <<
uint8(size > 0);
377 data <<
uint8(queued);
380 for (
uint8 i = 0; i < 3; ++i)
384 for (lfg::LfgDungeonSet::const_iterator it = updateData.
dungeons.begin(); it != updateData.
dungeons.end(); ++it)
393 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_ROLE_CHOSEN {} guid: {} roles: {}",
398 data <<
uint8(roles > 0);
416 data <<
uint8(dungeons.size());
417 if (!dungeons.empty())
418 for (lfg::LfgDungeonSet::iterator it = dungeons.begin(); it != dungeons.end(); ++it)
422 if (!roleCheck.
roles.empty())
426 uint8 roles = roleCheck.
roles.find(guid)->second;
428 data <<
uint8(roles > 0);
433 for (lfg::LfgRolesMap::const_iterator it = roleCheck.
roles.begin(); it != roleCheck.
roles.end(); ++it)
435 if (it->first == roleCheck.
leader)
441 data <<
uint8(roles > 0);
453 for (lfg::LfgLockPartyMap::const_iterator it = joinData.
lockmap.begin(); it != joinData.
lockmap.end(); ++it)
454 size += 8 + 4 +
uint32(it->second.size()) * (4 + 4);
456 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_JOIN_RESULT {} checkResult: {} checkValue: {}",
469 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_QUEUE_STATUS {} state: {}, dungeon: {}, waitTime: {}, "
470 "avgWaitTime: {}, waitTimeTanks: {}, waitTimeHealer: {}, waitTimeDps: {}, "
471 "queuedTime: {}, tanks: {}, healers: {}, dps: {}",
495 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_PLAYER_REWARD {} rdungeonEntry: {}, sdungeonEntry: {}, done: {}",
509 data <<
uint8(itemNum);
531 for (lfg::LfgAnswerContainer::const_iterator it = boot.
votes.begin(); it != boot.
votes.end(); ++it)
540 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_BOOT_PROPOSAL_UPDATE {} inProgress: {} - "
541 "didVote: {} - agree: {} - victim: {} votes: {} - agrees: {} - left: {} - "
542 "needed: {} - reason {}",
555 data << boot.
reason.c_str();
563 bool silent = !proposal.
isNew && gguid == proposal.
group;
566 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_PROPOSAL_UPDATE {} state: {}",
573 if (playerDungeons.find(proposal.
dungeonId) == playerDungeons.end())
574 dungeonEntry = (*playerDungeons.begin());
577 dungeonEntry =
sLFGMgr->GetLFGDungeonEntry(dungeonEntry);
580 data <<
uint32(dungeonEntry);
584 data <<
uint8(silent);
587 for (lfg::LfgProposalPlayerContainer::const_iterator it = proposal.
players.begin(); it != proposal.
players.end(); ++it)
592 data <<
uint8(it->first == guid);
615 data <<
uint8(update);
628 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_OFFER_CONTINUE {} dungeon entry: {}",
631 data <<
uint32(dungeonEntry);
637 TC_LOG_DEBUG(
"lfg",
"SMSG_LFG_TELEPORT_DENIED {} reason: {}",
DBCStorage< LFGDungeonEntry > sLFGDungeonStore(LFGDungeonEntryfmt)
void BuildPartyLockDungeonBlock(WorldPacket &data, lfg::LfgLockPartyMap const &lockMap)
void BuildPlayerLockDungeonBlock(WorldPacket &data, lfg::LfgLockMap const &lock)
#define TC_LOG_DEBUG(filterType__,...)
#define QUEST_REWARDS_COUNT
ObjectGuid GetGUID() const
GroupReference * GetFirstMember()
ObjectGuid GetLeaderGUID() const
std::string ToString() const
static ObjectGuid GetGUID(Object const *o)
bool CanRewardQuest(Quest const *quest, bool msg)
uint32 GetXPReward(Player const *player) const
uint32 RewardItemIdCount[QUEST_REWARDS_COUNT]
int32 GetRewOrReqMoney(Player const *player=nullptr) const
uint32 GetRewItemsCount() const
uint32 RewardItemId[QUEST_REWARDS_COUNT]
Array< uint32, 50 > Slots
void SendLfgPartyLockInfo()
void HandleLfgPartyLockInfoRequestOpcode(WorldPacket &recvData)
void SendLfgJoinResult(lfg::LfgJoinResultData const &joinData)
void HandleLfgSetCommentOpcode(WorldPacket &recvData)
void SendLfgQueueStatus(lfg::LfgQueueStatusData const &queueData)
void HandleLfgSetBootVoteOpcode(WorldPacket &recvData)
void SendPacket(WorldPacket const *packet)
Send a packet to the client.
void SendLfgTeleportError(uint8 err)
void SendLfgUpdatePlayer(lfg::LfgUpdateData const &updateData)
void SendLfgLfrList(bool update)
void SendLfgUpdateParty(lfg::LfgUpdateData const &updateData)
std::string GetPlayerInfo() const
void SendLfgPlayerReward(lfg::LfgPlayerRewardData const &lfgPlayerRewardData)
Player * GetPlayer() const
void HandleLfgGetStatus(WorldPacket &recvData)
void HandleLfgTeleportOpcode(WorldPacket &recvData)
void SendLfgOfferContinue(uint32 dungeonEntry)
void HandleLfrLeaveOpcode(WorldPacket &recvData)
void SendLfgRoleCheckUpdate(lfg::LfgRoleCheck const &pRoleCheck)
void HandleLfgLeaveOpcode(WorldPackets::LFG::LFGLeave &lfgleave)
void HandleLfgPlayerLockInfoRequestOpcode(WorldPacket &recvData)
void HandleLfgSetRolesOpcode(WorldPacket &recvData)
void HandleLfgJoinOpcode(WorldPackets::LFG::LFGJoin &lfgJoin)
void HandleLfgProposalResultOpcode(WorldPacket &recvData)
void SendLfgRoleChosen(ObjectGuid guid, uint8 roles)
void SendLfgBootProposalUpdate(lfg::LfgPlayerBoot const &boot)
void HandleLfrJoinOpcode(WorldPacket &recvData)
void SendLfgPlayerLockInfo()
void SendLfgUpdateProposal(lfg::LfgProposal const &proposal)
@ SMSG_LFG_TELEPORT_DENIED
@ SMSG_LFG_ROLE_CHECK_UPDATE
@ SMSG_LFG_PROPOSAL_UPDATE
@ SMSG_LFG_BOOT_PROPOSAL_UPDATE
@ SMSG_LFG_OFFER_CONTINUE
TC_GAME_API Player * FindConnectedPlayer(ObjectGuid const &)
@ LFG_OPTION_ENABLE_DUNGEON_FINDER
@ LFG_OPTION_ENABLE_RAID_BROWSER
@ LFG_UPDATETYPE_ADDED_TO_QUEUE
@ LFG_UPDATETYPE_UPDATE_STATUS
@ LFG_UPDATETYPE_PROPOSAL_BEGIN
@ LFG_UPDATETYPE_JOIN_QUEUE
@ LFG_GROUP_KICK_VOTES_NEEDED
LfgAnswer
Answer state (Also used to check compatibilites)
std::string GetStateString(LfgState state)
std::map< uint32, uint32 > LfgLockMap
std::set< uint32 > LfgDungeonSet
@ LFG_ROLECHECK_INITIALITING
std::map< ObjectGuid, LfgLockMap > LfgLockPartyMap
Stores information of a current vote to kick someone from a group.
std::string reason
Player guid to be kicked (can't vote)
LfgAnswerContainer votes
Vote in progress.
bool inProgress
Time left to vote.
ObjectGuid victim
Player votes (-1 not answer | 0 Not agree | 1 agree)
Stores player data related to proposal to join.
ObjectGuid group
Accept status (-1 not answer | 0 Not agree | 1 agree)
LfgAnswer accept
Proposed role.
Stores group data related to proposal to join.
uint32 dungeonId
Proposal Id.
uint32 encounters
Time when we will cancel this proposal.
LfgProposalPlayerContainer players
Show order in update window.
bool isNew
Dungeon Encounters.
LfgProposalState state
Dungeon to join.
ObjectGuid group
State of the proposal.
Stores all rolecheck info of a group that wants to join.
LfgDungeonSet dungeons
State of the rolecheck.
LfgRolesMap roles
Time when the rolecheck will fail.
LfgRoleCheckState state
Player selected roles.
ObjectGuid leader
Random Dungeon Id.
uint32 rDungeonId
Dungeons group is applying for (expanded random dungeons)