AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
lfg::LFGPlayerScript Class Reference

#include "LFGScripts.h"

Inheritance diagram for lfg::LFGPlayerScript:
PlayerScript ScriptObject

Public Member Functions

 LFGPlayerScript ()
 
void OnPlayerLevelChanged (Player *player, uint8 oldLevel) override
 
void OnPlayerLogout (Player *player) override
 
void OnPlayerLogin (Player *player) override
 
void OnPlayerBindToInstance (Player *player, Difficulty difficulty, uint32 mapId, bool permanent) override
 
void OnPlayerMapChanged (Player *player) override
 
- Public Member Functions inherited from PlayerScript
virtual void OnPlayerJustDied (Player *)
 
virtual void OnPlayerCalculateTalentsPoints (Player const *, uint32 &)
 
virtual void OnPlayerReleasedGhost (Player *)
 
virtual void OnPlayerSendInitialPacketsBeforeAddToMap (Player *, WorldPacket &)
 
virtual void OnPlayerBattlegroundDesertion (Player *, BattlegroundDesertionType const)
 
virtual void OnPlayerCompleteQuest (Player *, Quest const *)
 
virtual void OnPlayerPVPKill (Player *, Player *)
 
virtual void OnPlayerPVPFlagChange (Player *, bool)
 
virtual void OnPlayerCreatureKill (Player *, Creature *)
 
virtual void OnPlayerCreatureKilledByPet (Player *, Creature *)
 
virtual void OnPlayerKilledByCreature (Creature *, Player *)
 
virtual void OnPlayerFreeTalentPointsChanged (Player *, uint32)
 
virtual void OnPlayerTalentsReset (Player *, bool)
 
virtual void OnPlayerAfterSpecSlotChanged (Player *, uint8)
 
virtual void OnPlayerBeforeUpdate (Player *, uint32)
 
virtual void OnPlayerUpdate (Player *, uint32)
 
virtual void OnPlayerMoneyChanged (Player *, int32 &)
 
virtual void OnPlayerBeforeLootMoney (Player *, Loot *)
 
virtual void OnPlayerGiveXP (Player *, uint32 &, Unit *, uint8)
 
virtual bool OnPlayerReputationChange (Player *, uint32, int32 &, bool)
 
virtual void OnPlayerReputationRankChange (Player *, uint32, ReputationRank, ReputationRank, bool)
 
virtual void OnPlayerLearnSpell (Player *, uint32)
 
virtual void OnPlayerForgotSpell (Player *, uint32)
 
virtual void OnPlayerDuelRequest (Player *, Player *)
 
virtual void OnPlayerDuelStart (Player *, Player *)
 
virtual void OnPlayerDuelEnd (Player *, Player *, DuelCompleteType)
 
virtual void OnPlayerChat (Player *, uint32, uint32, std::string &)
 
virtual void OnPlayerBeforeSendChatMessage (Player *, uint32 &, uint32 &, std::string &)
 
virtual void OnPlayerChat (Player *, uint32, uint32, std::string &, Player *)
 
virtual void OnPlayerChat (Player *, uint32, uint32, std::string &, Group *)
 
virtual void OnPlayerChat (Player *, uint32, uint32, std::string &, Guild *)
 
virtual void OnPlayerChat (Player *, uint32, uint32, std::string &, Channel *)
 
virtual void OnPlayerEmote (Player *, uint32)
 
virtual void OnPlayerTextEmote (Player *, uint32, uint32, ObjectGuid)
 
virtual void OnPlayerSpellCast (Player *, Spell *, bool)
 
virtual void OnPlayerLoadFromDB (Player *)
 
virtual void OnPlayerBeforeLogout (Player *)
 
virtual void OnPlayerCreate (Player *)
 
virtual void OnPlayerDelete (ObjectGuid, uint32)
 
virtual void OnPlayerFailedDelete (ObjectGuid, uint32)
 
virtual void OnPlayerSave (Player *)
 
virtual void OnPlayerUpdateZone (Player *, uint32, uint32)
 
virtual void OnPlayerUpdateArea (Player *, uint32, uint32)
 
