public void Update(PlayerFieldFlags updateFields = PlayerFieldFlags.All)
{
GameClient.VersionKey = Version?.Key ?? "Unknown";
Debug.WriteLine($"Updating values from memory (pid={process.ProcessId}, fields={updateFields})...");
try
{
if (updateFields.HasFlag(PlayerFieldFlags.Name))
UpdateName(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Guild))
UpdateGuild(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.GuildRank))
UpdateGuildRank(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Title))
UpdateTitle(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Inventory))
inventory.Update(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Equipment))
equipment.Update(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Skillbook))
skillbook.Update(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Spellbook))
spellbook.Update(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Stats))
stats.Update(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Modifiers))
modifiers.Update(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Location))
location.Update(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.GameClient))
gameClient.Update(accessor);
if (updateFields.HasFlag(PlayerFieldFlags.Window))
process.Update();
}
catch { }
finally
{
IsLoggedIn = !string.IsNullOrWhiteSpace(Name) && stats.Level > 0;
}
}