Core/Misc: Moved CharacterInfo out of world to separate class

Port From (https://github.com/TrinityCore/TrinityCore/commit/ad4e63bae145ae49b584ab2fc621660430cec0d3)
This commit is contained in:
hondacrx
2019-08-16 13:43:17 -04:00
parent ea35c2ca62
commit 3634bc7133
56 changed files with 598 additions and 527 deletions
+9 -4
View File
@@ -625,7 +625,7 @@ namespace Game.Guilds
{
Player player = session.GetPlayer();
if (!WorldConfig.GetBoolValue(WorldCfg.AllowTwoSideInteractionGuild) &&
player.GetTeam() != ObjectManager.GetPlayerTeamByGUID(GetLeaderGUID()))
player.GetTeam() != Global.CharacterCacheStorage.GetCharacterTeamByGuid(GetLeaderGUID()))
return;
AddMember(null, player.GetGUID());
@@ -1209,12 +1209,14 @@ namespace Game.Guilds
public bool LoadMemberFromDB(SQLFields field)
{
ulong lowguid = field.Read<ulong>(1);
Member member = new Member(m_id, ObjectGuid.Create(HighGuid.Player, lowguid), field.Read<byte>(2));
ObjectGuid playerGuid = ObjectGuid.Create(HighGuid.Player, lowguid);
Member member = new Member(m_id, playerGuid, field.Read<byte>(2));
if (!member.LoadFromDB(field))
{
_DeleteMemberFromDB(null, lowguid);
return false;
}
Global.CharacterCacheStorage.UpdateCharacterGuildId(playerGuid, GetId());
m_members[member.GetGUID()] = member;
return true;
}
@@ -1477,7 +1479,7 @@ namespace Game.Guilds
return;
}
uint level = Player.GetLevelFromDB(member.GetGUID());
uint level = Global.CharacterCacheStorage.GetCharacterLevelByGuid(member.GetGUID());
if (member.GetGUID() != session.GetPlayer().GetGUID() && level >= minLevel && level <= maxLevel && member.IsRankNotLower(minRank))
packet.Invites.Add(new CalendarEventInitialInviteInfo(member.GetGUID(), (byte)level));
@@ -1495,7 +1497,7 @@ namespace Game.Guilds
if (player.GetGuildId() != 0)
return false;
}
else if (Player.GetGuildIdFromDB(guid) != 0)
else if (Global.CharacterCacheStorage.GetCharacterGuildIdByGuid(guid) != 0)
return false;
// Remove all player signs from another petitions
@@ -1548,6 +1550,7 @@ namespace Game.Guilds
return false;
m_members[guid] = member;
Global.CharacterCacheStorage.UpdateCharacterGuildId(guid, GetId());
}
member.SaveToDB(trans);
@@ -1617,6 +1620,8 @@ namespace Game.Guilds
foreach (var entry in CliDB.GuildPerkSpellsStorage.Values)
player.RemoveSpell(entry.SpellID, false, false);
}
else
Global.CharacterCacheStorage.UpdateCharacterGuildId(guid, 0);
_DeleteMemberFromDB(trans, guid.GetCounter());
if (!isDisbanding)