virtual bool OnPlayerBeforeTeleport (Player *, uint32, float, float, float, float, uint32, Unit *)
 
virtual void OnPlayerUpdateFaction (Player *)
 
virtual void OnPlayerAddToBattleground (Player *, Battleground *)
 
virtual void OnPlayerQueueRandomDungeon (Player *, uint32 &)
 
virtual void OnPlayerRemoveFromBattleground (Player *, Battleground *)
 
virtual void OnPlayerAchievementComplete (Player *, AchievementEntry const *)
 
virtual bool OnPlayerBeforeAchievementComplete (Player *, AchievementEntry const *)
 
virtual void OnPlayerCriteriaProgress (Player *, AchievementCriteriaEntry const *)
 
virtual bool OnPlayerBeforeCriteriaProgress (Player *, AchievementCriteriaEntry const *)
 
virtual void OnPlayerAchievementSave (CharacterDatabaseTransaction, Player *, uint16, CompletedAchievementData)
 
virtual void OnPlayerCriteriaSave (CharacterDatabaseTransaction, Player *, uint16, CriteriaProgress)
 
virtual void OnPlayerGossipSelect (Player *, uint32, uint32, uint32)
 
virtual void OnPlayerGossipSelectCode (Player *, uint32, uint32, uint32, const char *)
 
virtual void OnPlayerBeingCharmed (Player *, Unit *, uint32, uint32)
 
virtual void OnPlayerAfterSetVisibleItemSlot (Player *, uint8, Item *)
 
virtual void OnPlayerAfterMoveItemFromInventory (Player *, Item *, uint8, uint8, bool)
 
virtual void OnPlayerEquip (Player *, Item *, uint8, uint8, bool)
 
virtual void OnPlayerJoinBG (Player *)
 
virtual void OnPlayerJoinArena (Player *)
 
virtual void OnPlayerGetMaxPersonalArenaRatingRequirement (Player const *, uint32, uint32 &) const
 
virtual void OnPlayerLootItem (Player *, Item *, uint32, ObjectGuid)
 
virtual void OnPlayerBeforeFillQuestLootItem (Player *, LootItem &)
 
virtual void OnPlayerStoreNewItem (Player *, Item *, uint32)
 
virtual void OnPlayerCreateItem (Player *, Item *, uint32)
 
virtual void OnPlayerQuestRewardItem (Player *, Item *, uint32)
 
virtual bool OnPlayerCanPlaceAuctionBid (Player *, AuctionEntry *)
 
virtual void OnPlayerGroupRollRewardItem (Player *, Item *, uint32, RollVote, Roll *)
 
virtual bool OnPlayerBeforeOpenItem (Player *, Item *)
 
virtual bool OnPlayerBeforeQuestComplete (Player *, uint32)
 
virtual void OnPlayerQuestComputeXP (Player *, Quest const *, uint32 &)
 
virtual void OnPlayerBeforeDurabilityRepair (Player *, ObjectGuid, ObjectGuid, float &, uint8)
 
virtual void OnPlayerBeforeBuyItemFromVendor (Player *, ObjectGuid, uint32, uint32 &, uint8, uint8, uint8)
 
virtual void OnPlayerBeforeStoreOrEquipNewItem (Player *, uint32, uint32 &, uint8, uint8, uint8, ItemTemplate const *, Creature *, VendorItem const *, bool)
 
virtual void OnPlayerAfterStoreOrEquipNewItem (Player *, uint32, Item *, uint8, uint8, uint8, ItemTemplate const *, Creature *, VendorItem const *, bool)
 
virtual void OnPlayerAfterUpdateMaxPower (Player *, Powers &, float &)
 
virtual void OnPlayerAfterUpdateMaxHealth (Player *, float &)
 
virtual void OnPlayerBeforeUpdateAttackPowerAndDamage (Player *, float &, float &, bool)
 
virtual void OnPlayerAfterUpdateAttackPowerAndDamage (Player *, float &, float &, float &, float &, bool)
 
virtual void OnPlayerBeforeInitTalentForLevel (Player *, uint8 &, uint32 &)
 
virtual void OnPlayerFirstLogin (Player *)
 
