diff --git a/modules/azerothshard/src/server/plugins/CrossFaction/CrossFaction.cpp b/modules/azerothshard/src/server/plugins/CrossFaction/CrossFaction.cpp index e5804cc6df..989d3e283e 100644 --- a/modules/azerothshard/src/server/plugins/CrossFaction/CrossFaction.cpp +++ b/modules/azerothshard/src/server/plugins/CrossFaction/CrossFaction.cpp @@ -58,7 +58,11 @@ void CrossFaction::UpdatePlayerTeam(Group* group, uint64 guid, bool reset /* = f { uint8 raceid = itr->second; ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(raceid); - player->setFaction(rEntry ? rEntry->FactionID : 0); + if (rEntry) { + player->setFaction(rEntry->FactionID); + player->setTeamId(Player::TeamIdForRace(raceid)); + return; + } } } } diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 618462c951..c8595148aa 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2126,7 +2126,7 @@ class Player : public Unit, public GridObject void CheckAreaExploreAndOutdoor(void); static TeamId TeamIdForRace(uint8 race); - TeamId GetTeamId(bool original = false) const { return original ? m_team : TeamIdForRace(getRace()); }; + TeamId GetTeamId(bool original = false) const { return original ? TeamIdForRace(getRace()) : m_team; }; void setFactionForRace(uint8 race); void setTeamId(TeamId teamid) { m_team = teamid; };