TrinityCore
Loading...
Searching...
No Matches
LFGMgr.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef _LFGMGR_H
19#define _LFGMGR_H
20
21#include "Common.h"
22#include "DatabaseEnvFwd.h"
23#include "LFG.h"
24#include "LFGQueue.h"
25#include "LFGGroupData.h"
26#include "LFGPlayerData.h"
27#include <span>
28#include <unordered_map>
29
30class Group;
31class Player;
32class Quest;
33class Map;
34struct LFGDungeonsEntry;
35enum Difficulty : int16;
36
37namespace WorldPackets
38{
39 namespace LFG
40 {
41 struct RideTicket;
42 }
43}
44
45namespace lfg
46{
47
53
65
73
85
93
96{
97 // 7 = "You can't do that right now" | 5 = No client reaction
98 LFG_TELEPORT_RESULT_NONE = 0, // Internal use
104 LFG_TELEPORT_RESULT_IMMUNE_TO_SUMMONS = 8 // FIXME - It can be 7 or 8 (Need proper data)
105
106 // unknown values
107 //LFG_TELEPORT_RESULT_NOT_IN_DUNGEON,
108 //LFG_TELEPORT_RESULT_NOT_ALLOWED,
109 //LFG_TELEPORT_RESULT_ALREADY_IN_DUNGEON
111
114{
115 // 3 = No client reaction | 18 = "Rolecheck failed"
116 LFG_JOIN_OK = 0x00, // Joined (no client msg)
117 LFG_JOIN_GROUP_FULL = 0x1F, // Your group is already full.
118 LFG_JOIN_NO_LFG_OBJECT = 0x21, // Internal LFG Error.
119 LFG_JOIN_NO_SLOTS = 0x22, // You do not meet the requirements for the chosen dungeons.
120 LFG_JOIN_MISMATCHED_SLOTS = 0x23, // You cannot mix dungeons, raids, and random when picking dungeons.
121 LFG_JOIN_PARTY_PLAYERS_FROM_DIFFERENT_REALMS = 0x24, // The dungeon you chose does not support players from multiple realms.
122 LFG_JOIN_MEMBERS_NOT_PRESENT = 0x25, // One or more group members are pending invites or disconnected.
123 LFG_JOIN_GET_INFO_TIMEOUT = 0x26, // Could not retrieve information about some party members.
124 LFG_JOIN_INVALID_SLOT = 0x27, // One or more dungeons was not valid.
125 LFG_JOIN_DESERTER_PLAYER = 0x28, // You can not queue for dungeons until your deserter debuff wears off.
126 LFG_JOIN_DESERTER_PARTY = 0x29, // One or more party members has a deserter debuff.
127 LFG_JOIN_RANDOM_COOLDOWN_PLAYER = 0x2A, // You can not queue for random dungeons while on random dungeon cooldown.
128 LFG_JOIN_RANDOM_COOLDOWN_PARTY = 0x2B, // One or more party members are on random dungeon cooldown.
129 LFG_JOIN_TOO_MANY_MEMBERS = 0x2C, // You have too many group members to queue for that.
130 LFG_JOIN_CANT_USE_DUNGEONS = 0x2D, // You cannot queue for a dungeon or raid while using battlegrounds or arenas.
131 LFG_JOIN_ROLE_CHECK_FAILED = 0x2E, // The Role Check has failed.
132 LFG_JOIN_TOO_FEW_MEMBERS = 0x34, // You do not have enough group members to queue for that.
133 LFG_JOIN_REASON_TOO_MANY_LFG = 0x35, // You are queued for too many instances.
134 LFG_JOIN_MISMATCHED_SLOTS_LOCAL_XREALM = 0x37, // You cannot mix realm-only and x-realm entries when listing your name in other raids.
135 LFG_JOIN_ALREADY_USING_LFG_LIST = 0x3F, // You can't do that while using Premade Groups.
136 LFG_JOIN_NOT_LEADER = 0x45, // You are not the party leader.
138 LFG_FARM_LIMIT = 0x4D, // You or someone in your party has entered too many instances recently. Please wait awhile and try again.
139 LFG_NO_CROSS_FACTION_PARTIES = 0x4E, // Cross-faction groups can't queue for this instance
140
141 LFG_JOIN_PARTY_NOT_MEET_REQS = 6, // One or more party members do not meet the requirements for the chosen dungeons (FIXME)
142};
143
146{
147 LFG_ROLECHECK_DEFAULT = 0, // Internal use = Not initialized.
148 LFG_ROLECHECK_FINISHED = 1, // Role check finished
149 LFG_ROLECHECK_INITIALITING = 2, // Role check begins
150 LFG_ROLECHECK_MISSING_ROLE = 3, // Someone didn't selected a role after 2 mins
151 LFG_ROLECHECK_WRONG_ROLES = 4, // Can't form a group with that role selection
152 LFG_ROLECHECK_ABORTED = 5, // Someone leave the group
153 LFG_ROLECHECK_NO_ROLE = 6 // Someone selected no role
155
156// Forward declaration (just to have all typedef together)
157struct LFGDungeonData;
158struct LfgReward;
159struct LfgQueueInfo;
160struct LfgRoleCheck;
161struct LfgProposal;
162struct LfgProposalPlayer;
163struct LfgPlayerBoot;
164
165typedef std::map<uint8, LFGQueue> LfgQueueContainer;
166typedef std::multimap<uint32, LfgReward const*> LfgRewardContainer;
167typedef std::pair<LfgRewardContainer::const_iterator, LfgRewardContainer::const_iterator> LfgRewardContainerBounds;
168typedef std::map<uint8, LfgDungeonSet> LfgCachedDungeonContainer;
169typedef std::map<ObjectGuid, LfgAnswer> LfgAnswerContainer;
170typedef std::map<ObjectGuid, LfgRoleCheck> LfgRoleCheckContainer;
171typedef std::map<uint32, LfgProposal> LfgProposalContainer;
172typedef std::map<ObjectGuid, LfgProposalPlayer> LfgProposalPlayerContainer;
173typedef std::map<ObjectGuid, LfgPlayerBoot> LfgPlayerBootContainer;
174typedef std::map<ObjectGuid, LfgGroupData> LfgGroupDataContainer;
175typedef std::map<ObjectGuid, LfgPlayerData> LfgPlayerDataContainer;
176typedef std::unordered_map<uint32, LFGDungeonData> LFGDungeonContainer;
177
178// Data needed by SMSG_LFG_JOIN_RESULT
188
189// Data needed by SMSG_LFG_UPDATE_STATUS
203
204// Data needed by SMSG_LFG_QUEUE_STATUS
206{
207 LfgQueueStatusData(uint8 _queueId = 0, uint32 _dungeonId = 0, int32 _waitTime = -1, int32 _waitTimeAvg = -1, int32 _waitTimeTank = -1, int32 _waitTimeHealer = -1,
208 int32 _waitTimeDps = -1, uint32 _queuedTime = 0, uint8 _tanks = 0, uint8 _healers = 0, uint8 _dps = 0) :
209 queueId(_queueId), dungeonId(_dungeonId), waitTime(_waitTime), waitTimeAvg(_waitTimeAvg), waitTimeTank(_waitTimeTank),
210 waitTimeHealer(_waitTimeHealer), waitTimeDps(_waitTimeDps), queuedTime(_queuedTime), tanks(_tanks), healers(_healers), dps(_dps) { }
211
223};
224
226{
227 LfgPlayerRewardData(uint32 random, uint32 current, bool _done, Quest const* _quest):
228 rdungeonEntry(random), sdungeonEntry(current), done(_done), quest(_quest) { }
231 bool done;
232 Quest const* quest;
233};
234
237{
238 LfgReward(uint32 _maxLevel = 0, uint32 _firstQuest = 0, uint32 _otherQuest = 0):
239 maxLevel(_maxLevel), firstQuest(_firstQuest), otherQuest(_otherQuest) { }
240
244};
245
254
274
285
295
317
319{
320 private:
321 LFGMgr();
322 ~LFGMgr();
323
324 public:
325 LFGMgr(LFGMgr const& right) = delete;
326 LFGMgr(LFGMgr&& right) = delete;
327 LFGMgr& operator=(LFGMgr const& right) = delete;
328 LFGMgr& operator=(LFGMgr&& right) = delete;
329
330 static LFGMgr* instance();
331
332 // Functions used outside lfg namespace
333 void Update(uint32 diff);
334
335 // World.cpp
337 void OnDungeonEncounterDone(ObjectGuid gguid, std::span<uint32 const> dungeonEncounters, Map const* currMap);
339 void FinishDungeon(ObjectGuid gguid, uint32 dungeonId, Map const* currMap);
341 void LoadRewards();
343 void LoadLFGDungeons();
344
345 // Multiple files
347 bool selectedRandomLfgDungeon(ObjectGuid guid);
349 bool inLfgDungeonMap(ObjectGuid guid, uint32 map, Difficulty difficulty);
351 LfgDungeonSet const& GetSelectedDungeons(ObjectGuid guid);
353 uint32 GetSelectedRandomDungeon(ObjectGuid guid);
355 LfgState GetState(ObjectGuid guid);
357 bool IsVoteKickActive(ObjectGuid gguid);
359 uint32 GetDungeon(ObjectGuid guid, bool asId = true);
361 uint32 GetDungeonMapId(ObjectGuid guid);
363 uint8 GetKicksLeft(ObjectGuid gguid);
365 void _LoadFromDB(Field* fields, ObjectGuid guid);
367 void SetupGroupMember(ObjectGuid guid, ObjectGuid gguid);
369 uint32 GetLFGDungeonEntry(uint32 id);
370
371 // cs_lfg
373 uint8 GetRoles(ObjectGuid guid);
375 uint32 GetOptions();
377 void SetOptions(uint32 options);
379 bool isOptionEnabled(uint32 option);
381 void Clean();
383 std::string DumpQueueInfo(bool full = false);
384
385 // LFGScripts
387 ObjectGuid GetLeader(ObjectGuid guid);
389 void SetTeam(ObjectGuid guid, uint8 team);
391 void SetGroup(ObjectGuid guid, ObjectGuid group);
393 ObjectGuid GetGroup(ObjectGuid guid);
395 void SetLeader(ObjectGuid gguid, ObjectGuid leader);
397 void RemoveGroupData(ObjectGuid guid);
399 uint8 RemovePlayerFromGroup(ObjectGuid gguid, ObjectGuid guid);
401 void AddPlayerToGroup(ObjectGuid gguid, ObjectGuid guid);
402
403 // LFGHandler
405 LfgLockMap GetLockedDungeons(ObjectGuid guid);
407 LfgUpdateData GetLfgStatus(ObjectGuid guid);
409 bool IsSeasonActive(uint32 dungeonId);
411 LfgReward const* GetRandomDungeonReward(uint32 dungeon, uint8 level);
413 LfgDungeonSet GetRandomAndSeasonalDungeons(uint8 level, uint8 expansion, std::span<uint32 const> contentTuningReplacementConditionMask);
415 void TeleportPlayer(Player* player, bool out, bool fromOpcode = false);
417 void InitBoot(ObjectGuid gguid, ObjectGuid kguid, ObjectGuid vguid, std::string const& reason);
419 void UpdateBoot(ObjectGuid guid, bool accept);
421 void UpdateProposal(uint32 proposalId, ObjectGuid guid, bool accept);
423 void UpdateRoleCheck(ObjectGuid gguid, ObjectGuid guid = ObjectGuid::Empty, uint8 roles = PLAYER_ROLE_NONE);
425 void SetRoles(ObjectGuid guid, uint8 roles);
427 void JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons);
429 void LeaveLfg(ObjectGuid guid, bool disconnected = false);
431 WorldPackets::LFG::RideTicket const* GetTicket(ObjectGuid guid) const;
432
433 // LfgQueue
435 LfgState GetOldState(ObjectGuid guid);
437 bool IsLfgGroup(ObjectGuid guid);
439 uint8 GetPlayerCount(ObjectGuid guid);
441 uint32 AddProposal(LfgProposal& proposal);
443 uint8 GetQueueId(ObjectGuid guid);
445 bool AllQueued(GuidList const& check);
447 time_t GetQueueJoinTime(ObjectGuid guid);
449 static bool CheckGroupRoles(LfgRolesMap &groles);
451 static bool HasIgnore(ObjectGuid guid1, ObjectGuid guid2);
453 static void SendLfgQueueStatus(ObjectGuid guid, LfgQueueStatusData const& data);
454
455 private:
456 uint8 GetTeam(ObjectGuid guid);
457 uint8 FilterClassRoles(Player* player, uint8 roles);
458 void RestoreState(ObjectGuid guid, char const* debugMsg);
459 void ClearState(ObjectGuid guid, char const* debugMsg);
460 void SetDungeon(ObjectGuid guid, uint32 dungeon);
461 void SetSelectedDungeons(ObjectGuid guid, LfgDungeonSet const& dungeons);
462 void DecreaseKicksLeft(ObjectGuid guid);
463 void SetTicket(ObjectGuid guid, WorldPackets::LFG::RideTicket const& ticket);
464 void SetState(ObjectGuid guid, LfgState state);
465 void SetVoteKick(ObjectGuid gguid, bool active);
466 void RemovePlayerData(ObjectGuid guid);
467 void GetCompatibleDungeons(LfgDungeonSet* dungeons, GuidSet const& players, LfgLockPartyMap* lockMap, std::vector<std::string_view>* playersMissingRequirement, bool isContinue);
468 void _SaveToDB(ObjectGuid guid, uint32 db_guid);
469 LFGDungeonData const* GetLFGDungeon(uint32 id);
470
471 // Proposals
472 void RemoveProposal(LfgProposalContainer::iterator itProposal, LfgUpdateType type);
473 void MakeNewGroup(LfgProposal const& proposal);
474
475 // Generic
476 LFGQueue& GetQueue(ObjectGuid guid);
477
478 LfgDungeonSet const& GetDungeonsByRandom(uint32 randomdungeon);
479 LfgType GetDungeonType(uint32 dungeon);
480
481 void SendLfgBootProposalUpdate(ObjectGuid guid, LfgPlayerBoot const& boot);
482 void SendLfgJoinResult(ObjectGuid guid, LfgJoinResultData const& data);
483 void SendLfgRoleChosen(ObjectGuid guid, ObjectGuid pguid, uint8 roles);
484 void SendLfgRoleCheckUpdate(ObjectGuid guid, LfgRoleCheck const& roleCheck);
485 void SendLfgUpdateStatus(ObjectGuid guid, LfgUpdateData const& data, bool party);
486 void SendLfgUpdateProposal(ObjectGuid guid, LfgProposal const& proposal);
487
488 GuidSet const& GetPlayers(ObjectGuid guid);
489
490 // General variables
494
497 // Reward System
500 // Rolecheck - Proposal - Vote Kicks
506};
507
508inline int32 format_as(LFGMgrEnum e) { return e; }
509inline int32 format_as(LfgProposalState e) { return e; }
510inline uint8 format_as(LfgTeleportResult e) { return e; }
511inline int32 format_as(LfgJoinResult e) { return e; }
512inline int32 format_as(LfgRoleCheckState e) { return e; }
513} // namespace lfg
514
515#define sLFGMgr lfg::LFGMgr::instance()
516#endif
@ IN_MILLISECONDS
Definition Common.h:38
Difficulty
Definition DBCEnums.h:932
#define TC_GAME_API
Definition Define.h:129
uint8_t uint8
Definition Define.h:156
int16_t int16
Definition Define.h:151
int32_t int32
Definition Define.h:150
uint16_t uint16
Definition Define.h:155
uint32_t uint32
Definition Define.h:154
std::list< ObjectGuid > GuidList
Definition ObjectGuid.h:433
std::set< ObjectGuid > GuidSet
Definition ObjectGuid.h:432
Class used to access individual fields of database query result.
Definition Field.h:94
Definition Group.h:205
Definition Map.h:225
static ObjectGuid const Empty
Definition ObjectGuid.h:314
LFGMgr & operator=(LFGMgr &&right)=delete
LfgProposalContainer ProposalsStore
Current Role checks.
Definition LFGMgr.h:502
LFGDungeonContainer LfgDungeonStore
Stores rewards for random dungeons.
Definition LFGMgr.h:499
LfgPlayerBootContainer BootsStore
Current Proposals.
Definition LFGMgr.h:503
LFGMgr & operator=(LFGMgr const &right)=delete
LfgCachedDungeonContainer CachedDungeonMapStore
Queues.
Definition LFGMgr.h:496
LfgRoleCheckContainer RoleChecksStore
Definition LFGMgr.h:501
uint32 m_lfgProposalId
used to check interval of update
Definition LFGMgr.h:492
void ClearState(ObjectGuid guid, char const *debugMsg)
LfgRewardContainer RewardMapStore
Stores all dungeons by groupType.
Definition LFGMgr.h:498
LfgGroupDataContainer GroupsStore
Player data.
Definition LFGMgr.h:505
uint32 m_options
used as internal counter for proposals
Definition LFGMgr.h:493
LFGMgr(LFGMgr &&right)=delete
LfgPlayerDataContainer PlayersStore
Current player kicks.
Definition LFGMgr.h:504
LfgQueueContainer QueuesStore
Stores config options.
Definition LFGMgr.h:495
LFGMgr(LFGMgr const &right)=delete
uint32 m_QueueTimer
Definition LFGMgr.h:491
Definition LFG.cpp:24
LfgOptions
Definition LFGMgr.h:49
@ LFG_OPTION_ENABLE_DUNGEON_FINDER
Definition LFGMgr.h:50
@ LFG_OPTION_ENABLE_RAID_BROWSER
Definition LFGMgr.h:51
std::map< ObjectGuid, LfgGroupData > LfgGroupDataContainer
Definition LFGMgr.h:174
std::map< ObjectGuid, uint8 > LfgRolesMap
Definition LFG.h:135
std::unordered_map< uint32, LFGDungeonData > LFGDungeonContainer
Definition LFGMgr.h:176
std::map< ObjectGuid, LfgAnswer > LfgAnswerContainer
Definition LFGMgr.h:169
LfgUpdateType
Definition LFG.h:48
@ LFG_UPDATETYPE_DEFAULT
Definition LFG.h:49
LFGMgrEnum
Definition LFGMgr.h:55
@ LFG_SPELL_DUNGEON_COOLDOWN
Definition LFGMgr.h:60
@ LFG_TIME_BOOT
Definition LFGMgr.h:57
@ LFG_TIME_PROPOSAL
Definition LFGMgr.h:58
@ LFG_GROUP_KICK_VOTES_NEEDED
Definition LFGMgr.h:63
@ LFG_TIME_ROLECHECK
Definition LFGMgr.h:56
@ LFG_SPELL_LUCK_OF_THE_DRAW
Definition LFGMgr.h:62
@ LFG_QUEUEUPDATE_INTERVAL
Definition LFGMgr.h:59
@ LFG_SPELL_DUNGEON_DESERTER
Definition LFGMgr.h:61
LfgType
Determines the type of instance.
Definition LFGMgr.h:76
@ LFG_TYPE_NONE
Definition LFGMgr.h:77
@ LFG_TYPE_QUEST
Definition LFGMgr.h:80
@ LFG_TYPE_ZONE
Definition LFGMgr.h:81
@ LFG_TYPE_RANDOM
Definition LFGMgr.h:83
@ LFG_TYPE_RAID
Definition LFGMgr.h:79
@ LFG_TYPE_DUNGEON
Definition LFGMgr.h:78
@ LFG_TYPE_HEROIC
Definition LFGMgr.h:82
LfgAnswer
Answer state (Also used to check compatibilites)
Definition LFG.h:116
@ LFG_ANSWER_PENDING
Definition LFG.h:117
std::map< ObjectGuid, LfgPlayerData > LfgPlayerDataContainer
Definition LFGMgr.h:175
std::map< uint8, LfgDungeonSet > LfgCachedDungeonContainer
Definition LFGMgr.h:168
std::map< uint8, LFGQueue > LfgQueueContainer
Definition LFGMgr.h:165
LfgTeleportResult
Teleport errors.
Definition LFGMgr.h:96
@ LFG_TELEPORT_RESULT_EXHAUSTION
Definition LFGMgr.h:102
@ LFG_TELEPORT_RESULT_FALLING
Definition LFGMgr.h:100
@ LFG_TELEPORT_RESULT_NO_RETURN_LOCATION
Definition LFGMgr.h:103
@ LFG_TELEPORT_RESULT_ON_TRANSPORT
Definition LFGMgr.h:101
@ LFG_TELEPORT_RESULT_IMMUNE_TO_SUMMONS
Definition LFGMgr.h:104
@ LFG_TELEPORT_RESULT_NONE
Definition LFGMgr.h:98
@ LFG_TELEPORT_RESULT_DEAD
Definition LFGMgr.h:99
std::set< uint32 > LfgDungeonSet
Definition LFG.h:132
std::map< ObjectGuid, LfgPlayerBoot > LfgPlayerBootContainer
Definition LFGMgr.h:173
LfgRoleCheckState
Role check states.
Definition LFGMgr.h:146
@ LFG_ROLECHECK_WRONG_ROLES
Definition LFGMgr.h:151
@ LFG_ROLECHECK_MISSING_ROLE
Definition LFGMgr.h:150
@ LFG_ROLECHECK_ABORTED
Definition LFGMgr.h:152
@ LFG_ROLECHECK_DEFAULT
Definition LFGMgr.h:147
@ LFG_ROLECHECK_FINISHED
Definition LFGMgr.h:148
@ LFG_ROLECHECK_NO_ROLE
Definition LFGMgr.h:153
@ LFG_ROLECHECK_INITIALITING
Definition LFGMgr.h:149
LfgFlags
Definition LFGMgr.h:67
@ LFG_FLAG_SEASONAL
Definition LFGMgr.h:70
@ LFG_FLAG_UNK3
Definition LFGMgr.h:71
@ LFG_FLAG_UNK2
Definition LFGMgr.h:69
@ LFG_FLAG_UNK1
Definition LFGMgr.h:68
std::pair< LfgRewardContainer::const_iterator, LfgRewardContainer::const_iterator > LfgRewardContainerBounds
Definition LFGMgr.h:167
int32 format_as(LfgUpdateType e)
Definition LFG.h:143
std::map< uint32, LfgProposal > LfgProposalContainer
Definition LFGMgr.h:171
std::map< ObjectGuid, LfgRoleCheck > LfgRoleCheckContainer
Definition LFGMgr.h:170
std::map< ObjectGuid, LfgLockMap > LfgLockPartyMap
Definition LFG.h:134
LfgState
Definition LFG.h:74
@ LFG_STATE_NONE
Definition LFG.h:75
std::multimap< uint32, LfgReward const * > LfgRewardContainer
Definition LFGMgr.h:166
std::map< uint32, LfgLockInfoData > LfgLockMap
Definition LFG.h:133
LfgProposalState
Proposal states.
Definition LFGMgr.h:88
@ LFG_PROPOSAL_SUCCESS
Definition LFGMgr.h:91
@ LFG_PROPOSAL_FAILED
Definition LFGMgr.h:90
@ LFG_PROPOSAL_INITIATING
Definition LFGMgr.h:89
LfgJoinResult
Queue join results.
Definition LFGMgr.h:114
@ LFG_JOIN_RANDOM_COOLDOWN_PLAYER
Definition LFGMgr.h:127
@ LFG_JOIN_NO_SLOTS
Definition LFGMgr.h:119
@ LFG_JOIN_GET_INFO_TIMEOUT
Definition LFGMgr.h:123
@ LFG_JOIN_MEMBERS_NOT_PRESENT
Definition LFGMgr.h:122
@ LFG_JOIN_ROLE_CHECK_FAILED
Definition LFGMgr.h:131
@ LFG_JOIN_ALREADY_USING_LFG_LIST
Definition LFGMgr.h:135
@ LFG_JOIN_REASON_TOO_MANY_LFG
Definition LFGMgr.h:133
@ LFG_JOIN_TOO_FEW_MEMBERS
Definition LFGMgr.h:132
@ LFG_JOIN_PARTY_NOT_MEET_REQS
Definition LFGMgr.h:141
@ LFG_JOIN_RANDOM_COOLDOWN_PARTY
Definition LFGMgr.h:128
@ LFG_JOIN_NOT_LEADER
Definition LFGMgr.h:136
@ LFG_FARM_LIMIT
Definition LFGMgr.h:138
@ LFG_JOIN_TOO_MANY_MEMBERS
Definition LFGMgr.h:129
@ LFG_JOIN_CANT_USE_DUNGEONS
Definition LFGMgr.h:130
@ LFG_NO_CROSS_FACTION_PARTIES
Definition LFGMgr.h:139
@ LFG_JOIN_OK
Definition LFGMgr.h:116
@ LFG_JOIN_MISMATCHED_SLOTS
Definition LFGMgr.h:120
@ LFG_JOIN_DEAD
Definition LFGMgr.h:137
@ LFG_JOIN_GROUP_FULL
Definition LFGMgr.h:117
@ LFG_JOIN_NO_LFG_OBJECT
Definition LFGMgr.h:118
@ LFG_JOIN_DESERTER_PLAYER
Definition LFGMgr.h:125
@ LFG_JOIN_PARTY_PLAYERS_FROM_DIFFERENT_REALMS
Definition LFGMgr.h:121
@ LFG_JOIN_INVALID_SLOT
Definition LFGMgr.h:124
@ LFG_JOIN_DESERTER_PARTY
Definition LFGMgr.h:126
@ LFG_JOIN_MISMATCHED_SLOTS_LOCAL_XREALM
Definition LFGMgr.h:134
std::map< ObjectGuid, LfgProposalPlayer > LfgProposalPlayerContainer
Definition LFGMgr.h:172
uint32 contentTuningId
Definition LFGMgr.h:307
Difficulty difficulty
Definition LFGMgr.h:308
uint32 finalDungeonEncounterId
Definition LFGMgr.h:312
uint16 requiredItemLevel
Definition LFGMgr.h:311
std::string name
Definition LFGMgr.h:302
uint32 Entry() const
Definition LFGMgr.h:315
std::vector< std::string_view > playersMissingRequirement
Definition LFGMgr.h:186
LfgJoinResultData(LfgJoinResult _result=LFG_JOIN_OK, LfgRoleCheckState _state=LFG_ROLECHECK_DEFAULT)
Definition LFGMgr.h:181
LfgRoleCheckState state
Definition LFGMgr.h:184
LfgJoinResult result
Definition LFGMgr.h:183
LfgLockPartyMap lockmap
Definition LFGMgr.h:185
Stores information of a current vote to kick someone from a group.
Definition LFGMgr.h:288
std::string reason
Player guid to be kicked (can't vote)
Definition LFGMgr.h:293
time_t cancelTime
Definition LFGMgr.h:289
LfgAnswerContainer votes
Vote in progress.
Definition LFGMgr.h:291
bool inProgress
Time left to vote.
Definition LFGMgr.h:290
ObjectGuid victim
Player votes (-1 not answer | 0 Not agree | 1 agree)
Definition LFGMgr.h:292
Quest const * quest
Definition LFGMgr.h:232
LfgPlayerRewardData(uint32 random, uint32 current, bool _done, Quest const *_quest)
Definition LFGMgr.h:227
Stores player data related to proposal to join.
Definition LFGMgr.h:248
ObjectGuid group
Accept status (-1 not answer | 0 Not agree | 1 agree)
Definition LFGMgr.h:252
LfgAnswer accept
Proposed role.
Definition LFGMgr.h:251
Stores group data related to proposal to join.
Definition LFGMgr.h:257
ObjectGuid leader
Proposal group (0 if new)
Definition LFGMgr.h:266
uint32 dungeonId
Proposal Id.
Definition LFGMgr.h:263
GuidList showorder
Queue Ids to remove/readd.
Definition LFGMgr.h:271
uint32 encounters
Time when we will cancel this proposal.
Definition LFGMgr.h:268
GuidList queues
Determines if it's new group or not.
Definition LFGMgr.h:270
LfgProposalPlayerContainer players
Show order in update window.
Definition LFGMgr.h:272
bool isNew
Dungeon Encounters.
Definition LFGMgr.h:269
LfgProposalState state
Dungeon to join.
Definition LFGMgr.h:264
ObjectGuid group
State of the proposal.
Definition LFGMgr.h:265
LfgProposal(uint32 dungeon=0)
Definition LFGMgr.h:258
time_t cancelTime
Leader guid.
Definition LFGMgr.h:267
LfgQueueStatusData(uint8 _queueId=0, uint32 _dungeonId=0, int32 _waitTime=-1, int32 _waitTimeAvg=-1, int32 _waitTimeTank=-1, int32 _waitTimeHealer=-1, int32 _waitTimeDps=-1, uint32 _queuedTime=0, uint8 _tanks=0, uint8 _healers=0, uint8 _dps=0)
Definition LFGMgr.h:207
Reward info.
Definition LFGMgr.h:237
uint32 firstQuest
Definition LFGMgr.h:242
uint32 otherQuest
Definition LFGMgr.h:243
uint32 maxLevel
Definition LFGMgr.h:241
LfgReward(uint32 _maxLevel=0, uint32 _firstQuest=0, uint32 _otherQuest=0)
Definition LFGMgr.h:238
Stores all rolecheck info of a group that wants to join.
Definition LFGMgr.h:277
LfgDungeonSet dungeons
State of the rolecheck.
Definition LFGMgr.h:281
LfgRolesMap roles
Time when the rolecheck will fail.
Definition LFGMgr.h:279
LfgRoleCheckState state
Player selected roles.
Definition LFGMgr.h:280
time_t cancelTime
Definition LFGMgr.h:278
ObjectGuid leader
Random Dungeon Id.
Definition LFGMgr.h:283
uint32 rDungeonId
Dungeons group is applying for (expanded random dungeons)
Definition LFGMgr.h:282
LfgUpdateData(LfgUpdateType _type=LFG_UPDATETYPE_DEFAULT)
Definition LFGMgr.h:192
LfgDungeonSet dungeons
Definition LFGMgr.h:200
LfgUpdateType updateType
Definition LFGMgr.h:198
std::string comment
Definition LFGMgr.h:201
LfgUpdateData(LfgUpdateType _type, LfgDungeonSet const &_dungeons)
Definition LFGMgr.h:193
LfgUpdateData(LfgUpdateType _type, LfgState _state, LfgDungeonSet const &_dungeons)
Definition LFGMgr.h:195
LfgState state
Definition LFGMgr.h:199