virtual void OnPlayerSetMaxLevel (Player *, uint32 &)
 
virtual bool OnPlayerCanJoinInBattlegroundQueue (Player *, ObjectGuid, BattlegroundTypeId, uint8, GroupJoinBattlegroundResult &)
 
virtual bool OnPlayerShouldBeRewardedWithMoneyInsteadOfExp (Player *)
 
virtual void OnPlayerBeforeTempSummonInitStats (Player *, TempSummon *, uint32 &)
 
virtual void OnPlayerBeforeGuardianInitStatsForLevel (Player *, Guardian *, CreatureTemplate const *, PetType &)
 
virtual void OnPlayerAfterGuardianInitStatsForLevel (Player *, Guardian *)
 
virtual void OnPlayerBeforeLoadPetFromDB (Player *, uint32 &, uint32 &, bool &, bool &)
 
virtual bool OnPlayerCanJoinInArenaQueue (Player *, ObjectGuid, uint8, BattlegroundTypeId, uint8, uint8, GroupJoinBattlegroundResult &)
 
virtual bool OnPlayerCanBattleFieldPort (Player *, uint8, BattlegroundTypeId, uint8)
 
virtual bool OnPlayerCanGroupInvite (Player *, std::string &)
 
virtual bool OnPlayerCanGroupAccept (Player *, Group *)
 
virtual bool OnPlayerCanSellItem (Player *, Item *, Creature *)
 
virtual bool OnPlayerCanSendMail (Player *, ObjectGuid, ObjectGuid, std::string &, std::string &, uint32, uint32, Item *)
 
virtual void OnPlayerPetitionBuy (Player *, Creature *, uint32 &, uint32 &, uint32 &)
 
virtual void OnPlayerPetitionShowList (Player *, Creature *, uint32 &, uint32 &, uint32 &)
 
virtual void OnPlayerRewardKillRewarder (Player *, KillRewarder *, bool, float &)
 
virtual bool OnPlayerCanGiveMailRewardAtGiveLevel (Player *, uint8)
 
virtual void OnPlayerDeleteFromDB (CharacterDatabaseTransaction, uint32)
 
virtual bool OnPlayerCanRepopAtGraveyard (Player *)
 
virtual Optional< bool > OnPlayerIsClass (Player const *, Classes, ClassContext)
 
virtual void OnPlayerGetMaxSkillValue (Player *, uint32, int32 &, bool)
 
virtual bool OnPlayerHasActivePowerType (Player const *, Powers)
 
virtual void OnPlayerUpdateGatheringSkill (Player *, uint32, uint32, uint32, uint32, uint32, uint32 &)
 This hook called before gathering skill gain is applied to the character.
 
virtual void OnPlayerUpdateCraftingSkill (Player *, SkillLineAbilityEntry const *, uint32, uint32 &)
 This hook is called before crafting skill gain is applied to the character.
 
virtual bool OnPlayerUpdateFishingSkill (Player *, int32, int32, int32, int32)
 
virtual bool OnPlayerCanAreaExploreAndOutdoor (Player *)
 
virtual void OnPlayerVictimRewardBefore (Player *, Player *, uint32 &, uint32 &)
 
virtual void OnPlayerVictimRewardAfter (Player *, Player *, uint32 &, uint32 &, float &)
 
virtual void OnPlayerCustomScalingStatValueBefore (Player *, ItemTemplate const *, uint8, bool, uint32 &)
 
virtual void OnPlayerCustomScalingStatValue (Player *, ItemTemplate const *, uint32 &, int32 &, uint8, uint32, ScalingStatValuesEntry const *)
 
virtual void OnPlayerApplyItemModsBefore (Player *, uint8, bool, uint8, uint32, int32 &)
 
virtual void OnPlayerApplyEnchantmentItemModsBefore (Player *, Item *, EnchantmentSlot, bool, uint32, uint32 &)
 
virtual void OnPlayerApplyWeaponDamage (Player *, uint8, ItemTemplate const *, float &, float &, uint8)
 
virtual bool OnPlayerCanArmorDamageModifier (Player *)
 
