From 3edf7d0b9129a2b1eeb08fbb3b90c2e1edd45eba Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 31 May 2022 13:58:34 -0400 Subject: [PATCH] Core/Units: Include SPELL_AURA_MOD_FACTION auras when restoring faction (either on aura removal or .gm off) Port From (https://github.com/TrinityCore/TrinityCore/commit/52fb46703172a0803a122d54aaed6506eb25d3e3) --- Source/Game/Entities/Player/Player.cs | 2 +- Source/Game/Entities/Unit/Unit.cs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index c783d9a69..c5983f092 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -2192,7 +2192,7 @@ namespace Game.Entities PhasingHandler.SetAlwaysVisible(this, HasAuraType(AuraType.PhaseAlwaysVisible), false); m_ExtraFlags &= ~PlayerExtraFlags.GMOn; - SetFactionForRace(GetRace()); + RestoreFaction(); RemovePlayerFlag(PlayerFlags.GM); RemoveUnitFlag2(UnitFlags2.AllowCheatSpells); diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index a12b820ee..5006f8b8a 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -2107,6 +2107,12 @@ namespace Game.Entities public void RestoreFaction() { + if (HasAuraType(AuraType.ModFaction)) + { + SetFaction((uint)GetAuraEffectsByType(AuraType.ModFaction).LastOrDefault().GetMiscValue()); + return; + } + if (IsTypeId(TypeId.Player)) ToPlayer().SetFactionForRace(GetRace()); else