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 "SharedDefines.h"
28#include <unordered_map>
29
30class Group;
31class Player;
32class Quest;
33class Map;
34struct LFGDungeonEntry;
35enum Difficulty : uint8;
36
37namespace lfg
38{
39
45
57
65
75
83
86{
87 // 7 = "You can't do that right now" | 5 = No client reaction
88 LFG_TELEPORTERROR_OK = 0, // Internal use
94 LFG_TELEPORTERROR_CHARMING = 8 // FIXME - It can be 7 or 8 (Need proper data)
95};
96
99{
100 // 3 = No client reaction | 18 = "Rolecheck failed"
101 LFG_JOIN_OK = 0, // Joined (no client msg)
102 LFG_JOIN_FAILED = 1, // RoleCheck Failed
103 LFG_JOIN_GROUPFULL = 2, // Your group is full
104 LFG_JOIN_INTERNAL_ERROR = 4, // Internal LFG Error
105 LFG_JOIN_NOT_MEET_REQS = 5, // You do not meet the requirements for the chosen dungeons
106 LFG_JOIN_PARTY_NOT_MEET_REQS = 6, // One or more party members do not meet the requirements for the chosen dungeons
107 LFG_JOIN_MIXED_RAID_DUNGEON = 7, // You cannot mix dungeons, raids, and random when picking dungeons
108 LFG_JOIN_MULTI_REALM = 8, // The dungeon you chose does not support players from multiple realms
109 LFG_JOIN_DISCONNECTED = 9, // One or more party members are pending invites or disconnected
110 LFG_JOIN_PARTY_INFO_FAILED = 10, // Could not retrieve information about some party members
111 LFG_JOIN_DUNGEON_INVALID = 11, // One or more dungeons was not valid
112 LFG_JOIN_DESERTER = 12, // You can not queue for dungeons until your deserter debuff wears off
113 LFG_JOIN_PARTY_DESERTER = 13, // One or more party members has a deserter debuff
114 LFG_JOIN_RANDOM_COOLDOWN = 14, // You can not queue for random dungeons while on random dungeon cooldown
115 LFG_JOIN_PARTY_RANDOM_COOLDOWN = 15, // One or more party members are on random dungeon cooldown
116 LFG_JOIN_TOO_MUCH_MEMBERS = 16, // You can not enter dungeons with more that 5 party members
117 LFG_JOIN_USING_BG_SYSTEM = 17 // You can not use the dungeon system while in BG or arenas
119
122{
123 LFG_ROLECHECK_DEFAULT = 0, // Internal use = Not initialized.
124 LFG_ROLECHECK_FINISHED = 1, // Role check finished
125 LFG_ROLECHECK_INITIALITING = 2, // Role check begins
126 LFG_ROLECHECK_MISSING_ROLE = 3, // Someone didn't selected a role after 2 mins
127 LFG_ROLECHECK_WRONG_ROLES = 4, // Can't form a group with that role selection
128 LFG_ROLECHECK_ABORTED = 5, // Someone leave the group
129 LFG_ROLECHECK_NO_ROLE = 6 // Someone selected no role
131
133 TANK = (1 << (CLASS_WARRIOR - 1)) |
134 (1 << (CLASS_PALADIN - 1)) |
135 (1 << (CLASS_DEATH_KNIGHT - 1)) |
136 (1 << (CLASS_DRUID - 1)),
137
138 HEALER = (1 << (CLASS_PALADIN - 1)) |
139 (1 << (CLASS_PRIEST - 1)) |
140 (1 << (CLASS_SHAMAN - 1)) |
141 (1 << (CLASS_DRUID - 1)),
142};
143
144// Forward declaration (just to have all typedef together)
145struct LFGDungeonData;
146struct LfgReward;
147struct LfgQueueInfo;
148struct LfgRoleCheck;
149struct LfgProposal;
150struct LfgProposalPlayer;
151struct LfgPlayerBoot;
152
153typedef std::map<uint8, LFGQueue> LfgQueueContainer;
154typedef std::multimap<uint32, LfgReward const*> LfgRewardContainer;
155typedef std::pair<LfgRewardContainer::const_iterator, LfgRewardContainer::const_iterator> LfgRewardContainerBounds;
156typedef std::map<uint8, LfgDungeonSet> LfgCachedDungeonContainer;
157typedef std::map<ObjectGuid, LfgAnswer> LfgAnswerContainer;
158typedef std::map<ObjectGuid, LfgRoleCheck> LfgRoleCheckContainer;
159typedef std::map<uint32, LfgProposal> LfgProposalContainer;
160typedef std::map<ObjectGuid, LfgProposalPlayer> LfgProposalPlayerContainer;
161typedef std::map<ObjectGuid, LfgPlayerBoot> LfgPlayerBootContainer;
162typedef std::map<ObjectGuid, LfgGroupData> LfgGroupDataContainer;
163typedef std::map<ObjectGuid, LfgPlayerData> LfgPlayerDataContainer;
164typedef std::unordered_map<uint32, LFGDungeonData> LFGDungeonContainer;
165
166// Data needed by SMSG_LFG_JOIN_RESULT
175
176// Data needed by SMSG_LFG_UPDATE_PARTY and SMSG_LFG_UPDATE_PLAYER
178{
180 LfgUpdateData(LfgUpdateType _type, LfgDungeonSet const& _dungeons, std::string const& _comment):
181 updateType(_type), state(LFG_STATE_NONE), dungeons(_dungeons), comment(_comment) { }
182 LfgUpdateData(LfgUpdateType _type, LfgState _state, LfgDungeonSet const& _dungeons, std::string const& _comment = ""):
183 updateType(_type), state(_state), dungeons(_dungeons), comment(_comment) { }
184
188 std::string comment;
189};
190
191// Data needed by SMSG_LFG_QUEUE_STATUS
193{
194 LfgQueueStatusData(uint32 _dungeonId = 0, int32 _waitTime = -1, int32 _waitTimeAvg = -1, int32 _waitTimeTank = -1, int32 _waitTimeHealer = -1,
195 int32 _waitTimeDps = -1, uint32 _queuedTime = 0, uint8 _tanks = 0, uint8 _healers = 0, uint8 _dps = 0) :
196 dungeonId(_dungeonId), waitTime(_waitTime), waitTimeAvg(_waitTimeAvg), waitTimeTank(_waitTimeTank), waitTimeHealer(_waitTimeHealer),
197 waitTimeDps(_waitTimeDps), queuedTime(_queuedTime), tanks(_tanks), healers(_healers), dps(_dps) { }
198
209};
210
212{
213 LfgPlayerRewardData(uint32 random, uint32 current, bool _done, Quest const* _quest):
214 rdungeonEntry(random), sdungeonEntry(current), done(_done), quest(_quest) { }
217 bool done;
218 Quest const* quest;
219};
220
223{
224 LfgReward(uint32 _maxLevel = 0, uint32 _firstQuest = 0, uint32 _otherQuest = 0):
225 maxLevel(_maxLevel), firstQuest(_firstQuest), otherQuest(_otherQuest) { }
226
230};
231
240
260
271
281
283{
286
288 std::string name;
293 std::array<uint8, MAX_EXPANSIONS> minlevel;
294 std::array<uint8, MAX_EXPANSIONS> maxlevel;
297 float x, y, z, o;
298
299 // Helpers
300 uint32 Entry() const { return id + (type << 24); }
301};
302
304{
305 private:
306 LFGMgr();
307 ~LFGMgr();
308
309 public:
310 static LFGMgr* instance();
311
312 // Functions used outside lfg namespace
313 void Update(uint32 diff);
314
315 // World.cpp
317 void FinishDungeon(ObjectGuid gguid, uint32 dungeonId, Map const* currMap);
319 void LoadRewards();
321 void LoadLFGDungeons();
322
323 // Multiple files
325 bool selectedRandomLfgDungeon(ObjectGuid guid);
327 bool inLfgDungeonMap(ObjectGuid guid, uint32 map, Difficulty difficulty);
329 LfgDungeonSet const& GetSelectedDungeons(ObjectGuid guid);
331 LfgState GetState(ObjectGuid guid);
333 bool IsVoteKickActive(ObjectGuid gguid);
335 uint32 GetDungeon(ObjectGuid guid, bool asId = true);
337 uint32 GetDungeonMapId(ObjectGuid guid);
339 uint8 GetKicksLeft(ObjectGuid gguid);
341 void _LoadFromDB(Field* fields, ObjectGuid guid);
343 void SetupGroupMember(ObjectGuid guid, ObjectGuid gguid);
345 uint32 GetLFGDungeonEntry(uint32 id);
346
347 // cs_lfg
349 uint8 GetRoles(ObjectGuid guid);
351 std::string const& GetComment(ObjectGuid gguid);
353 uint32 GetOptions();
355 void SetOptions(uint32 options);
357 bool isOptionEnabled(uint32 option);
359 void Clean();
361 std::string DumpQueueInfo(bool full = false);
362
363 // LFGScripts
365 ObjectGuid GetLeader(ObjectGuid guid);
367 void SetTeam(ObjectGuid guid, uint8 team);
369 void SetGroup(ObjectGuid guid, ObjectGuid group);
371 ObjectGuid GetGroup(ObjectGuid guid);
373 void SetLeader(ObjectGuid gguid, ObjectGuid leader);
375 void RemoveGroupData(ObjectGuid guid);
377 uint8 RemovePlayerFromGroup(ObjectGuid gguid, ObjectGuid guid);
379 void AddPlayerToGroup(ObjectGuid gguid, ObjectGuid guid);
380
381 // LFGHandler
383 LfgLockMap const GetLockedDungeons(ObjectGuid guid);
385 LfgUpdateData GetLfgStatus(ObjectGuid guid);
387 bool IsSeasonActive(uint32 dungeonId);
389 LfgReward const* GetRandomDungeonReward(uint32 dungeon, uint8 level);
391 LfgDungeonSet GetRandomAndSeasonalDungeons(uint8 level, uint8 expansion);
393 void TeleportPlayer(Player* player, bool out, bool fromOpcode = false);
395 void InitBoot(ObjectGuid gguid, ObjectGuid kguid, ObjectGuid vguid, std::string const& reason);
397 void UpdateBoot(ObjectGuid guid, bool accept);
399 void UpdateProposal(uint32 proposalId, ObjectGuid guid, bool accept);
401 void UpdateRoleCheck(ObjectGuid gguid, ObjectGuid guid = ObjectGuid::Empty, uint8 roles = PLAYER_ROLE_NONE);
403 void SetRoles(ObjectGuid guid, uint8 roles);
405 void SetComment(ObjectGuid guid, std::string const& comment);
407 void JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, std::string const& comment);
409 void LeaveLfg(ObjectGuid guid, bool disconnected = false);
410
411 // LfgQueue
413 LfgState GetOldState(ObjectGuid guid);
415 bool IsLfgGroup(ObjectGuid guid);
417 uint8 GetPlayerCount(ObjectGuid guid);
419 uint32 AddProposal(LfgProposal& proposal);
421 uint8 GetQueueId(ObjectGuid guid);
423 bool AllQueued(GuidList const& check);
425 time_t GetQueueJoinTime(ObjectGuid guid);
427 static bool CheckGroupRoles(LfgRolesMap &groles);
429 static bool HasIgnore(ObjectGuid guid1, ObjectGuid guid2);
431 static void SendLfgQueueStatus(ObjectGuid guid, LfgQueueStatusData const& data);
432
433 private:
434 uint8 GetTeam(ObjectGuid guid);
435 uint8 FilterClassRoles(Player* player, uint8 roles);
436 void RestoreState(ObjectGuid guid, char const* debugMsg);
437 void ClearState(ObjectGuid guid, char const* debugMsg);
438 void SetDungeon(ObjectGuid guid, uint32 dungeon);
439 void SetSelectedDungeons(ObjectGuid guid, LfgDungeonSet const& dungeons);
440 void DecreaseKicksLeft(ObjectGuid guid);
441 void SetState(ObjectGuid guid, LfgState state);
442 void SetVoteKick(ObjectGuid gguid, bool active);
443 void RemovePlayerData(ObjectGuid guid);
444 void GetCompatibleDungeons(LfgDungeonSet& dungeons, GuidSet const& players, LfgLockPartyMap& lockMap, bool isContinue);
445 void _SaveToDB(ObjectGuid guid, uint32 db_guid);
447
448 // Proposals
449 void RemoveProposal(LfgProposalContainer::iterator itProposal, LfgUpdateType type);
450 void MakeNewGroup(LfgProposal const& proposal);
451
452 // Generic
453 LFGQueue &GetQueue(ObjectGuid guid);
454 LfgDungeonSet const& GetDungeonsByRandom(uint32 randomdungeon);
455 LfgType GetDungeonType(uint32 dungeon);
456
457 void SendLfgBootProposalUpdate(ObjectGuid guid, LfgPlayerBoot const& boot);
458 void SendLfgJoinResult(ObjectGuid guid, LfgJoinResultData const& data);
459 void SendLfgRoleChosen(ObjectGuid guid, ObjectGuid pguid, uint8 roles);
460 void SendLfgRoleCheckUpdate(ObjectGuid guid, LfgRoleCheck const& roleCheck);
461 void SendLfgUpdateParty(ObjectGuid guid, LfgUpdateData const& data);
462 void SendLfgUpdatePlayer(ObjectGuid guid, LfgUpdateData const& data);
463 void SendLfgUpdateProposal(ObjectGuid guid, LfgProposal const& proposal);
464
465 GuidSet const& GetPlayers(ObjectGuid guid);
466
467 // General variables
471
474 // Reward System
477 // Rolecheck - Proposal - Vote Kicks
483};
484
485inline int32 format_as(LFGMgrEnum e) { return e; }
486inline int32 format_as(LfgProposalState e) { return e; }
487inline uint8 format_as(LfgTeleportError e) { return e; }
488inline int32 format_as(LfgJoinResult e) { return e; }
489inline int32 format_as(LfgRoleCheckState e) { return e; }
490} // namespace lfg
491
492#define sLFGMgr lfg::LFGMgr::instance()
493#endif
@ IN_MILLISECONDS
Definition Common.h:35
Difficulty
Definition DBCEnums.h:279
LFGDungeonEntry const * GetLFGDungeon(uint32 mapId, Difficulty difficulty)
Returns LFGDungeonEntry for a specific map and difficulty. Will return first found entry if multiple ...
#define TC_GAME_API
Definition Define.h:114
uint8_t uint8
Definition Define.h:135
int32_t int32
Definition Define.h:129
uint16_t uint16
Definition Define.h:134
uint32_t uint32
Definition Define.h:133
std::list< ObjectGuid > GuidList
Definition ObjectGuid.h:261
std::set< ObjectGuid > GuidSet
Definition ObjectGuid.h:260
@ CLASS_DRUID
@ CLASS_SHAMAN
@ CLASS_PRIEST
@ CLASS_WARRIOR
@ CLASS_DEATH_KNIGHT
@ CLASS_PALADIN
Class used to access individual fields of database query result.
Definition Field.h:92
Definition Group.h:165
Definition Map.h:281
static ObjectGuid const Empty
Definition ObjectGuid.h:140
LfgProposalContainer ProposalsStore
Current Role checks.
Definition LFGMgr.h:479
LFGDungeonContainer LfgDungeonStore
Stores rewards for random dungeons.
Definition LFGMgr.h:476
LfgPlayerBootContainer BootsStore
Current Proposals.
Definition LFGMgr.h:480
LfgCachedDungeonContainer CachedDungeonMapStore
Queues.
Definition LFGMgr.h:473
LfgRoleCheckContainer RoleChecksStore
Definition LFGMgr.h:478
uint32 m_lfgProposalId
used to check interval of update
Definition LFGMgr.h:469
void ClearState(ObjectGuid guid, char const *debugMsg)
LfgRewardContainer RewardMapStore
Stores all dungeons by groupType.
Definition LFGMgr.h:475
LfgGroupDataContainer GroupsStore
Player data.
Definition LFGMgr.h:482
uint32 m_options
used as internal counter for proposals
Definition LFGMgr.h:470
LfgPlayerDataContainer PlayersStore
Current player kicks.
Definition LFGMgr.h:481
LfgQueueContainer QueuesStore
Stores config options.
Definition LFGMgr.h:472
uint32 m_QueueTimer
Definition LFGMgr.h:468
Definition LFG.cpp:24
LfgOptions
Definition LFGMgr.h:41
@ LFG_OPTION_ENABLE_DUNGEON_FINDER
Definition LFGMgr.h:42
@ LFG_OPTION_ENABLE_RAID_BROWSER
Definition LFGMgr.h:43
std::map< ObjectGuid, LfgGroupData > LfgGroupDataContainer
Definition LFGMgr.h:162
std::map< ObjectGuid, uint8 > LfgRolesMap
Definition LFG.h:105
std::unordered_map< uint32, LFGDungeonData > LFGDungeonContainer
Definition LFGMgr.h:164
LfgTeleportError
Teleport errors.
Definition LFGMgr.h:86
@ LFG_TELEPORTERROR_INVALID_LOCATION
Definition LFGMgr.h:93
@ LFG_TELEPORTERROR_OK
Definition LFGMgr.h:88
@ LFG_TELEPORTERROR_FATIGUE
Definition LFGMgr.h:92
@ LFG_TELEPORTERROR_PLAYER_DEAD
Definition LFGMgr.h:89
@ LFG_TELEPORTERROR_CHARMING
Definition LFGMgr.h:94
@ LFG_TELEPORTERROR_FALLING
Definition LFGMgr.h:90
@ LFG_TELEPORTERROR_IN_VEHICLE
Definition LFGMgr.h:91
LfgState
Definition LFG.h:66
@ LFG_STATE_NONE
Definition LFG.h:67
std::map< ObjectGuid, LfgAnswer > LfgAnswerContainer
Definition LFGMgr.h:157
LfgUpdateType
Definition LFG.h:48
@ LFG_UPDATETYPE_DEFAULT
Definition LFG.h:49
LFGMgrEnum
Definition LFGMgr.h:47
@ LFG_SPELL_DUNGEON_COOLDOWN
Definition LFGMgr.h:52
@ LFG_TIME_BOOT
Definition LFGMgr.h:49
@ LFG_TIME_PROPOSAL
Definition LFGMgr.h:50
@ LFG_GROUP_KICK_VOTES_NEEDED
Definition LFGMgr.h:55
@ LFG_TIME_ROLECHECK
Definition LFGMgr.h:48
@ LFG_SPELL_LUCK_OF_THE_DRAW
Definition LFGMgr.h:54
@ LFG_QUEUEUPDATE_INTERVAL
Definition LFGMgr.h:51
@ LFG_SPELL_DUNGEON_DESERTER
Definition LFGMgr.h:53
LfgType
Determines the type of instance.
Definition LFGMgr.h:68
@ LFG_TYPE_NONE
Definition LFGMgr.h:69
@ LFG_TYPE_RANDOM
Definition LFGMgr.h:73
@ LFG_TYPE_RAID
Definition LFGMgr.h:71
@ LFG_TYPE_DUNGEON
Definition LFGMgr.h:70
@ LFG_TYPE_HEROIC
Definition LFGMgr.h:72
LfgAnswer
Answer state (Also used to check compatibilites)
Definition LFG.h:96
@ LFG_ANSWER_PENDING
Definition LFG.h:97
std::map< ObjectGuid, LfgPlayerData > LfgPlayerDataContainer
Definition LFGMgr.h:163
std::map< uint8, LfgDungeonSet > LfgCachedDungeonContainer
Definition LFGMgr.h:156
std::map< uint8, LFGQueue > LfgQueueContainer
Definition LFGMgr.h:153
std::map< uint32, uint32 > LfgLockMap
Definition LFG.h:103
std::set< uint32 > LfgDungeonSet
Definition LFG.h:102
LfgRoleClasses
Definition LFGMgr.h:132
@ TANK
Definition LFGMgr.h:133
@ HEALER
Definition LFGMgr.h:138
std::map< ObjectGuid, LfgPlayerBoot > LfgPlayerBootContainer
Definition LFGMgr.h:161
LfgRoleCheckState
Role check states.
Definition LFGMgr.h:122
@ LFG_ROLECHECK_WRONG_ROLES
Definition LFGMgr.h:127
@ LFG_ROLECHECK_MISSING_ROLE
Definition LFGMgr.h:126
@ LFG_ROLECHECK_ABORTED
Definition LFGMgr.h:128
@ LFG_ROLECHECK_DEFAULT
Definition LFGMgr.h:123
@ LFG_ROLECHECK_FINISHED
Definition LFGMgr.h:124
@ LFG_ROLECHECK_NO_ROLE
Definition LFGMgr.h:129
@ LFG_ROLECHECK_INITIALITING
Definition LFGMgr.h:125
LfgFlags
Definition LFGMgr.h:59
@ LFG_FLAG_SEASONAL
Definition LFGMgr.h:62
@ LFG_FLAG_UNK3
Definition LFGMgr.h:63
@ LFG_FLAG_UNK2
Definition LFGMgr.h:61
@ LFG_FLAG_UNK1
Definition LFGMgr.h:60
std::pair< LfgRewardContainer::const_iterator, LfgRewardContainer::const_iterator > LfgRewardContainerBounds
Definition LFGMgr.h:155
int32 format_as(LfgUpdateType e)
Definition LFG.h:113
std::map< uint32, LfgProposal > LfgProposalContainer
Definition LFGMgr.h:159
std::map< ObjectGuid, LfgRoleCheck > LfgRoleCheckContainer
Definition LFGMgr.h:158
@ PLAYER_ROLE_NONE
Definition LFG.h:39
std::map< ObjectGuid, LfgLockMap > LfgLockPartyMap
Definition LFG.h:104
std::multimap< uint32, LfgReward const * > LfgRewardContainer
Definition LFGMgr.h:154
LfgProposalState
Proposal states.
Definition LFGMgr.h:78
@ LFG_PROPOSAL_SUCCESS
Definition LFGMgr.h:81
@ LFG_PROPOSAL_FAILED
Definition LFGMgr.h:80
@ LFG_PROPOSAL_INITIATING
Definition LFGMgr.h:79
LfgJoinResult
Queue join results.
Definition LFGMgr.h:99
@ LFG_JOIN_TOO_MUCH_MEMBERS
Definition LFGMgr.h:116
@ LFG_JOIN_MULTI_REALM
Definition LFGMgr.h:108
@ LFG_JOIN_DISCONNECTED
Definition LFGMgr.h:109
@ LFG_JOIN_DUNGEON_INVALID
Definition LFGMgr.h:111
@ LFG_JOIN_USING_BG_SYSTEM
Definition LFGMgr.h:117
@ LFG_JOIN_INTERNAL_ERROR
Definition LFGMgr.h:104
@ LFG_JOIN_MIXED_RAID_DUNGEON
Definition LFGMgr.h:107
@ LFG_JOIN_PARTY_NOT_MEET_REQS
Definition LFGMgr.h:106
@ LFG_JOIN_DESERTER
Definition LFGMgr.h:112
@ LFG_JOIN_RANDOM_COOLDOWN
Definition LFGMgr.h:114
@ LFG_JOIN_GROUPFULL
Definition LFGMgr.h:103
@ LFG_JOIN_PARTY_INFO_FAILED
Definition LFGMgr.h:110
@ LFG_JOIN_PARTY_RANDOM_COOLDOWN
Definition LFGMgr.h:115
@ LFG_JOIN_OK
Definition LFGMgr.h:101
@ LFG_JOIN_PARTY_DESERTER
Definition LFGMgr.h:113
@ LFG_JOIN_FAILED
Definition LFGMgr.h:102
@ LFG_JOIN_NOT_MEET_REQS
Definition LFGMgr.h:105
std::map< ObjectGuid, LfgProposalPlayer > LfgProposalPlayerContainer
Definition LFGMgr.h:160
std::array< uint8, MAX_EXPANSIONS > maxlevel
Definition LFGMgr.h:294
Difficulty difficulty
Definition LFGMgr.h:295
std::string name
Definition LFGMgr.h:288
uint32 Entry() const
Definition LFGMgr.h:300
std::array< uint8, MAX_EXPANSIONS > minlevel
Definition LFGMgr.h:293
LfgJoinResultData(LfgJoinResult _result=LFG_JOIN_OK, LfgRoleCheckState _state=LFG_ROLECHECK_DEFAULT)
Definition LFGMgr.h:169
LfgRoleCheckState state
Definition LFGMgr.h:172
LfgJoinResult result
Definition LFGMgr.h:171
LfgLockPartyMap lockmap
Definition LFGMgr.h:173
Stores information of a current vote to kick someone from a group.
Definition LFGMgr.h:274
std::string reason
Player guid to be kicked (can't vote)
Definition LFGMgr.h:279
time_t cancelTime
Definition LFGMgr.h:275
LfgAnswerContainer votes
Vote in progress.
Definition LFGMgr.h:277
bool inProgress
Time left to vote.
Definition LFGMgr.h:276
ObjectGuid victim
Player votes (-1 not answer | 0 Not agree | 1 agree)
Definition LFGMgr.h:278
Quest const * quest
Definition LFGMgr.h:218
LfgPlayerRewardData(uint32 random, uint32 current, bool _done, Quest const *_quest)
Definition LFGMgr.h:213
Stores player data related to proposal to join.
Definition LFGMgr.h:234
ObjectGuid group
Accept status (-1 not answer | 0 Not agree | 1 agree)
Definition LFGMgr.h:238
LfgAnswer accept
Proposed role.
Definition LFGMgr.h:237
Stores group data related to proposal to join.
Definition LFGMgr.h:243
ObjectGuid leader
Proposal group (0 if new)
Definition LFGMgr.h:252
uint32 dungeonId
Proposal Id.
Definition LFGMgr.h:249
GuidList showorder
Queue Ids to remove/readd.
Definition LFGMgr.h:257
uint32 encounters
Time when we will cancel this proposal.
Definition LFGMgr.h:254
GuidList queues
Determines if it's new group or not.
Definition LFGMgr.h:256
LfgProposalPlayerContainer players
Show order in update window.
Definition LFGMgr.h:258
bool isNew
Dungeon Encounters.
Definition LFGMgr.h:255
LfgProposalState state
Dungeon to join.
Definition LFGMgr.h:250
ObjectGuid group
State of the proposal.
Definition LFGMgr.h:251
LfgProposal(uint32 dungeon=0)
Definition LFGMgr.h:244
time_t cancelTime
Leader guid.
Definition LFGMgr.h:253
LfgQueueStatusData(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:194
Reward info.
Definition LFGMgr.h:223
uint32 firstQuest
Definition LFGMgr.h:228
uint32 otherQuest
Definition LFGMgr.h:229
uint32 maxLevel
Definition LFGMgr.h:227
LfgReward(uint32 _maxLevel=0, uint32 _firstQuest=0, uint32 _otherQuest=0)
Definition LFGMgr.h:224
Stores all rolecheck info of a group that wants to join.
Definition LFGMgr.h:263
LfgDungeonSet dungeons
State of the rolecheck.
Definition LFGMgr.h:267
LfgRolesMap roles
Time when the rolecheck will fail.
Definition LFGMgr.h:265
LfgRoleCheckState state
Player selected roles.
Definition LFGMgr.h:266
time_t cancelTime
Definition LFGMgr.h:264
ObjectGuid leader
Random Dungeon Id.
Definition LFGMgr.h:269
uint32 rDungeonId
Dungeons group is applying for (expanded random dungeons)
Definition LFGMgr.h:268
LfgUpdateData(LfgUpdateType _type=LFG_UPDATETYPE_DEFAULT)
Definition LFGMgr.h:179
LfgDungeonSet dungeons
Definition LFGMgr.h:187
LfgUpdateType updateType
Definition LFGMgr.h:185
LfgUpdateData(LfgUpdateType _type, LfgState _state, LfgDungeonSet const &_dungeons, std::string const &_comment="")
Definition LFGMgr.h:182
std::string comment
Definition LFGMgr.h:188
LfgUpdateData(LfgUpdateType _type, LfgDungeonSet const &_dungeons, std::string const &_comment)
Definition LFGMgr.h:180
LfgState state
Definition LFGMgr.h:186