virtual void OnPlayerGetFeralApBonus (Player *, int32 &, int32, ItemTemplate const *, ScalingStatValuesEntry const *)
 
virtual bool OnPlayerCanApplyWeaponDependentAuraDamageMod (Player *, Item *, WeaponAttackType, AuraEffect const *, bool)
 
virtual bool OnPlayerCanApplyEquipSpell (Player *, SpellInfo const *, Item *, bool, bool)
 
virtual bool OnPlayerCanApplyEquipSpellsItemSet (Player *, ItemSetEffect *)
 
virtual bool OnPlayerCanCastItemCombatSpell (Player *, Unit *, WeaponAttackType, uint32, uint32, Item *, ItemTemplate const *)
 
virtual bool OnPlayerCanCastItemUseSpell (Player *, Item *, SpellCastTargets const &, uint8, uint32)
 
virtual void OnPlayerApplyAmmoBonuses (Player *, ItemTemplate const *, float &)
 
virtual bool OnPlayerCanEquipItem (Player *, uint8, uint16 &, Item *, bool, bool)
 
virtual bool OnPlayerCanUnequipItem (Player *, uint16, bool)
 
virtual bool OnPlayerCanUseItem (Player *, ItemTemplate const *, InventoryResult &)
 
virtual bool OnPlayerCanSaveEquipNewItem (Player *, Item *, uint16, bool)
 
virtual bool OnPlayerCanApplyEnchantment (Player *, Item *, EnchantmentSlot, bool, bool, bool)
 
virtual void OnPlayerGetQuestRate (Player *, float &)
 
virtual bool OnPlayerPassedQuestKilledMonsterCredit (Player *, Quest const *, uint32, uint32, ObjectGuid)
 
virtual bool OnPlayerCheckItemInSlotAtLoadInventory (Player *, Item *, uint8, uint8 &, uint16 &)
 
virtual bool OnPlayerNotAvoidSatisfy (Player *, DungeonProgressionRequirements const *, uint32, bool)
 
virtual bool OnPlayerNotVisibleGloballyFor (Player *, Player const *)
 
virtual void OnPlayerGetArenaPersonalRating (Player *, uint8, uint32 &)
 
virtual void OnPlayerGetArenaTeamId (Player *, uint8, uint32 &)
 
virtual void OnPlayerIsFFAPvP (Player *, bool &)
 
virtual void OnPlayerFfaPvpStateUpdate (Player *, bool)
 
virtual void OnPlayerIsPvP (Player *, bool &)
 
virtual void OnPlayerGetMaxSkillValueForLevel (Player *, uint16 &)
 
virtual bool OnPlayerNotSetArenaTeamInfoField (Player *, uint8, ArenaTeamInfoType, uint32)
 
virtual bool OnPlayerCanJoinLfg (Player *, uint8, std::set< uint32 > &, const std::string &)
 
virtual bool OnPlayerCanEnterMap (Player *, MapEntry const *, InstanceTemplate const *, MapDifficulty const *, bool)
 
virtual bool OnPlayerCanInitTrade (Player *, Player *)
 
virtual bool OnPlayerCanSetTradeItem (Player *, Item *, uint8)
 This hook called just before finishing the handling of the action of a player setting an item in a trade slot.
 
virtual void OnPlayerSetServerSideVisibility (Player *, ServerSideVisibilityType &, AccountTypes &)
 
virtual void OnPlayerSetServerSideVisibilityDetect (Player *, ServerSideVisibilityType &, AccountTypes &)
 
virtual void OnPlayerResurrect (Player *, float, bool)
 
virtual void OnPlayerBeforeChooseGraveyard (Player *, TeamId, bool, uint32 &)
 
virtual bool OnPlayerCanUseChat (Player *, uint32, uint32, std::string &)
 This hook called before player sending message in default chat.
 
virtual bool OnPlayerCanUseChat (Player *, uint32, uint32, std::string &, Player *)
 This hook called before player sending message to other player via private.
 
virtual bool OnPlayerCanUseChat (Player *, uint32, uint32, std::string &, Group *)
 This hook called before player sending message to group.
 
