public void DispatchEvent(ACR_ServerCommunicator Script, ALFA.Database Database)
{
string PlayerName = Player.Name;
if (!SystemInfo.IsSafeFileName(PlayerName))
{
Script.WriteTimestampedLogEntry(String.Format(
"PurgeCachedCharacterEvent.DispatchEvent: Invalid player name '{0}'.", PlayerName));
return;
}
string VaultPath = SystemInfo.GetServerVaultPathForAccount(PlayerName);
if (VaultPath == null)
{
Script.WriteTimestampedLogEntry(String.Format(
"PurgeCachedCharacterEvent.DispatchEvent: Could not resolve vault path for player '{0}'.",
Player.PlayerName));
return;
}
VaultPath += CharacterFileName;
if (!File.Exists(VaultPath))
{
Script.WriteTimestampedLogEntry(String.Format(
"PurgeCachedCharacterEvent.DispatchEvent: Character file '{0}' for player '{1}' was not locally cached.",
CharacterFileName,
Player.PlayerName));
return;
}
try
{
File.Delete(VaultPath);
}
catch (Exception e)
{
Script.WriteTimestampedLogEntry(String.Format(
"PurgeCachedCharacterEvent.DispatchEvent: Exception '{0}' removing cached character '{1}' for player '{2}'.",
e,
CharacterFileName,
Player.PlayerName));
return;
}
try
{
if (SystemInfo.GetVaultStoragePluginInUse())
{
VaultPath = SystemInfo.GetCentralVaultPathForAccount(PlayerName);
VaultPath += CharacterFileName;
if (File.Exists(VaultPath))
File.Delete(VaultPath);
}
}
catch (Exception e)
{
Script.WriteTimestampedLogEntry(String.Format(
"PurgeCachedCharacterEvent.DispatchEvent: Exception '{0}' removing cached character from Azure vault temporary local storage '{1}' for player '{2}'.",
e,
CharacterFileName,
Player.PlayerName));
return;
}
Script.WriteTimestampedLogEntry(String.Format(
"PurgeCachedCharacterEvent.DispatchEvent: Removed cached character '{0}' from player '{1}' vault cache.",
CharacterFileName,
Player.PlayerName));
}