TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
LFGMgr.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
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 "DBCStructure.h"
22 #include "Field.h"
23 #include "LFG.h"
24 #include "LFGQueue.h"
25 #include "LFGGroupData.h"
26 #include "LFGPlayerData.h"
27 
28 class Group;
29 class Player;
30 class Quest;
31 
32 namespace lfg
33 {
34 
36 {
39 };
40 
42 {
51 };
52 
54 {
59 };
60 
62 enum LfgType
63 {
69 };
70 
73 {
77 };
78 
81 {
82  // 7 = "You can't do that right now" | 5 = No client reaction
83  LFG_TELEPORTERROR_OK = 0, // Internal use
89  LFG_TELEPORTERROR_CHARMING = 8 // FIXME - It can be 7 or 8 (Need proper data)
90 };
91 
94 {
95  // 3 = No client reaction | 18 = "Rolecheck failed"
96  LFG_JOIN_OK = 0x00, // Joined (no client msg)
97  LFG_JOIN_FAILED = 0x1B, // RoleCheck Failed
98  LFG_JOIN_GROUPFULL = 0x1C, // Your group is full
99  LFG_JOIN_INTERNAL_ERROR = 0x1E, // Internal LFG Error
100  LFG_JOIN_NOT_MEET_REQS = 0x1F, // You do not meet the requirements for the chosen dungeons
101  LFG_JOIN_PARTY_NOT_MEET_REQS = 6, // One or more party members do not meet the requirements for the chosen dungeons (FIXME)
102  LFG_JOIN_MIXED_RAID_DUNGEON = 0x20, // You cannot mix dungeons, raids, and random when picking dungeons
103  LFG_JOIN_MULTI_REALM = 0x21, // The dungeon you chose does not support players from multiple realms
104  LFG_JOIN_DISCONNECTED = 0x22, // One or more party members are pending invites or disconnected
105  LFG_JOIN_PARTY_INFO_FAILED = 0x23, // Could not retrieve information about some party members
106  LFG_JOIN_DUNGEON_INVALID = 0x24, // One or more dungeons was not valid
107  LFG_JOIN_DESERTER = 0x25, // You can not queue for dungeons until your deserter debuff wears off
108  LFG_JOIN_PARTY_DESERTER = 0x26, // One or more party members has a deserter debuff
109  LFG_JOIN_RANDOM_COOLDOWN = 0x27, // You can not queue for random dungeons while on random dungeon cooldown
110  LFG_JOIN_PARTY_RANDOM_COOLDOWN = 0x28, // One or more party members are on random dungeon cooldown
111  LFG_JOIN_TOO_MUCH_MEMBERS = 0x29, // You can not enter dungeons with more that 5 party members
112  LFG_JOIN_USING_BG_SYSTEM = 0x2A, // You can not use the dungeon system while in BG or arenas
113  LFG_JOIN_ROLE_CHECK_FAILED = 0x2B // Role check failed, client shows special error
114 };
115 
118 {
119  LFG_ROLECHECK_DEFAULT = 0, // Internal use = Not initialized.
120  LFG_ROLECHECK_FINISHED = 1, // Role check finished
121  LFG_ROLECHECK_INITIALITING = 2, // Role check begins
122  LFG_ROLECHECK_MISSING_ROLE = 3, // Someone didn't selected a role after 2 mins
123  LFG_ROLECHECK_WRONG_ROLES = 4, // Can't form a group with that role selection
124  LFG_ROLECHECK_ABORTED = 5, // Someone leave the group
125  LFG_ROLECHECK_NO_ROLE = 6 // Someone selected no role
126 };
127 
128 // Forward declaration (just to have all typedef together)
129 struct LFGDungeonData;
130 struct LfgReward;
131 struct LfgQueueInfo;
132 struct LfgRoleCheck;
133 struct LfgProposal;
134 struct LfgProposalPlayer;
136 
137 typedef std::map<uint8, LFGQueue> LfgQueueContainer;
138 typedef std::multimap<uint32, LfgReward const*> LfgRewardContainer;
139 typedef std::pair<LfgRewardContainer::const_iterator, LfgRewardContainer::const_iterator> LfgRewardContainerBounds;
140 typedef std::map<uint8, LfgDungeonSet> LfgCachedDungeonContainer;
141 typedef std::map<ObjectGuid, LfgAnswer> LfgAnswerContainer;
142 typedef std::map<ObjectGuid, LfgRoleCheck> LfgRoleCheckContainer;
143 typedef std::map<uint32, LfgProposal> LfgProposalContainer;
144 typedef std::map<ObjectGuid, LfgProposalPlayer> LfgProposalPlayerContainer;
145 typedef std::map<ObjectGuid, LfgPlayerBoot> LfgPlayerBootContainer;
146 typedef std::map<ObjectGuid, LfgGroupData> LfgGroupDataContainer;
147 typedef std::map<ObjectGuid, LfgPlayerData> LfgPlayerDataContainer;
148 typedef std::unordered_map<uint32, LFGDungeonData> LFGDungeonContainer;
149 
150 // Data needed by SMSG_LFG_JOIN_RESULT
152 {
154  result(_result), state(_state) { }
158 };
159 
160 // Data needed by SMSG_LFG_UPDATE_STATUS
162 {
164  LfgUpdateData(LfgUpdateType _type, LfgDungeonSet const& _dungeons, std::string const& _comment):
165  updateType(_type), state(LFG_STATE_NONE), dungeons(_dungeons), comment(_comment) { }
166  LfgUpdateData(LfgUpdateType _type, LfgState _state, LfgDungeonSet const& _dungeons, std::string const& _comment = ""):
167  updateType(_type), state(_state), dungeons(_dungeons), comment(_comment) { }
168 
172  std::string comment;
173 };
174 
175 // Data needed by SMSG_LFG_QUEUE_STATUS
177 {
178  LfgQueueStatusData(uint8 _queueId = 0, uint32 _dungeonId = 0, time_t _joinTime = 0, int32 _waitTime = -1, int32 _waitTimeAvg = -1, int32 _waitTimeTank = -1, int32 _waitTimeHealer = -1,
179  int32 _waitTimeDps = -1, uint32 _queuedTime = 0, uint8 _tanks = 0, uint8 _healers = 0, uint8 _dps = 0) :
180  queueId(_queueId), dungeonId(_dungeonId), joinTime(_joinTime), waitTime(_waitTime), waitTimeAvg(_waitTimeAvg), waitTimeTank(_waitTimeTank),
181  waitTimeHealer(_waitTimeHealer), waitTimeDps(_waitTimeDps), queuedTime(_queuedTime), tanks(_tanks), healers(_healers), dps(_dps) { }
182 
185  time_t joinTime;
195 };
196 
198 {
199  LfgPlayerRewardData(uint32 random, uint32 current, bool _done, Quest const* _quest):
200  rdungeonEntry(random), sdungeonEntry(current), done(_done), quest(_quest) { }
203  bool done;
204  Quest const* quest;
205 };
206 
208 struct LfgReward
209 {
210  LfgReward(uint32 _maxLevel = 0, uint32 _firstQuest = 0, uint32 _otherQuest = 0):
211  maxLevel(_maxLevel), firstQuest(_firstQuest), otherQuest(_otherQuest) { }
212 
216 };
217 
220 {
225 };
226 
229 {
231  group(), leader(), cancelTime(0), encounters(0), isNew(true)
232  { }
233 
239  time_t cancelTime;
241  bool isNew;
244  LfgProposalPlayerContainer players;
245 };
246 
249 {
250  time_t cancelTime;
256 };
257 
260 {
261  time_t cancelTime;
262  bool inProgress;
263  LfgAnswerContainer votes;
265  std::string reason;
266 };
267 
269 {
270  LFGDungeonData(): id(0), name(""), map(0), type(0), expansion(0), group(0), minlevel(0),
271  maxlevel(0), difficulty(DIFFICULTY_NONE), seasonal(false), x(0.0f), y(0.0f), z(0.0f), o(0.0f),
273  { }
274  LFGDungeonData(LFGDungeonEntry const* dbc): id(dbc->ID), name(dbc->Name_lang), map(dbc->MapID),
275  type(uint8(dbc->Type)), expansion(uint8(dbc->Expansion)), group(uint8(dbc->GroupID)),
276  minlevel(uint8(dbc->MinLevel)), maxlevel(uint8(dbc->MaxLevel)), difficulty(Difficulty(dbc->DifficultyID)),
277  seasonal((dbc->Flags & LFG_FLAG_SEASONAL) != 0), x(0.0f), y(0.0f), z(0.0f), o(0.0f),
279  { }
280 
282  std::string name;
290  bool seasonal;
291  float x, y, z, o;
293 
294  // Helpers
295  uint32 Entry() const { return id + (type << 24); }
296 };
297 
299 {
300  private:
301  LFGMgr();
302  ~LFGMgr();
303 
304  public:
305  static LFGMgr* instance();
306 
307  // Functions used outside lfg namespace
308  void Update(uint32 diff);
309 
310  // World.cpp
312  void FinishDungeon(ObjectGuid gguid, uint32 dungeonId);
314  void LoadRewards();
316  void LoadLFGDungeons(bool reload = false);
317 
318  // Multiple files
320  bool selectedRandomLfgDungeon(ObjectGuid guid);
322  bool inLfgDungeonMap(ObjectGuid guid, uint32 map, Difficulty difficulty);
324  LfgDungeonSet const& GetSelectedDungeons(ObjectGuid guid);
326  LfgState GetState(ObjectGuid guid);
328  bool IsVoteKickActive(ObjectGuid gguid);
330  uint32 GetDungeon(ObjectGuid guid, bool asId = true);
332  uint32 GetDungeonMapId(ObjectGuid guid);
334  uint8 GetKicksLeft(ObjectGuid gguid);
336  void _LoadFromDB(Field* fields, ObjectGuid guid);
338  void SetupGroupMember(ObjectGuid guid, ObjectGuid gguid);
340  uint32 GetLFGDungeonEntry(uint32 id);
341 
342  // cs_lfg
344  uint8 GetRoles(ObjectGuid guid);
346  std::string const& GetComment(ObjectGuid gguid);
348  uint32 GetOptions();
350  void SetOptions(uint32 options);
352  bool isOptionEnabled(uint32 option);
354  void Clean();
356  std::string DumpQueueInfo(bool full = false);
357 
358  // LFGScripts
360  ObjectGuid GetLeader(ObjectGuid guid);
362  void SetTeam(ObjectGuid guid, uint8 team);
364  void SetGroup(ObjectGuid guid, ObjectGuid group);
366  ObjectGuid GetGroup(ObjectGuid guid);
368  void SetLeader(ObjectGuid gguid, ObjectGuid leader);
370  void RemoveGroupData(ObjectGuid guid);
372  uint8 RemovePlayerFromGroup(ObjectGuid gguid, ObjectGuid guid);
374  void AddPlayerToGroup(ObjectGuid gguid, ObjectGuid guid);
375 
376  // LFGHandler
378  LfgLockMap const GetLockedDungeons(ObjectGuid guid);
380  LfgUpdateData GetLfgStatus(ObjectGuid guid);
382  bool IsSeasonActive(uint32 dungeonId);
384  LfgReward const* GetRandomDungeonReward(uint32 dungeon, uint8 level);
386  LfgDungeonSet GetRandomAndSeasonalDungeons(uint8 level, uint8 expansion);
388  void TeleportPlayer(Player* player, bool out, bool fromOpcode = false);
390  void InitBoot(ObjectGuid gguid, ObjectGuid kguid, ObjectGuid vguid, std::string const& reason);
392  void UpdateBoot(ObjectGuid guid, bool accept);
394  void UpdateProposal(uint32 proposalId, ObjectGuid guid, bool accept);
396  void UpdateRoleCheck(ObjectGuid gguid, ObjectGuid guid = ObjectGuid::Empty, uint8 roles = PLAYER_ROLE_NONE);
398  void SetRoles(ObjectGuid guid, uint8 roles);
400  void SetComment(ObjectGuid guid, std::string const& comment);
402  void JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, std::string const& comment);
404  void LeaveLfg(ObjectGuid guid, bool disconnected = false);
405 
406  // LfgQueue
408  LfgState GetOldState(ObjectGuid guid);
410  bool IsLfgGroup(ObjectGuid guid);
412  uint8 GetPlayerCount(ObjectGuid guid);
414  uint32 AddProposal(LfgProposal& proposal);
416  uint8 GetQueueId(ObjectGuid guid);
418  bool AllQueued(GuidList const& check);
420  time_t GetQueueJoinTime(ObjectGuid guid);
422  static bool CheckGroupRoles(LfgRolesMap &groles);
424  static bool HasIgnore(ObjectGuid guid1, ObjectGuid guid2);
426  static void SendLfgQueueStatus(ObjectGuid guid, LfgQueueStatusData const& data);
427 
428  private:
429  uint8 GetTeam(ObjectGuid guid);
430  void RestoreState(ObjectGuid guid, char const* debugMsg);
431  void ClearState(ObjectGuid guid, char const* debugMsg);
432  void SetDungeon(ObjectGuid guid, uint32 dungeon);
433  void SetSelectedDungeons(ObjectGuid guid, LfgDungeonSet const& dungeons);
434  void DecreaseKicksLeft(ObjectGuid guid);
435  void SetState(ObjectGuid guid, LfgState state);
436  void SetVoteKick(ObjectGuid gguid, bool active);
437  void RemovePlayerData(ObjectGuid guid);
438  void GetCompatibleDungeons(LfgDungeonSet& dungeons, GuidSet const& players, LfgLockPartyMap& lockMap, bool isContinue);
439  void _SaveToDB(ObjectGuid guid, uint32 db_guid);
441 
442  // Proposals
443  void RemoveProposal(LfgProposalContainer::iterator itProposal, LfgUpdateType type);
444  void MakeNewGroup(LfgProposal const& proposal);
445 
446  // Generic
447  LFGQueue& GetQueue(ObjectGuid guid);
448 
449  LfgDungeonSet const& GetDungeonsByRandom(uint32 randomdungeon);
450  LfgType GetDungeonType(uint32 dungeon);
451 
452  void SendLfgBootProposalUpdate(ObjectGuid guid, LfgPlayerBoot const& boot);
453  void SendLfgJoinResult(ObjectGuid guid, LfgJoinResultData const& data);
454  void SendLfgRoleChosen(ObjectGuid guid, ObjectGuid pguid, uint8 roles);
455  void SendLfgRoleCheckUpdate(ObjectGuid guid, LfgRoleCheck const& roleCheck);
456  void SendLfgUpdateStatus(ObjectGuid guid, LfgUpdateData const& data, bool party);
457  void SendLfgUpdateProposal(ObjectGuid guid, LfgProposal const& proposal);
458 
459  GuidSet const& GetPlayers(ObjectGuid guid);
460 
461  // General variables
465 
466  LfgQueueContainer QueuesStore;
467  LfgCachedDungeonContainer CachedDungeonMapStore;
468  // Reward System
469  LfgRewardContainer RewardMapStore;
470  LFGDungeonContainer LfgDungeonStore;
471  // Rolecheck - Proposal - Vote Kicks
472  LfgRoleCheckContainer RoleChecksStore;
473  LfgProposalContainer ProposalsStore;
474  LfgPlayerBootContainer BootsStore;
475  LfgPlayerDataContainer PlayersStore;
476  LfgGroupDataContainer GroupsStore;
477 };
478 
479 } // namespace lfg
480 
481 #define sLFGMgr lfg::LFGMgr::instance()
482 #endif
Quest const * quest
Definition: LFGMgr.h:204
LfgRoleCheckState state
Definition: LFGMgr.h:156
uint8 maxlevel
Definition: LFGMgr.h:288
Definition: DBCEnums.h:404
std::map< ObjectGuid, LfgRoleCheck > LfgRoleCheckContainer
Definition: LFGMgr.h:142
uint8 minlevel
Definition: LFGMgr.h:287
Difficulty
Definition: DBCEnums.h:402
uint32 maxLevel
Definition: LFGMgr.h:213
Definition: LFGMgr.h:151
static ObjectGuid const Empty
Definition: ObjectGuid.h:196
Definition: LFG.h:97
uint32 m_options
Stores config options.
Definition: LFGMgr.h:464
LfgPlayerBootContainer BootsStore
Current player kicks.
Definition: LFGMgr.h:474
Definition: LFGMgr.h:44
Definition: LFGMgr.h:49
uint32 m_lfgProposalId
used as internal counter for proposals
Definition: LFGMgr.h:463
LfgJoinResult result
Definition: LFGMgr.h:155
Definition: LFG.h:36
LfgProposalPlayerContainer players
Players data.
Definition: LFGMgr.h:244
uint8 dps
Definition: LFGMgr.h:194
Definition: LFGMgr.h:50
Definition: QuestDef.h:279
Definition: LFGMgr.h:161
LfgJoinResult
Queue join results.
Definition: LFGMgr.h:93
Definition: LFGMgr.h:99
Stores information of a current vote to kick someone from a group.
Definition: LFGMgr.h:259
Definition: LFGMgr.h:76
GuidList queues
Queue Ids to remove/readd.
Definition: LFGMgr.h:242
Definition: LFGMgr.h:102
LfgOptions
Definition: LFGMgr.h:35
bool inProgress
Vote in progress.
Definition: LFGMgr.h:262
LFGMgrEnum
Definition: LFGMgr.h:41
LfgReward(uint32 _maxLevel=0, uint32 _firstQuest=0, uint32 _otherQuest=0)
Definition: LFGMgr.h:210
Class used to access individual fields of database query result.
Definition: Field.h:56
float o
Definition: LFGMgr.h:291
Definition: LFGMgr.h:68
uint32 queuedTime
Definition: LFGMgr.h:191
LfgTeleportError
Teleport errors.
Definition: LFGMgr.h:80
LfgQueueContainer QueuesStore
Queues.
Definition: LFGMgr.h:466
LfgRoleCheckContainer RoleChecksStore
Current Role checks.
Definition: LFGMgr.h:472
LfgAnswer accept
Accept status (-1 not answer | 0 Not agree | 1 agree)
Definition: LFGMgr.h:223
Definition: LFGMgr.h:84
Definition: LFG.h:67
LfgAnswerContainer votes
Player votes (-1 not answer | 0 Not agree | 1 agree)
Definition: LFGMgr.h:263
float x
Definition: LFGMgr.h:291
int32 waitTime
Definition: LFGMgr.h:186
LfgPlayerRewardData(uint32 random, uint32 current, bool _done, Quest const *_quest)
Definition: LFGMgr.h:199
Definition: LFGMgr.h:106
LFGDungeonEntry const * GetLFGDungeon(uint32 mapId, Difficulty difficulty)
Returns LFGDungeonEntry for a specific map and difficulty. Will return first found entry if multiple ...
Definition: DBCStores.cpp:815
Definition: LFGMgr.h:65
#define false
Definition: CascPort.h:18
LfgProposalContainer ProposalsStore
Current Proposals.
Definition: LFGMgr.h:473
LfgState
Definition: LFG.h:65
time_t cancelTime
Time when the rolecheck will fail.
Definition: LFGMgr.h:250
GuidList showorder
Show order in update window.
Definition: LFGMgr.h:243
LFGDungeonData()
Definition: LFGMgr.h:270
LFGDungeonContainer LfgDungeonStore
Definition: LFGMgr.h:470
int32 waitTimeAvg
Definition: LFGMgr.h:187
LfgProposalState
Proposal states.
Definition: LFGMgr.h:72
uint8 role
Proposed role.
Definition: LFGMgr.h:222
Definition: LFGMgr.h:58
ObjectGuid group
Proposal group (0 if new)
Definition: LFGMgr.h:237
LfgUpdateData(LfgUpdateType _type, LfgState _state, LfgDungeonSet const &_dungeons, std::string const &_comment="")
Definition: LFGMgr.h:166
Definition: LFGMgr.h:48
Stores all rolecheck info of a group that wants to join.
Definition: LFGMgr.h:248
LfgFlags
Definition: LFGMgr.h:53
std::string comment
Definition: LFGMgr.h:172
Definition: LFGMgr.h:64
LfgType
Determines the type of instance.
Definition: LFGMgr.h:62
Definition: LFGMgr.h:113
float y
Definition: LFGMgr.h:291
std::list< ObjectGuid > GuidList
Definition: ObjectGuid.h:333
LfgRoleCheckState state
State of the rolecheck.
Definition: LFGMgr.h:252
bool done
Definition: LFGMgr.h:203
Definition: LFGMgr.h:98
TC_GAME_API HashMapHolder< Player >::MapType const & GetPlayers()
Definition: ObjectAccessor.cpp:258
std::map< ObjectGuid, LfgPlayerBoot > LfgPlayerBootContainer
Definition: LFGMgr.h:145
LfgUpdateType updateType
Definition: LFGMgr.h:169
#define true
Definition: CascPort.h:17
Definition: DBCStructure.h:742
Definition: LFGMgr.h:119
Definition: LFG.cpp:22
Definition: LFGMgr.h:101
Definition: LFGMgr.h:66
std::map< ObjectGuid, LfgAnswer > LfgAnswerContainer
Definition: LFGMgr.h:141
Stores group data related to proposal to join.
Definition: LFGMgr.h:228
LfgDungeonSet dungeons
Dungeons group is applying for (expanded random dungeons)
Definition: LFGMgr.h:253
time_t cancelTime
Time left to vote.
Definition: LFGMgr.h:261
Definition: LFGMgr.h:46
Definition: LFGMgr.h:43
LfgAnswer
Answer state (Also used to check compatibilites)
Definition: LFG.h:95
bool isNew
Determines if it's new group or not.
Definition: LFGMgr.h:241
LfgUpdateData(LfgUpdateType _type, LfgDungeonSet const &_dungeons, std::string const &_comment)
Definition: LFGMgr.h:164
float z
Definition: LFGMgr.h:291
Definition: LFGMgr.h:45
Definition: LFGMgr.h:122
LfgDungeonSet dungeons
Definition: LFGMgr.h:171
uint32 rdungeonEntry
Definition: LFGMgr.h:201
Definition: LFGMgr.h:111
std::map< uint32, LfgProposal > LfgProposalContainer
Definition: LFGMgr.h:143
std::map< uint32, LfgLockInfoData > LfgLockMap
Definition: LFG.h:113
uint32 id
Proposal Id.
Definition: LFGMgr.h:234
Definition: LFGMgr.h:108
bool seasonal
Definition: LFGMgr.h:290
Definition: LFGMgr.h:56
Definition: LFGMgr.h:75
std::set< uint32 > LfgDungeonSet
Definition: LFG.h:112
std::map< ObjectGuid, uint8 > LfgRolesMap
Definition: LFG.h:115
Definition: LFGMgr.h:85
uint32 sdungeonEntry
Definition: LFGMgr.h:202
int32_t int32
Definition: Define.h:146
std::map< uint8, LfgDungeonSet > LfgCachedDungeonContainer
Definition: LFGMgr.h:140
uint32_t uint32
Definition: Define.h:150
ObjectGuid group
Original group guid. 0 if no original group.
Definition: LFGMgr.h:224
std::map< ObjectGuid, LfgLockMap > LfgLockPartyMap
Definition: LFG.h:114
uint32 m_QueueTimer
used to check interval of update
Definition: LFGMgr.h:462
Definition: LFGMgr.h:89
uint16_t uint16
Definition: Define.h:151
LfgQueueStatusData(uint8 _queueId=0, uint32 _dungeonId=0, time_t _joinTime=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:178
uint8 queueId
Definition: LFGMgr.h:183
LfgJoinResultData(LfgJoinResult _result=LFG_JOIN_OK, LfgRoleCheckState _state=LFG_ROLECHECK_DEFAULT)
Definition: LFGMgr.h:153
Definition: LFGMgr.h:100
LfgUpdateType
Definition: LFG.h:43
Definition: LFG.h:45
std::multimap< uint32, LfgReward const * > LfgRewardContainer
Definition: LFGMgr.h:138
Definition: LFGMgr.h:268
Definition: LFGMgr.h:83
Definition: LFGMgr.h:47
uint32 dungeonId
Definition: LFGMgr.h:184
uint8 healers
Definition: LFGMgr.h:193
Definition: LFGMgr.h:124
time_t joinTime
Definition: LFGMgr.h:185
uint8 group
Definition: LFGMgr.h:286
Definition: LFGMgr.h:110
int32 waitTimeTank
Definition: LFGMgr.h:188
uint16 requiredItemLevel
Definition: LFGMgr.h:292
LfgPlayerDataContainer PlayersStore
Player data.
Definition: LFGMgr.h:475
Definition: LFGQueue.h:86
Definition: LFGMgr.h:97
LfgUpdateData(LfgUpdateType _type=LFG_UPDATETYPE_DEFAULT)
Definition: LFGMgr.h:163
Definition: LFGMgr.h:120
Definition: LFGMgr.h:197
Definition: LFGMgr.h:103
ObjectGuid leader
Leader guid.
Definition: LFGMgr.h:238
Reward info.
Definition: LFGMgr.h:208
int32 waitTimeHealer
Definition: LFGMgr.h:189
LFGDungeonData(LFGDungeonEntry const *dbc)
Definition: LFGMgr.h:274
ObjectGuid victim
Player guid to be kicked (can't vote)
Definition: LFGMgr.h:264
uint32 map
Definition: LFGMgr.h:283
uint8 tanks
Definition: LFGMgr.h:192
Definition: LFGMgr.h:125
uint32 dungeonId
Dungeon to join.
Definition: LFGMgr.h:235
std::unordered_map< uint32, LFGDungeonData > LFGDungeonContainer
Definition: LFGMgr.h:148
std::map< ObjectGuid, LfgGroupData > LfgGroupDataContainer
Definition: LFGMgr.h:146
Definition: LFGMgr.h:107
std::set< ObjectGuid > GuidSet
Definition: ObjectGuid.h:332
Definition: LFGMgr.h:86
#define TC_GAME_API
Definition: Define.h:134
Definition: Common.h:103
uint32 otherQuest
Definition: LFGMgr.h:215
std::string name
Definition: LFGMgr.h:282
int32 waitTimeDps
Definition: LFGMgr.h:190
Stores player data related to proposal to join.
Definition: LFGMgr.h:219
LfgRolesMap roles
Player selected roles.
Definition: LFGMgr.h:251
LfgLockPartyMap lockmap
Definition: LFGMgr.h:157
Definition: LFGMgr.h:105
Definition: LFGMgr.h:96
uint8_t uint8
Definition: Define.h:152
LfgProposalState state
State of the proposal.
Definition: LFGMgr.h:236
Definition: LFGMgr.h:87
LfgRewardContainer RewardMapStore
Stores rewards for random dungeons.
Definition: LFGMgr.h:469
time_t cancelTime
Time when we will cancel this proposal.
Definition: LFGMgr.h:239
LfgRoleCheckState
Role check states.
Definition: LFGMgr.h:117
LfgProposalPlayer()
Definition: LFGMgr.h:221
Definition: LFGMgr.h:176
ObjectGuid leader
Leader of the group.
Definition: LFGMgr.h:255
Definition: LFGMgr.h:55
uint32 encounters
Dungeon Encounters.
Definition: LFGMgr.h:240
uint8 expansion
Definition: LFGMgr.h:285
uint32 firstQuest
Definition: LFGMgr.h:214
Definition: LFGMgr.h:104
Definition: ObjectGuid.h:189
Difficulty difficulty
Definition: LFGMgr.h:289
std::map< uint8, LFGQueue > LfgQueueContainer
Definition: LFGMgr.h:135
std::string reason
kick reason
Definition: LFGMgr.h:265
uint32 Entry() const
Definition: LFGMgr.h:295
LfgState state
Definition: LFGMgr.h:170
T check(T value)
Definition: format.h:305
Type
Type of JSON value.
Definition: rapidjson.h:642
Definition: LFGMgr.h:74
Definition: LFGMgr.h:123
LfgGroupDataContainer GroupsStore
Group data.
Definition: LFGMgr.h:476
uint32 rDungeonId
Random Dungeon Id.
Definition: LFGMgr.h:254
LfgProposal(uint32 dungeon=0)
Definition: LFGMgr.h:230
std::map< ObjectGuid, LfgPlayerData > LfgPlayerDataContainer
Definition: LFGMgr.h:147
Definition: LFGMgr.h:112
Definition: LFGMgr.h:121
uint8 type
Definition: LFGMgr.h:284
uint32 id
Definition: LFGMgr.h:281
void Update(uint32 diff)
Definition: WeatherMgr.cpp:150
Definition: LFGMgr.h:109
Definition: Group.h:191
Definition: LFGMgr.h:57
LfgCachedDungeonContainer CachedDungeonMapStore
Stores all dungeons by groupType.
Definition: LFGMgr.h:467
std::map< ObjectGuid, LfgProposalPlayer > LfgProposalPlayerContainer
Definition: LFGMgr.h:144
Definition: LFGMgr.h:298
std::pair< LfgRewardContainer::const_iterator, LfgRewardContainer::const_iterator > LfgRewardContainerBounds
Definition: LFGMgr.h:139
Definition: LFGMgr.h:67