virtual bool OnPlayerCanUseChat (Player *, uint32, uint32, std::string &, Guild *)
 This hook called before player sending message to guild.
 
virtual bool OnPlayerCanUseChat (Player *, uint32, uint32, std::string &, Channel *)
 This hook called before player sending message to channel.
 
virtual void OnPlayerLearnTalents (Player *, uint32, uint32, uint32)
 This hook called after player learning talents.
 
virtual void OnPlayerEnterCombat (Player *, Unit *)
 This hook called after player entering combat.
 
virtual void OnPlayerLeaveCombat (Player *)
 This hook called after player leave combat.
 
virtual void OnPlayerQuestAbandon (Player *, uint32)
 This hook called after player abandoning quest.
 
virtual bool OnPlayerCanFlyInZone (Player *, uint32, uint32, SpellInfo const *)
 This hook called before other CanFlyChecks are applied.
 
virtual void AnticheatSetCanFlybyServer (Player *, bool)
 
virtual void AnticheatSetUnderACKmount (Player *)
 
virtual void AnticheatSetRootACKUpd (Player *)
 
virtual void AnticheatSetJumpingbyOpcode (Player *, bool)
 
virtual void AnticheatUpdateMovementInfo (Player *, MovementInfo const &)
 
virtual bool AnticheatHandleDoubleJump (Player *, Unit *)
 
virtual bool AnticheatCheckMovementInfo (Player *, MovementInfo const &, Unit *, bool)
 
virtual bool OnPlayerCanSendErrorAlreadyLooted (Player *)
 This hook is called, to avoid displaying the error message that the body has already been stripped.
 
virtual void OnPlayerAfterCreatureLoot (Player *)
 It is used when an item is taken from a creature.
 
virtual void OnPlayerAfterCreatureLootMoney (Player *)
 After a creature's money is taken.
 
virtual bool OnPlayerCanUpdateSkill (Player *, uint32)
 
virtual void OnPlayerBeforeUpdateSkill (Player *, uint32, uint32 &, uint32, uint32)
 
virtual void OnPlayerUpdateSkill (Player *, uint32, uint32, uint32, uint32, uint32)
 
virtual bool OnPlayerCanResurrect (Player *)
 This hook is called, to avoid player resurrect.
 
virtual bool OnPlayerCanGiveLevel (Player *, uint8)
 This hook is called, to cancel the normal level up flow.
 
virtual void OnPlayerSendListInventory (Player *, ObjectGuid, uint32 &)
 This hook is called whenever a player interacts with a vendor, and is then shown the vendor list.
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

Additional Inherited Members

- Protected Member Functions inherited from PlayerScript
 PlayerScript (const char *name, std::vector< uint16 > enabledHooks=std::vector< uint16 >())
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ LFGPlayerScript()

lfg::LFGPlayerScript::LFGPlayerScript ( )
32 :
33 PlayerScript("LFGPlayerScript",
34 {
40 })
41 {
42 }
@ PLAYERHOOK_ON_LOGOUT
Definition PlayerScript.h:70
@ PLAYERHOOK_ON_MAP_CHANGED
Definition PlayerScript.h:78
@ PLAYERHOOK_ON_LOGIN
Definition PlayerScript.h:68
@ PLAYERHOOK_ON_BIND_TO_INSTANCE
Definition PlayerScript.h:75
@ PLAYERHOOK_ON_LEVEL_CHANGED
Definition PlayerScript.h:42
Definition PlayerScript.h:217

References PLAYERHOOK_ON_BIND_TO_INSTANCE, PLAYERHOOK_ON_LEVEL_CHANGED, PLAYERHOOK_ON_LOGIN, PLAYERHOOK_ON_LOGOUT, and PLAYERHOOK_ON_MAP_CHANGED.

Member Function Documentation

◆ OnPlayerBindToInstance()

void lfg::LFGPlayerScript::OnPlayerBindToInstance ( Player player,
Difficulty  difficulty,
uint32  mapId,
bool  permanent 
)
overridevirtual

Reimplemented from PlayerScript.

