From bf78002ab39df92c7e72cdd155d63feb98cb64ef Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 5 Jan 2022 17:56:50 -0500 Subject: [PATCH] Core/Log: Gameobjects may have faction template id = 0 Port From (https://github.com/TrinityCore/TrinityCore/commit/89edc84c23f867855ee119c7a9eb5dbf31692cf8) --- Source/Game/Entities/Object/WorldObject.cs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index 285978b9c..350a09af7 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -1990,9 +1990,27 @@ namespace Game.Entities public FactionTemplateRecord GetFactionTemplateEntry() { - var entry = CliDB.FactionTemplateStorage.LookupByKey(GetFaction()); + uint factionId = GetFaction(); + var entry = CliDB.FactionTemplateStorage.LookupByKey(factionId); if (entry == null) - Log.outError(LogFilter.Server, $"{GetGUID()} has invalid faction {GetFaction()}"); + { + switch (GetTypeId()) + { + case TypeId.Player: + Log.outError(LogFilter.Unit, $"Player {ToPlayer().GetName()} has invalid faction (faction template id) #{factionId}"); + break; + case TypeId.Unit: + Log.outError(LogFilter.Unit, $"Creature (template id: {ToCreature().GetCreatureTemplate().Entry}) has invalid faction (faction template Id) #{factionId}"); + break; + case TypeId.GameObject: + if (factionId != 0) // Gameobjects may have faction template id = 0 + Log.outError(LogFilter.Unit, $"GameObject (template id: {ToGameObject().GetGoInfo().entry}) has invalid faction (faction template Id) #{factionId}"); + break; + default: + Log.outError(LogFilter.Unit, $"Object (name={GetName()}, type={GetTypeId()}) has invalid faction (faction template Id) #{factionId}"); + break; + } + } return entry; }