97 {
98 MapEntry const* mapEntry = sMapStore.LookupEntry(mapId);
99 if (mapEntry->IsDungeon() && difficulty > DUNGEON_DIFFICULTY_NORMAL)
100 sLFGMgr->InitializeLockedDungeons(player, player->GetGroup());
101 }
@ DUNGEON_DIFFICULTY_NORMAL
Definition DBCEnums.h:269
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
#define sLFGMgr
Definition LFGMgr.h:641
Group * GetGroup()
Definition Player.h:2476
Definition DBCStructure.h:1324
bool IsDungeon() const
Definition DBCStructure.h:1350

References DUNGEON_DIFFICULTY_NORMAL, Player::GetGroup(), MapEntry::IsDungeon(), sLFGMgr, and sMapStore.

◆ OnPlayerLevelChanged()

void lfg::LFGPlayerScript::OnPlayerLevelChanged ( Player player,
uint8  oldLevel 
)
overridevirtual

Reimplemented from PlayerScript.

45 {
47 return;
48
49 sLFGMgr->InitializeLockedDungeons(player, player->GetGroup());
50 }
@ LFG_OPTION_ENABLE_SEASONAL_BOSSES
Definition LFGMgr.h:43
@ LFG_OPTION_ENABLE_DUNGEON_FINDER
Definition LFGMgr.h:41
@ LFG_OPTION_ENABLE_RAID_BROWSER
Definition LFGMgr.h:42

References Player::GetGroup(), lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER, lfg::LFG_OPTION_ENABLE_RAID_BROWSER, lfg::LFG_OPTION_ENABLE_SEASONAL_BOSSES, and sLFGMgr.

◆ OnPlayerLogin()

void lfg::LFGPlayerScript::OnPlayerLogin ( Player player)
overridevirtual
Todo:
  • Restore LfgPlayerData and send proper status to player if it was in a group

Reimplemented from PlayerScript.

73 {
75 return;
76
77 // Temporal: Trying to determine when group data and LFG data gets desynched
78 ObjectGuid guid = player->GetGUID();
79 ObjectGuid gguid = sLFGMgr->GetGroup(guid);
80
81 Group const* group = player->GetGroup();
82 if (group)
83 {
84 ObjectGuid gguid2 = group->GetGUID();
85 if (gguid != gguid2)
86 {
87 sLFGMgr->SetupGroupMember(guid, group->GetGUID());
88 }
89 }
90
91 sLFGMgr->InitializeLockedDungeons(player, group);
92 sLFGMgr->SetTeam(player->GetGUID(), player->GetTeamId());
94 }
Definition Group.h:169
ObjectGuid GetGUID() const
Definition Group.cpp:2304
Definition ObjectGuid.h:118
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
TeamId GetTeamId(bool original=false) const
Definition Player.h:2116

References Player::GetGroup(), Group::GetGUID(), Object::GetGUID(), Player::GetTeamId(), lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER, lfg::LFG_OPTION_ENABLE_RAID_BROWSER, lfg::LFG_OPTION_ENABLE_SEASONAL_BOSSES, and sLFGMgr.

◆ OnPlayerLogout()

void lfg::LFGPlayerScript::OnPlayerLogout ( Player player)
overridevirtual

Reimplemented from PlayerScript.

53 {
55 return;
56
57 if (!player->GetGroup() || !player->GetGroup()->isLFGGroup())
58 {
59 player->GetSession()->SendLfgLfrList(false);
60 sLFGMgr->LeaveLfg(player->GetGUID());
61 sLFGMgr->LeaveAllLfgQueues(player->GetGUID(), true, player->GetGroup() ? player->GetGroup()->GetGUID() : ObjectGuid::Empty);
62
63 // pussywizard: after all necessary actions handle raid browser
64 // pussywizard: already done above
65 //if (sLFGMgr->GetState(player->GetGUID()) == LFG_STATE_RAIDBROWSER)
66 // sLFGMgr->LeaveLfg(player->GetGUID());
67 }
68
69 sLFGMgr->LfrSearchRemove(player);
70 }
bool isLFGGroup(bool restricted=false) const
Definition Group.cpp:2263
WorldSession * GetSession() const
Definition Player.h:2005
void SendLfgLfrList(bool update)
Definition LFGHandler.cpp:587

References ObjectGuid::Empty, Player::GetGroup(), Group::GetGUID(), Object::GetGUID(), Player::GetSession(), Group::isLFGGroup(), lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER, lfg::LFG_OPTION_ENABLE_RAID_BROWSER, lfg::LFG_OPTION_ENABLE_SEASONAL_BOSSES, WorldSession::SendLfgLfrList(), and sLFGMgr.

◆ OnPlayerMapChanged()

void lfg::LFGPlayerScript::OnPlayerMapChanged ( Player player)
overridevirtual

Reimplemented from PlayerScript.

104 {
105 Map const* map = player->GetMap();
106
107 if (sLFGMgr->inLfgDungeonMap(player->GetGUID(), map->GetId(), map->GetDifficulty()))
108 {
109 Group* group = player->GetGroup();
110 // This function is also called when players log in
111 // if for some reason the LFG system recognises the player as being in a LFG dungeon,
112 // but the player was loaded without a valid group, we'll teleport to homebind to prevent
113 // crashes or other undefined behaviour
114 if (!group)
115 {
116 sLFGMgr->LeaveLfg(player->GetGUID());
117 sLFGMgr->LeaveAllLfgQueues(player->GetGUID(), true);
119 player->TeleportTo(player->m_homebindMapId, player->m_homebindX, player->m_homebindY, player->m_homebindZ, 0.0f);
120 LOG_DEBUG("lfg", "LFGPlayerScript::OnMapChanged, Player {} ({}) is in LFG dungeon map but does not have a valid group! Teleporting to homebind.",
121 player->GetName(), player->GetGUID().ToString());
122 return;
123 }
124
125 for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
126 if (Player* member = itr->GetSource())
127 player->GetSession()->SendNameQueryOpcode(member->GetGUID());
128
129 if (group->IsLfgWithBuff())
130 player->CastSpell(player, LFG_SPELL_LUCK_OF_THE_DRAW, true);
131 }
132 else
133 {
135
136 // Xinef: Destroy group if only one player is left
137 if (Group* group = player->GetGroup())
138 if (group->GetMembersCount() <= 1u)
139 group->Disband();
140 }
141 }
#define LOG_DEBUG(filterType__,...)
Definition Log.h:169
Definition GroupReference.h:27
void Disband(bool hideDestroy=false)
Definition Group.cpp:751
uint32 GetMembersCount() const
Definition Group.h:245
bool IsLfgWithBuff() const
Definition Group.h:313
GroupReference * GetFirstMember()
Definition Group.h:243
Definition Map.h:156
uint32 GetId() const
Definition Map.h:229
Difficulty GetDifficulty() const
Definition Map.h:290
std::string ToString() const
Definition ObjectGuid.cpp:47
Definition Player.h:1081
float m_homebindZ
Definition Player.h:2381
uint32 m_homebindMapId
Definition Player.h:2377
float m_homebindY
Definition Player.h:2380
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0, Unit *target=nullptr, bool newInstance=false)
Definition Player.cpp:1338
float m_homebindX
Definition Player.h:2379
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1178
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:4941
Map * GetMap() const
Definition Object.h:536
std::string const & GetName() const
Definition Object.h:463
void SendNameQueryOpcode(ObjectGuid guid)
Definition QueryHandler.cpp:31
@ LFG_SPELL_LUCK_OF_THE_DRAW
Definition LFGMgr.h:54

References Unit::CastSpell(), Map::GetDifficulty(), Group::GetFirstMember(), Player::GetGroup(), Object::GetGUID(), Map::GetId(), WorldObject::GetMap(), WorldObject::GetName(), Player::GetSession(), Group::IsLfgWithBuff(), lfg::LFG_SPELL_LUCK_OF_THE_DRAW, LOG_DEBUG, Player::m_homebindMapId, Player::m_homebindX, Player::m_homebindY, Player::m_homebindZ, Unit::RemoveAurasDueToSpell(), WorldSession::SendNameQueryOpcode(), sLFGMgr, Player::TeleportTo(), and ObjectGuid::ToString().


The documentation for this class was generated from the following files: